Opera Software upstreamed commits

Upstreamed commits in Chromium: 8178, V8: 72, Skia: 12, BoringSSL: 16.

Click message to expand

Chromium

Author Message When
mpawlowski
Avoid member access within null pointer in PersistentMemoryAllocator
Create temporary objects for the assertions instead of doing UB.

Bug: 966850
Change-Id: I344622fcf0e616be313a510345e0d6cf65d22113
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1628723
Reviewed-by: Brian White <bcwhite@chromium.org>
Commit-Queue: Maciej Pawlowski <mpawlowski@opera.com>
Cr-Commit-Position: refs/heads/master@{#663524}
bratell
Revert "[BrowserSwitcher] Build BHO for both bitnesses"
This reverts commit 6c3a34bfc2030ffd304c54f5cb96d234622ef389.

Reason for revert: It broke some builds with:
The file:
  //out/Release_x64/win_clang_x86/browser_switcher_bho.dll.pdb
is listed as an input or source for the target:
  //chrome/browser/browser_switcher/bho:copy_browser_switcher_binaries
but no targets in the build generate that file.
See for instance https://ci.chromium.org/p/chromium/builders/ci/Jumbo%20Win%20x64/35757

and the comment in the bug.

Original change's description:
> [BrowserSwitcher] Build BHO for both bitnesses
> 
> To do so, this CL also adds support for the x86 toolchain in an x64
> build.
> 
> Instead of generating one DLL, we now generate 2 DLLs in the root
> out-dir:
> 
> - browser_switcher_bho.dll (x86)
> - browser_switcher_bho_64.dll (x64)
> 
> The one that is cross-built (i.e. bitness doesn't match the host) is
> built in a sub-directory, and then copied to the root out-dir.
> 
> Bug: 952897
> Change-Id: Ie96ff95556dbe41c8d8eb2fb5ce748964705e096
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1589457
> Reviewed-by: Bruce Dawson <brucedawson@chromium.org>
> Reviewed-by: Dirk Pranke <dpranke@chromium.org>
> Commit-Queue: Nicolas Ouellet-Payeur <nicolaso@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#663196}

TBR=thakis@chromium.org,dpranke@chromium.org,brucedawson@chromium.org,nicolaso@chromium.org

Change-Id: I2f1929a4e2ea2f9408273c5f04b52ee79580b4cc
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 952897
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1630427
Reviewed-by: Daniel Bratell <bratell@opera.com>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#663392}
mpawlowski
Introduce a more generic version of IdType for opaque aliases
This one works with strings and other complex types in addition to
integrals.

Bug: 954080
Change-Id: Ic9961e0ccffdce89d160a5b4d8cab9b7d94a100b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1617481
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Reviewed-by: Łukasz Anforowicz <lukasza@chromium.org>
Commit-Queue: Maciej Pawlowski <mpawlowski@opera.com>
Cr-Commit-Position: refs/heads/master@{#662532}
bratell
Avoid having two kImageFetcherUmaClientName in chrome/browser/search
In some extreme (non default) jumbo builds, the two
kImageFetcherUmaClientName would end up in the same translation unit and
break those builds. Since they represent two different strings, this
patch gives them unique names.

Bug: 874325
Change-Id: I4f69d78b7ce9f15a9907f6356f21affd506579a5
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1621177
Auto-Submit: Daniel Bratell <bratell@opera.com>
Reviewed-by: Kyle Milka <kmilka@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#662285}
bratell
[jumbo] Differentiate constants in usb_chooser and hid_chooser
hid_chooser is based on usb_choose so naturally some constant
names became the same, but in some (non-default; extreme) jumbo build
configurations the hid chooser and the usb chooser compile in the
same translation unit, and share the same anonymous namespace,
and then the constant names clash.

Bug: 890096
Change-Id: I1d10de81c09634af3c2dfffd95e02fe41a56e591
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1624195
Auto-Submit: Daniel Bratell <bratell@opera.com>
Reviewed-by: Ovidio de Jesús Ruiz-Henríquez <odejesush@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#662284}
bratell
Sort Win SDK versions by version sorting rules (reland)
This should have no practical effect on current data but version
numbers need to be sorted so that 1.12 is higher than 1.9 and
the current code didn't do that.

This is a reland of https://crrev.com/c/1605980 with a typo fixed.
The initial patch tried to sort |vc_component_msvc_root| (a string)
instead of the list |vc_component_msvc_contents|.

Change-Id: I961a4e0d11c9e626e2890682f6bf416c8e7e9d28
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1609831
Reviewed-by: Bruce Dawson <brucedawson@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#662138}
bratell
Move operator<< for base::ThreadLocalBoolean to namespace base
ADL only works properly if functions that depend on ADL are
defined in the same namespace as the argument type.

The operator<< function for ::base::ThreadLocalBoolean was in the
namespace ::base::{anonymous} which prevented ADL from finding
the function. Instead it was found through the normal scope
lookup as long as there was no other operator<< in base::internal.

In jumbo builds the translation unit included base/safe_conversions.h
which has an ::base::internal::operator<< and suddenly nothing
could find the real operator<< for ThreadLocalBoolean.

Thanks to Slack #cxx for explaining all the gory details about
function/operator lookup.

Bug: 965038
Change-Id: I1d8303eec24996f742ca3362e79f65e83bf53384
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1619904
Commit-Queue: Daniel Bratell <bratell@opera.com>
Auto-Submit: Daniel Bratell <bratell@opera.com>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Cr-Commit-Position: refs/heads/master@{#661645}
bratell
Avoid having two GetSyncedFaviconForPageURL in chrome/browser/ui
In certain non-default extreme jumbo build the
GetSyncedFaviconForPageURL in recent_tabs_sub_menu_model.cc
ended up in the same translation unit as the
GetSyncedFaviconForPageURL in favicon_source.cc and then it did not
compile. The methods are similar but not identical so they
cannot be shared as is.

This renames one of the functions
GetSyncedFaviconForPageURL -> RecentTabsGetSyncedFaviconForPageURL

Bug: 955475
Change-Id: I48c9ac701b0071b71f719afffb19c65687258410
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1617458
Commit-Queue: Peter Kasting <pkasting@chromium.org>
Auto-Submit: Daniel Bratell <bratell@opera.com>
Reviewed-by: Peter Kasting <pkasting@chromium.org>
Cr-Commit-Position: refs/heads/master@{#661416}
bratell
Avoid having two GetWebContents and GetBrowserClient in content/browser
There are currently two GetWebContents and two GetBrowserClient in
content/browser. In certain non-default extreme jumbo builds
GetWebContents in storage_partition_impl.cc and GetWebContents in
network_service_client.cc could end up in the same
translation unit and it would not compile. There were also
one GetBrowserClient in storage_partition_impl.cc and one in
clear_site_data_throttle.cc

This renames one of the functions
GetWebContents -> GetWebContentsForStoragePartition
and one
GetBrowserContext -> GetBrowserContextFromStoragePartition

Bug: 952723
Change-Id: I85207edde5fcb85eaa6f32cf22ca05a6e324237b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1617837
Auto-Submit: Daniel Bratell <bratell@opera.com>
Commit-Queue: Kinuko Yasuda <kinuko@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Cr-Commit-Position: refs/heads/master@{#661348}
fs
Remove unnecessary conversion to/from WebString
Change-Id: Ibed70c17d5ba2bb9a9073e5b6174896744064a80
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1619689
Commit-Queue: Daniel Bratell <bratell@opera.com>
Auto-Submit: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#661325}
bratell
Guard some accessibility code that requires a newer atk lib
On some development platforms (like Ubuntu 16.04 LTS), newer
atk libraries are not available so code need to be optional.

For production builds a sysroot with all the required libraries
must be used.

This adds checks for Atk 2.30 to some places, and changes the
ifdef style to be the same in all checks.

Change-Id: Iec48dd31774a5ba148a71ecb545befe4339d860c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1614205
Auto-Submit: Daniel Bratell <bratell@opera.com>
Commit-Queue: Martin Robinson <mrobinson@igalia.com>
Reviewed-by: Martin Robinson <mrobinson@igalia.com>
Cr-Commit-Position: refs/heads/master@{#660750}
gzyszkiewicz
Notify WebContentsObservers of lost webcontents focus on MAC
Seems the mechanism implemented for aura web contents view was
not moved correctly to mac web contents view. This change applies
the needed changes to make web contents observers to be notified
of lost focus on MAC.

This omission on Mac seems to only affect UMA histograms.

BUG=680809

Change-Id: I47d8063d3258b9e6c684899f763198b5f9f8ffff
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1611821
Reviewed-by: Avi Drissman <avi@chromium.org>
Reviewed-by: Trent Apted <tapted@chromium.org>
Commit-Queue: Trent Apted <tapted@chromium.org>
Cr-Commit-Position: refs/heads/master@{#660312}
mpawlowski
Rename build/util/type-safety to build/util/type_safety
This is for consistency, most other code uses underscores to separate words
rather than dashes.

Bug: 954080
Change-Id: I3b0d1e0a33e5196344fbd7d52f187f87607bbcb2
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1608742
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Reviewed-by: Antoine Labour <piman@chromium.org>
Reviewed-by: Łukasz Anforowicz <lukasza@chromium.org>
Commit-Queue: Maciej Pawlowski <mpawlowski@opera.com>
Cr-Commit-Position: refs/heads/master@{#660307}
wdzierzanowski
Handle sync loads with DRP's URLLoaderThrottle
After https://chromium-review.googlesource.com/c/chromium/src/+/1565873,
another interesting sequencing scenario is a synchronous load (as in
blink::ResourceLoader::RequestSynchronously() triggered by a synchronous
XMLHttpRequest() or WorkerGlobalScope.importScripts()).  In this case,
the URLLoaderThrottle is not used on the sequence where it was created
(see https://chromium-review.googlesource.com/c/chromium/src/+/631040/).
If it calls back to the throttle manager
(manager_->MarkProxiesAsBad()), we're trying to make a mojo call on the
wrong sequence again.

The solution is similar to safe_browsing::RendererURLLoaderThrottle:
"private" mojo pipes to mojom::DataReductionProxy.  We take care to make
them private in the synchronous load case only: it's not unusual for a
single renderer to create tens of throttles, but only a small percentage
of those is for a synchronous load (and there should be fewer and fewer
of them given that synchronous XHR is deprecated).

Bug: 963353
Change-Id: Ie502b881e946d188d6613119de02b1f6c0874a30
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1609834
Commit-Queue: Wojciech Dzierżanowski <wdzierzanowski@opera.com>
Reviewed-by: Tarun Bansal <tbansal@chromium.org>
Cr-Commit-Position: refs/heads/master@{#659873}
bratell
Restrict to one AddressField type in autofill
In autofill, AddressField is both a locally defined type
and an imported type from i18n::addressinput. In some non-default
jumbo builds they end up in the same translation unit,
causing compilation problems.

This renames the imported classes so they have distinct names.

This appeared May 13-14 but I don't know why. No change looks
relevant.

Change-Id: I77885ce1f8f2a120570cd281868682637a3f79b2
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1611609
Commit-Queue: Tommy Martino <tmartino@chromium.org>
Auto-Submit: Daniel Bratell <bratell@opera.com>
Reviewed-by: Tommy Martino <tmartino@chromium.org>
Cr-Commit-Position: refs/heads/master@{#659620}
bratell
[jumbo] Avoid having two OnProfileCreated in chrome/browser
In some extreme (non-default) jumbo builds, both OnProfileCreated
ended up in the same translation unit. This renames one of them
DownloadOnProfileCreated to avoid that build problem.

Bug: 959208
Change-Id: I31686fc741c1365de0ef6fdc9101ce960e2fe6ea
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1602649
Reviewed-by: Xing Liu <xingliu@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Auto-Submit: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#659427}
bratell
Sort Win SDK versions by version sorting rules
This should have no practical effect on current data but version
numbers need to be sorted so that 1.12 is higher than 1.9 and
the current code didn't do that.

Change-Id: Ie993d2c103b6f16453c8b03336484c3b05a0097b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1605980
Reviewed-by: Bruce Dawson <brucedawson@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#659016}
wdzierzanowski
Add 'custom_proxy' watchlist
Change-Id: I42d7b6974fb31a661b1bd02142c4755758609a05
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1604278
Auto-Submit: Wojciech Dzierżanowski <wdzierzanowski@opera.com>
Reviewed-by: Tarun Bansal <tbansal@chromium.org>
Commit-Queue: Wojciech Dzierżanowski <wdzierzanowski@opera.com>
Cr-Commit-Position: refs/heads/master@{#658709}
fs
Clean up image fallback content configuration
Put the setup of the broken image and placeholder elements in a helper
class to make it easier to decipher what is being done, and also what
depends on the ComputedStyle object and not.

Bug: 953707
Change-Id: I675539611e5160e4e31523a1dbcea830fe5c7f18
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1604267
Commit-Queue: Stephen Chenney <schenney@chromium.org>
Auto-Submit: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Cr-Commit-Position: refs/heads/master@{#658662}
mpawlowski
Move id_type.h from gpu/command_buffer/common to base/util
Changed only the namespace, header guards, BUILD.gn etc., the entire
implementation was left untouched. Further alignments and generalization
to come.

Bug: 954080
Change-Id: I6cb5388fefb606e04b5be1463e86a792a75c4bf7
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1571695
Commit-Queue: Łukasz Anforowicz <lukasza@chromium.org>
Reviewed-by: Łukasz Anforowicz <lukasza@chromium.org>
Reviewed-by: Antoine Labour <piman@chromium.org>
Reviewed-by: Albert J. Wong <ajwong@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Reviewed-by: Reilly Grant <reillyg@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Elly Fong-Jones <ellyjones@chromium.org>
Reviewed-by: Andrew Grieve <agrieve@chromium.org>
Cr-Commit-Position: refs/heads/master@{#658153}
the_jk
Avoid never-ending loop in FrameEvictionManager::CullUnlockedFrames
If enable surface synchronization is disabled and the frame is
visible then DelegatedFrameHostAndroid::EvictDelegatedFrame()
will only reset content_layer_ to null but not evict the
surface as that causes https://crbug.com/933374.

Trouble is that if the frame is then hidden without any new
content_layer being created the next call to
DelegatedFrameHostAndroid::EvictDelegatedFrame() will do nothing
as content_layer_ is null but the frame is still in the list of
unlocked frames in FrameEvicitionManager causing the next
call to FrameEvictionManager::CullUnlockedFrames that tries to evict
the frame to do nothing and loop forever (or hit a DCHECK if those
are enabled).

Fix this by not doing early exit if content_layer_ is null as this
is not directly connected to if there is a frame to evict.

Bug: 959914
Change-Id: I3f83036d9a5ae2c734dfca720115d1faf4278c87
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1596571
Reviewed-by: Eric Karl <ericrk@chromium.org>
Commit-Queue: Joel Klinghed <the_jk@opera.com>
Cr-Commit-Position: refs/heads/master@{#657483}
tmoniuszko
Remove base::subtle::MemoryBarrier
It clashes with MemoryBarrier macro defined in windows.h.

TBR=fdoray@chromium.org
(for updating callers outside of //base)

Bug: 952820
Change-Id: I68c742ed21cea6eb5b10127dea92100fd29d3b3e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1565986
Commit-Queue: Tomasz Moniuszko <tmoniuszko@opera.com>
Reviewed-by: François Doray <fdoray@chromium.org>
Cr-Commit-Position: refs/heads/master@{#657167}
fs
Check pres. attrs vs. kSVGGeometryPropertyHasNonZeroUnitlessValue
Test that presentation attributes ('x', 'y', 'rx', 'ry', 'cx', 'cy' and
'r') does not affect the use counter mentioned above.

Bug: 899074
Change-Id: Ifbc8f3c5fdc323a87cb68e4a10d1e85ff1d86b71
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1596565
Reviewed-by: Rune Lillesveen <futhark@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#656769}
the_jk
Avoid calling a removed observer in PersonalDataManager
PersonalDataManager::NotifyPersonalDataObserver will call
OnPersonalDataChanged and often OnPersonalDataFinishedProfileTasks
on PersonalDataManagerObserver.

Trouble is that it does this in the same ObserverList loop.

So if PersonalDataManagerObserver implementation of OnPersonalDataChanged
calls PersonalDataManager::RemoveObserver(this) then it will still
be called on OnPersonalDataFinishedProfileTasks.

Worse, if PersonalDataManagerObserver deleted itself after removing
itself as an observer you now have a use-after-free calling a virtual
method on a destroyed object.

There are not currently any PersonalDataManagerObserver implementations
that I can find that has this problem.

Bug: 959172
Change-Id: I2bb0a625f5c3a847c5d035ccc57b5fdb349366b8
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1594529
Commit-Queue: Joel Klinghed <the_jk@opera.com>
Reviewed-by: Parastoo Geranmayeh <parastoog@google.com>
Cr-Commit-Position: refs/heads/master@{#656489}
bratell
[jumbo] Rename one of the HasAlpha functions in DXGI code
In jumbo builds many files are compiled together in the same
translation unit, and there share the same anonymous namespace.
By copying functions from gl_image_dxgi.cc into
gl_image_gxgi_swap_chain.cc without changing the function names
jumbo builds got collisions between two HasAlpha and two
SupportedBindFormat. Since they are also slightly modified,
reusing the function is not a direction option so this renames
the new set of functions by adding a SwapChain prefix.

TBR=piman@chromium.org,ashithasantosh@google.com

Bug: 939655
Change-Id: I3190aa8cbb3c87b0be8be821298a67906be0abd2
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1594581
Reviewed-by: Daniel Bratell <bratell@opera.com>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#656372}
fs
Clean up SetSrc on HTMLImageElement and HTMLSourceElement
The SetSrc() methods with a USVStringOrTrustedURL argument appears to be
unused. Likewise the Src() getter on HTMLImageElement.

Since the SetSrc() method which takes a String doesn't offer much over
just using setAttribute(kSrcAttr, ...), convert users of that and remove
that too.

Change-Id: I3fa3621f030321442ee01b752b7e5ea4b04e9cac
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1593259
Reviewed-by: Daniel Vogelheim <vogelheim@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#656344}
bratell
Block files >20MB in presubmit check
To avoid bloating the chromium/src git repo with large binary
files, this adds a check that files are not too large and suggests
to use cloud storage otherwise.

Now without trying to check the size of deleted files and with the
limit increased to 20MB.

R=dpranke@chromium.org

Bug: 956017
Change-Id: Ieeb2e1a37017a375f9da7a48c7713077c4929ff3
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1581971
Commit-Queue: Daniel Bratell <bratell@opera.com>
Auto-Submit: Daniel Bratell <bratell@opera.com>
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Cr-Commit-Position: refs/heads/master@{#655002}
bratell
Too many top level Status aliases again
Both leveldb::Status and inspector_protocol_encoding::Status
are pulled into the global namespace as aliases. In certain
non-default jumbo builds that causes problems. Since there
are many-many usages of leveldb::Status as Status but only one
usage of inspector_protocol_encoding::Status as Status, this
changes only inspector_protocol_encoding::Status to not use
an alias.

Change-Id: Iac7522e2a7f480960bc2afb01af8a469a6d51fef
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1583736
Auto-Submit: Daniel Bratell <bratell@opera.com>
Reviewed-by: Andrey Kosyakov <caseq@chromium.org>
Reviewed-by: Johannes Henkel <johannes@chromium.org>
Commit-Queue: Johannes Henkel <johannes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#654901}
wdzierzanowski
Postpone binding of mojom::DataReductionProxy
Each Web Worker runs on a separate worker thread, and each worker has an
associated URLLoaderThrottleProvider.  When spawning a nested worker,
the outer worker's throttle provider is cloned on the outer worker's
thread and then used on the inner worker's thread.

To accomodate this scenario:

 - Postpone the creation of DataReductionProxyThrottleManager until a
   moment when we are running on the target thread.  This makes sure
   the DataReductionProxyThrottleConfigObserver binding is used on the
   same thread that it's created on.

 - Postpone the binding of DataReductionProxy until a moment when we
   are running on the target thread.  DataReductionProxyPtrInfo
   serves as a holder of the interface request that can move between
   threads.

Bug: 942011
Change-Id: Ieed17fb499bbcb0545e3e0323f751c1ea55a33d5
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1565873
Reviewed-by: Nico Weber <thakis@chromium.org>
Reviewed-by: Tarun Bansal <tbansal@chromium.org>
Commit-Queue: Wojciech Dzierżanowski <wdzierzanowski@opera.com>
Cr-Commit-Position: refs/heads/master@{#654846}
bratell
Give two RemoveStaleEntries functions unique names
chrome/browser/previews have two distinct (but similar)
RemoveStaleEntries functions and in some extreme jumbo builds
they compile in the same translation unit and clash.

This CL renames them RemoveStaleBlacklistEntries and
RemoveStaleOfflinePageEntries.

Bug: 914577
Change-Id: I69a837393d0586194bcd85f66eadfe85522418e9
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1584261
Commit-Queue: Robert Ogden <robertogden@chromium.org>
Auto-Submit: Daniel Bratell <bratell@opera.com>
Reviewed-by: Robert Ogden <robertogden@chromium.org>
Cr-Commit-Position: refs/heads/master@{#654453}
bratell
Avoid using the symbol name |interface| since it's a Win macro
In some Windows SDK headers |interface| is declared to be a macro
so it's always a bit risky using that name in normal code. There
are reports that the instance in
BackgroundFetchRegistrationServiceImpl caused problems in some
jumbo builds so let's just rename it mojo_interface.

Bug: 956486
Change-Id: Ic261cdd76ce2f6b30e449c0a25000a8542ef0f53
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1584281
Commit-Queue: Daniel Bratell <bratell@opera.com>
Commit-Queue: Peter Beverloo <peter@chromium.org>
Auto-Submit: Daniel Bratell <bratell@opera.com>
Reviewed-by: Peter Beverloo <peter@chromium.org>
Cr-Commit-Position: refs/heads/master@{#654032}
bratell
Block files >10MB in a presubmit check
To avoid bloating the chromium/src git repo with large binary
files, this adds a check that files are not too large and suggests
to use cloud storage otherwise.

Bug: 956017
Change-Id: Idf6e816a50030551fc6003b0f83b2071f685c9b5
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1581803
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#653733}
bratell
Remove unnecessary include and dependency in ui/latency/mojo
gn check --check-generated reported a missing build
dependency and this fixes that. An example of a reported error is:

ERROR at //out/Default/gen/ui/latency/mojo/latency_info.mojom-forward.h:44:11: Can't include this header from here.
          ^----------------------
The target:
  //ui/latency/mojo:interfaces
is including a file from the target:
  //ipc:ipc

Since the header isn't actually used, the simple fix is to remove it, though that revealed some
other code that was missing includes of their own.

Bug: 938893
Change-Id: I8e2648d5e681ee9640282eab31028a102cdc96eb
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1550467
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: kylechar <kylechar@chromium.org>
Commit-Queue: kylechar <kylechar@chromium.org>
Auto-Submit: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#653575}
bratell
Avoid adding more than one root cbor namespace
There is already a ::cbor so creating a global ::cbor alias
to ::inspector_protocol::cbor caused problems in some non-default
jumbo builds. The code also uses variables named cbor so there
are many meanings of cbor.

Change-Id: I9a469d179b60783776510cea7167a63d873caaf5
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1578599
Commit-Queue: Daniel Bratell <bratell@opera.com>
Auto-Submit: Daniel Bratell <bratell@opera.com>
Reviewed-by: Andrey Kosyakov <caseq@chromium.org>
Cr-Commit-Position: refs/heads/master@{#653281}
bratell
Fixing and enabling dependency checks for chromedriver
Since we had a bug because of this missing check, let's not
repeat it.

Bug: 949535
Change-Id: Ic3ef619403dfcc3ecb8ffecd5f1e2cc80681dc94
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1552830
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Reviewed-by: John Chen <johnchen@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Auto-Submit: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#653249}
bratell
Too many top level Status aliases
Both leveldb::Status and inspector_protocol_encoding::Status
are pulled into the global namespace as aliases. In certain
non-default jumbo builds that causes problems. Since there
are many-many usages of leveldb::Status as Status but only one
usage of inspector_protocol_encoding::Status as Status, this
changes only inspector_protocol_encoding::Status to not use
an alias.

This also touches an inspector_protocol_encoding::cbor to not
conflict with another patch.

Change-Id: If663fa8c7d14ab1cb11a88a037a588b0c4b2d5b1
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1578559
Commit-Queue: Andrey Kosyakov <caseq@chromium.org>
Reviewed-by: Andrey Kosyakov <caseq@chromium.org>
Cr-Commit-Position: refs/heads/master@{#653215}
bratell
Avoid shadowing variabels in new font code
I'm trying to remove variable shadowing in some Chromium
code to maybe make the code a bit more robust, and two functions
in blink/platform/fonts/shaping used several instances of |i|.

Bug: 925310
Change-Id: I3e09f7772a7865ec7f73976a57af355070b6ad4f
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1578538
Commit-Queue: Dominik Röttsches <drott@chromium.org>
Auto-Submit: Daniel Bratell <bratell@opera.com>
Reviewed-by: Dominik Röttsches <drott@chromium.org>
Cr-Commit-Position: refs/heads/master@{#653164}
bratell
Find #include "foo.cc" with a presubmit check
An #include "foo.cc" will often compile, until it causes linking
problems later, for instance in jumbo builds. The error messages are
then not good at pointing out what is wrong.

Change-Id: Ic155dc5542e22b54d13c213230d6df4977263642
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1566344
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Jochen Eisinger <jochen@chromium.org>
Cr-Commit-Position: refs/heads/master@{#653105}
bratell
Include headers, not cc files
A test included a cc file which results in duplicate symbols
in the build which then broke certain builds. Most builds
were ok because linkers have the optimization to ignore
obj files which are not referenced by anything else. If anything
in the obj file is referenced everything changes though, and
everything in the obj file is considered.

Change-Id: I2ce961e341952847b20410746b58094ea9d7a3da
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1566309
Commit-Queue: Kyle Milka <kmilka@chromium.org>
Auto-Submit: Daniel Bratell <bratell@opera.com>
Reviewed-by: Kyle Milka <kmilka@chromium.org>
Cr-Commit-Position: refs/heads/master@{#651277}
bratell
Added missing deps for screen_orientation_lock_types
The mojo types using screen_orientation_lock_types.typemap were
missing a build dependency which made gn check --check-generated
report the error below:

ERROR at //out/Default/gen/services/device/public/mojom/screen_orientation_lock_types.mojom-forward.h:37:11: Include not allowed.
          ^------------------------------------------------------------------------------------
It is not in any dependency of
  //services/device/public/mojom:mojom
The include file is in the target(s):
  //third_party/blink/public/common:headers
which should somehow be reachable.

Since code in //services use this, //services/* must also be added
to the list of targets that can use blinks public/common:headers
target. (Or should the whitelist just be deleted since it seems
to list most of Chromium).

Bug: 938893
Change-Id: I5bee9574edf1ae5bb288924f52a113f855f33a92
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1538507
Auto-Submit: Daniel Bratell <bratell@opera.com>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Commit-Queue: Daniel Cheng <dcheng@chromium.org>
Cr-Commit-Position: refs/heads/master@{#650703}
bratell
Move FakeDisplay* from display/manager to their own component
Ozone platforms should not depend on ui/display/manager
since that is a high level build target that ultimately
can depend on ozone again, creating a dependency cycle.

This is a followup to previous "fix one instance" that fixes
all the instances, which I hope will be enough to break
the cycle blocking
https://chromium-review.googlesource.com/c/chromium/src/+/1538507

For path changes in ash:
TBR=jamescook@chromium.org

Change-Id: Ice1d8b21e9bc1709c07bd37943857b07c6093798
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1553424
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Daniel Nicoara <dnicoara@chromium.org>
Reviewed-by: Michael Spang <spang@chromium.org>
Auto-Submit: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#650472}
bratell
Make blink/core expose blink/core/* in gn
Since nobody is allowed to depend on core's sub targets
it's necessary to have blink/core expose them.

This has no immediately visible impact since the private dependency
will have ensured build order and gn's dependency checks are
disabled in blink/core (because it's a mess and kind of works
anyway).

Bug: 800764
Change-Id: I31c326f893f1c2c90a27fdfa195ff719784ab8ea
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1552847
Auto-Submit: Daniel Bratell <bratell@opera.com>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#648088}
bratell
Make it legal for everything in blink/modules to use modules:modules
Code in blink/modules/foo/*.cc often use code in modules:modules
which in the build system is not an allowed include. This makes
it legal.

This has no visible impact since the build order is already ok
and gn check errors are disabled for blink, but long term we'd
like to enable gn check and this is a small step on that route.

Bug: 800764

Change-Id: I083ec02f5190b5ee17e0394e1f5add940d1f4172
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1552808
Commit-Queue: Kentaro Hara <haraken@chromium.org>
Auto-Submit: Daniel Bratell <bratell@opera.com>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#647778}
bratell
Fix random chromedriver build failure
A missing dependency made chromedriver builds flaky.

This was reported as a dependency error by
gn check --check-generated after enabling dependency checks
of chrome/test/* in .gn so having those dependency checks
enabled would have prevented this.

Bug: 949518
Change-Id: I3be5864d27e8258be193e67dc9f05f303b7c00fe
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1552849
Auto-Submit: Daniel Bratell <bratell@opera.com>
Commit-Queue: John Chen <johnchen@chromium.org>
Reviewed-by: John Chen <johnchen@chromium.org>
Cr-Commit-Position: refs/heads/master@{#647757}
bratell
Jumbo compile fix: Too many LoggingEnabled and DebugLogging
The temporary logging methods were copied to several
files and in jumbo builds, where those files are compiled
into the same translation unit, they clashed and
compilation broke.

This patch deletes the extra copies and exposes the one
in direct_manipulation_helper_win.cpp. The name
is not great for an exposed function but since this is
just very temporary code (right?), it should be fine and
we need the build to get going and I don't want to
revert anything.

Bug: 914914

TBR=chaopeng@chromium.org,sky@chromium.org

Change-Id: I35d96a655bbaeede01d081e96426bd7b8358f295
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1552799
Reviewed-by: Daniel Bratell <bratell@opera.com>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#647677}
bratell
Added missing dependencies in ui/base/ime/mojo
The mojo types in ui/base/ime/mojo uses code in ui/base/ime so
there should be a build dependency between the two.

This was reported as an error by gn check --check-generated

ERROR at //out/Default/gen/ui/base/ime/mojo/ime_types.mojom.h:49:11: Include not allowed.
          ^------------------------------
It is not in any dependency of
  //ui/base/ime/mojo:mojo
The include file is in the target(s):
  //ui/base/ime:ime
which should somehow be reachable.

Bug: 938893
Change-Id: I568861a9eee801a76d77af6188f06293b8e9259e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1550447
Commit-Queue: Daniel Cheng <dcheng@chromium.org>
Auto-Submit: Daniel Bratell <bratell@opera.com>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Cr-Commit-Position: refs/heads/master@{#647621}
bratell
Fix deps for some mojo tests
gn check --check-generated revealed a hidden dependency not
expressed in the build scripts which is fixed by this.
The exact error was like the one below (and a couple like it):

ERROR at //out/Default/gen/mojo/public/interfaces/bindings/tests/test_import.mojom-blink-test-utils.cc:23:11: Can't include this header from here.
          ^--------------------------------------------------------------
The target:
  //mojo/public/interfaces/bindings/tests:test_exported_import_blink
is including a file from the target:
  //mojo/public/interfaces/bindings/tests:test_export_blink__generator

It's usually best to depend directly on the destination target.
In some cases, the destination target is considered a subcomponent
of an intermediate target. In this case, the intermediate target
should depend publicly on the destination to forward the ability
to include headers.

Dependency chain (there may also be others):
  //mojo/public/interfaces/bindings/tests:test_exported_import_blink -->
  //mojo/public/interfaces/bindings/tests:test_export_blink_component --[private]-->
  //mojo/public/interfaces/bindings/tests:test_export_blink -->
  //mojo/public/interfaces/bindings/tests:test_export_blink__generator


Bug: 938893
Change-Id: Id7d4be31ef01e37054c381a7fce7eca43ac1b753
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1545914
Auto-Submit: Daniel Bratell <bratell@opera.com>
Reviewed-by: Ken Rockot <rockot@google.com>
Commit-Queue: Ken Rockot <rockot@google.com>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#647342}
fs
Use pre-resolved resource in SVGPatternElement::ReferencedElement
SVGPatternElement::BuildPendingResource() resolves a resource reference
for 'href' on the <pattern> element using the TreeScope-based "resource
store". SVGPatternElement::ReferencedElement() (re-)resolves the same
reference on its own. Because of this inconsistency we could end up
having a reference to a LayoutObject in the associated SVGResources
object, but not have hooked up a client reference for the (originating)
<pattern> element.

Use the SVGResource to resolve the target element in ReferencedElement()
too so that there's only one source of truth.

Bug: 949015
Change-Id: I001c4f9260bdc4599843cd53833b749fd320daa5
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1550426
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#647295}
bratell
Revert "Fixing mojo dependencies for blink/modules/indexeddb"
This reverts commit 41516e5f08b986042d5a5f92063c67fa1c750d8d.

Reason for revert: At least one build failed with a missing header file so this may have made the build flaky. Reverting while investigating/fixing.

Original change's description:
> Fixing mojo dependencies for blink/modules/indexeddb
> 
> This splits the mojo code in two. Once small chunk of helper classes that
> are mojo wrapped, and some high level code that is allowed to use mojo
> itself.
> 
> This CL also makes it allowed and possible to use modules_export.h in
> mojo types that map to code in blink/modules.
> 
> Without this patch gn check --check-generated reports errors like
> the ones below:
> 
> ERROR at //out/Default/gen/third_party/blink/public/mojom/indexeddb/indexeddb.mojom-blink-forward.h:24:11: Include not allowed.
> -#include "third_party/blink/renderer/modules/modules_export.h"
>           ^--------------------------------------------------
> It is not in any dependency of
>   //third_party/blink/public/mojom:mojom_modules_blink
> The include file is in the target(s):
>   //third_party/blink/renderer/modules:modules
> which should somehow be reachable.
> ------------------------------------------------
> ERROR at //out/Default/gen/third_party/blink/public/mojom/indexeddb/indexeddb.mojom-blink.h:55:11: Include not allowed.
> #include "third_party/blink/renderer/modules/indexeddb/idb_key_path.h"
>           ^----------------------------------------------------------
> It is not in any dependency of
>   //third_party/blink/public/mojom:mojom_modules_blink
> The include file is in the target(s):
>   //third_party/blink/renderer/modules/indexeddb:indexeddb
> which should somehow be reachable.
> 
> Bug: 938893
> Change-Id: I0cd9bfb502fa4290a21e61f686b6095455eb4e86
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1547696
> Reviewed-by: Daniel Cheng <dcheng@chromium.org>
> Commit-Queue: Daniel Bratell <bratell@opera.com>
> Cr-Commit-Position: refs/heads/master@{#647200}

TBR=cmp@chromium.org,dcheng@chromium.org,bratell@opera.com

Change-Id: I72b84bd4aa18648a13311bef1a9a44a3780eeed3
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 938893
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1550445
Reviewed-by: Daniel Bratell <bratell@opera.com>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#647249}
bratell
[ozone/wayland] Drop dependency wayland -> ui/display/manager
The dependency wayland -> ui/display/manager created a
dependency loop since ui/display/manager depends on chromeos
which depends on a lot of stuff, and with some upcoming dep
fixes, eventually back on ozone and wayland.

Change-Id: I675047cd724818c9a26c7160c62ea4d4d3fc4749
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1549071
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Maksim Sisov <msisov@igalia.com>
Cr-Commit-Position: refs/heads/master@{#647209}
bratell
Fixing mojo dependencies for blink/modules/indexeddb
This splits the mojo code in two. Once small chunk of helper classes that
are mojo wrapped, and some high level code that is allowed to use mojo
itself.

This CL also makes it allowed and possible to use modules_export.h in
mojo types that map to code in blink/modules.

Without this patch gn check --check-generated reports errors like
the ones below:

ERROR at //out/Default/gen/third_party/blink/public/mojom/indexeddb/indexeddb.mojom-blink-forward.h:24:11: Include not allowed.
-#include "third_party/blink/renderer/modules/modules_export.h"
          ^--------------------------------------------------
It is not in any dependency of
  //third_party/blink/public/mojom:mojom_modules_blink
The include file is in the target(s):
  //third_party/blink/renderer/modules:modules
which should somehow be reachable.
------------------------------------------------
ERROR at //out/Default/gen/third_party/blink/public/mojom/indexeddb/indexeddb.mojom-blink.h:55:11: Include not allowed.
#include "third_party/blink/renderer/modules/indexeddb/idb_key_path.h"
          ^----------------------------------------------------------
It is not in any dependency of
  //third_party/blink/public/mojom:mojom_modules_blink
The include file is in the target(s):
  //third_party/blink/renderer/modules/indexeddb:indexeddb
which should somehow be reachable.

Bug: 938893
Change-Id: I0cd9bfb502fa4290a21e61f686b6095455eb4e86
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1547696
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#647200}
bratell
Include headers, not cc files, to fix duplicate symbols
Some builds failed with duplicate symbols because
code was compiled twice. Most builds were ok because of the
linker optimization to ignore object files that are
completely unused. In jumbo builds there were no object
files that were completely unused so the linker complained
loudly.

Also, since some code is used outside the accessibility
component, in unittests, that code needs to be exported.

TBR=almaher@microsoft.com,dmazzoni@chromium.org

Bug: 928948
Change-Id: I77aeb8beff451be16b0d5f8fe4d62e70f7c66eae
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1549127
Reviewed-by: Daniel Bratell <bratell@opera.com>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#647198}
bratell
Adding missing dependencies for dom_distiller_js
Generated files did not have their dependencies checked so
a missing dependency had gone unnoticed. Now they can
be checked with "gn check --check-generated" and then you got these
errors (fixed by this patch):

ERROR at //out/Default/gen/third_party/dom_distiller_js/dom_distiller_json_converter.h:6:11: Include not allowed.
#include "base/values.h"
          ^------------
It is not in any dependency of
  //third_party/dom_distiller_js:dom_distiller_proto
The include file is in the target(s):
  //base:base
which should somehow be reachable.
___________________
ERROR at //out/Default/gen/third_party/dom_distiller_js/test_sample_json_converter.h:6:11: Include not allowed.
#include "base/values.h"
          ^------------
It is not in any dependency of
  //third_party/dom_distiller_js:json_values_converter_test_proto
The include file is in the target(s):
  //base:base
which should somehow be reachable.

Bug: 939782
Change-Id: I8faab4de02ae547c4449c752174e018fe84a6441
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1547831
Reviewed-by: Tommy Nyquist <nyquist@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#647183}
bratell
[jumbo] Too many kMaxWidth in chrome/browser/ui
In jumbo builds many cc files are compiled together in the same
translation unit and they share the same anonymous namespace
so all symbol names need to be unique within that build target.

Due to a recently enabled kMaxWidth, there were now two kMaxWidth
which made certain, non-default, jumbo builds fail. This renames
the constants to include what they are max width of.

Bug: 939205
Change-Id: I1e441ee095223c4a6a6ce1f2bf18f6ede96acb50
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1547987
Auto-Submit: Daniel Bratell <bratell@opera.com>
Commit-Queue: Scott Violet <sky@chromium.org>
Reviewed-by: Scott Violet <sky@chromium.org>
Cr-Commit-Position: refs/heads/master@{#646916}
wdzierzanowski
Set did_use_http_auth flag for tunneled requests
Proxied requests already had the did_use_http_auth set correctly for
http:// URLs (the non-tunnel case).  The flag was never set for the
tunnel case.

Change-Id: I477693755e6dd90a5b4318f2c4d0bc0bb307479d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1549082
Reviewed-by: Matt Menke <mmenke@chromium.org>
Commit-Queue: Wojciech Dzierżanowski <wdzierzanowski@opera.com>
Cr-Commit-Position: refs/heads/master@{#646914}
bratell
Dropping dependency from ui/ozone to ui/display/manager
ui/ozone is a low level lib and should not depend on high level
targets.

Change-Id: Iddf627e46c05273d9a07f40559975bc114669980
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1549065
Commit-Queue: Daniel Bratell <bratell@opera.com>
Commit-Queue: Michael Spang <spang@chromium.org>
Auto-Submit: Daniel Bratell <bratell@opera.com>
Reviewed-by: Michael Spang <spang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#646848}
bratell
Corrected dependency for mojo type Clipboard
The header used was not publically reachable via ui/base
so the dependency needs to be a bit more precise.

The exact error message from gn check --check-generated:

ERROR at //out/Default/gen/third_party/blink/public/mojom/clipboard/clipboard.mojom.h:48:11: Can't include this header from here.
- #include "ui/base/clipboard/clipboard_types.h"
          ^----------------------------------
The target:
  //third_party/blink/public/mojom:mojom_platform
is including a file from the target:
  //ui/base/clipboard:clipboard_types

It's usually best to depend directly on the destination target.
In some cases, the destination target is considered a subcomponent
of an intermediate target. In this case, the intermediate target
should depend publicly on the destination to forward the ability
to include headers.

Dependency chain (there may also be others):
  //third_party/blink/public/mojom:mojom_platform -->
  //ui/base:base --[private]-->
  //ui/base/clipboard:clipboard_types

Bug: 938893
Change-Id: Ica45c5a6710f55f5ee4394a1b2c82fd3a6536531
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1547729
Auto-Submit: Daniel Bratell <bratell@opera.com>
Commit-Queue: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Cr-Commit-Position: refs/heads/master@{#646680}
wdzierzanowski
Set ProxyServer in URLRequest on failure to connect to proxy
The following errors:

  ERR_PROXY_CERTIFICATE_INVALID,
  ERR_PROXY_AUTH_UNSUPPORTED,
  ERR_PROXY_CONNECTION_FAILED

indicate failure to connect to the proxy (there's also the QUIC-specific
ERR_NO_SUPPORTED_PROXIES). Before this CL, when a URLRequest completed
with one of these errors, |URLRequest::proxy_server_| was not set.

While there's some inherent ambiguity as to which proxy server is set in
this case (ProxyInfo can store multiple proxies), we already report the
net::Error we got for the last proxy we tried, even though previous
proxies might have failed with a different error.

BUG=940428

Change-Id: I900d7be7ea4761cc81bd08d21ca1abfbe8e824ce
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1541164
Reviewed-by: Matt Menke <mmenke@chromium.org>
Commit-Queue: Wojciech Dzierżanowski <wdzierzanowski@opera.com>
Cr-Commit-Position: refs/heads/master@{#646481}
bratell
Correct builds deps for the mojo types in services/network
Some types in services/network causes generated code elsewhere to
include a file in services/network/public/cpp:cpp_base. To make
this permissible by gn check --check-generated, make the deps
to services/network/public/cpp:cpp_base a public dep.

An example of the kind of error this fixes:

ERROR at //out/Default/gen/services/content/public/mojom/navigable_contents.mojom-test-utils.cc:33:11: Can't include this header from here.
#include "services/network/public/cpp/net_ipc_param_traits.h"
          ^-------------------------------------------------
The target:
  //services/content/public/mojom:mojom
is including a file from the target:
  //services/network/public/cpp:cpp_base

It's usually best to depend directly on the destination target.
In some cases, the destination target is considered a subcomponent
of an intermediate target. In this case, the intermediate target
should depend publicly on the destination to forward the ability
to include headers.

Dependency chain (there may also be others):
  //services/content/public/mojom:mojom -->
  //services/network/public/mojom:websocket_mojom --[private]-->
  //services/network/public/cpp:cpp_base

Bug: 938893
Change-Id: I6446eea5b0fb6aeb03d24d0dc771c4f65e02002c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1538410
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#646314}
bratell
Missing deps for mojo type RenderPass
A missing dependency for the mojo type RenderPass triggered this
warning from git check --check-generated:

___________________
ERROR at //out/Default/gen/services/viz/public/interfaces/compositing/render_pass.mojom-forward.h:40:11: Can't include this header from here.
#include "ui/gl/dc_renderer_layer_params.h"
          ^-------------------------------
The target:
  //services/viz/public/interfaces:interfaces
is including a file from the target:
  //ui/gl:gl

It's usually best to depend directly on the destination target.
In some cases, the destination target is considered a subcomponent
of an intermediate target. In this case, the intermediate target
should depend publicly on the destination to forward the ability
to include headers.

Dependency chain (there may also be others):
  //services/viz/public/interfaces:interfaces -->
  //components/viz/common:common --[private]-->
  //ui/gl:gl

Bug: 938893
Change-Id: I79d10875dd308dd37c72efa29bd925ea4f511237
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1538411
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#646310}
fs
Remove dead 'sizes' parsing code in chrome/renderer/web_apps.cc
It looks like the code in question uses WebIconSizesParser - which
provide the same functionality. Remove the code and transplant relevant
(non-duplicate) tests to WebIconSizesParserTest.

Change-Id: I7b7c4e0140268eddccf858174ee6fd78395a0010
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1545051
Commit-Queue: Jochen Eisinger <jochen@chromium.org>
Auto-Submit: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Jochen Eisinger <jochen@chromium.org>
Cr-Commit-Position: refs/heads/master@{#646010}
wdzierzanowski
Remove net::URLRequest::was_fetched_via_proxy()
There are currently no non-test users of this function.

BUG=653354,940428

Change-Id: Ie48431eea38047971a149c52a35a1cd88c3207c1
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1545875
Reviewed-by: Matt Menke <mmenke@chromium.org>
Commit-Queue: Wojciech Dzierżanowski <wdzierzanowski@opera.com>
Cr-Commit-Position: refs/heads/master@{#645851}
wdzierzanowski
Fix Vim clang-format shortcut for insert mode
BUG=932670

Change-Id: I5633b6c21a6e8a733dc7a4e6189b782c1586b038
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1539585
Reviewed-by: Asanka Herath <asanka@chromium.org>
Commit-Queue: Asanka Herath <asanka@chromium.org>
Cr-Commit-Position: refs/heads/master@{#645833}
bratell
Resolve ambiguity between ::features and ::printing::features
There is both a ::features namespace and a ::printing::features
namespace (which is kind of against the coding style), so
if you write just "features" inside the printing namespace,
the compiler will resolve "features" differently depending on
if it is aware ::printing::features exists.

In certain jumbo builds, the compiler will be aware that
::printing::features exists when compiling the code and
will resolve it incorrectly. This patch removes the ambiguity
by adding a :: prefix.

Bug: 945619
Change-Id: I569878be26debb77dea69679dd37414f602ec1a7
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1541226
Auto-Submit: Daniel Bratell <bratell@opera.com>
Commit-Queue: Rebekah Potter <rbpotter@chromium.org>
Reviewed-by: Rebekah Potter <rbpotter@chromium.org>
Cr-Commit-Position: refs/heads/master@{#645422}
bratell
More checks in presubmit for usage of banned C++ features
To avoid banned functions and features in C++ from being used
accidentally, add more presubmit checks.

This tests most of what is currently banned from C++11/14 except
for threads and thread_local. Those were excluded because
of a difficulty in expressing when they were ok and when not
and because of too many false positives.

This change follows a discussion on the cxx mailing list about how
to avoid that people use banned functions from pure ignorance.

Change-Id: I585c05efd72e62d2148be90a3088aa99c6279646
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1539040
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: danakj <danakj@chromium.org>
Reviewed-by: Peter Kasting <pkasting@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#644978}
tmoniuszko
Fix memory leak in StrikeDatabaseIntegratorTestStrikeDatabaseTest
Leak is reported in ASAN builds.

Change-Id: I1c56755a7c7fb38e795faa00e0ca6923e4ff21aa
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1541184
Reviewed-by: Jared Saul <jsaul@google.com>
Commit-Queue: Jared Saul <jsaul@google.com>
Cr-Commit-Position: refs/heads/master@{#644858}
bratell
Allow the dep cycle chrome/browser/extensions <-> api_registration
The generated api_registration files use a lot of headers
in chrome/browser/extensions, creating a dependency cycle.
I see no obvious way to break the cycle so this just makes
it official.

There were also a couple of files in chrome/browser/accessibility
which were used from api registration, creating an unpleasant
dependency. That was fixed by putting those files in extensions
instead of in chrome/browser.

The missing dependencies triggered a lot of gn errors with a gn fixed
to look at generated files (gn:57).

The list is about 60 reports like:

ERROR at //out/Default/gen/chrome/browser/extensions/api/generated_api_registration.cc:7:11: Include not allowed.
          ^--------------------------------------------------------------------------------
It is not in any dependency of
  //chrome/browser/extensions/api:api_registration
The include file is in the target(s):
  //chrome/browser/extensions:extensions
which should somehow be reachable.

Bug: 655123
Change-Id: Ifc7809de17c9a426d2a6abdb41ecc42996b0d01f
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1529095
Reviewed-by: Devlin <rdevlin.cronin@chromium.org>
Reviewed-by: Dominic Mazzoni <dmazzoni@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#644715}
tmoniuszko
Add support for direct lookup resolver in NetworkServiceTest
While content::TestHostResolver simulates failure for non-local DNS
queries, some tests explicitly allow external DNS lookup using
net::RuleBasedHostResolverProc::AllowDirectLookup().

With kNetworkService feature enabled, appropriate host resolver rule
must be propagated to network process.

Change-Id: Icc6eb96a8ea346d408d04d23feb363789a1c5c97
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1533954
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Reviewed-by: Greg Kerr <kerrnel@chromium.org>
Commit-Queue: Tomasz Moniuszko <tmoniuszko@opera.com>
Cr-Commit-Position: refs/heads/master@{#644706}
bratell
Structuring GpuPreferences dependencies
The mojo type GpuPreferences did not depend on the implementation
classes. Since the implementation classes in turn depends on
the mojo bindings, there is a dependency cycle. This patch
describes that in the build system in a way that is accepted
by gn check --check-generated

An example of an error:

ERROR at //out/Default/gen/gpu/ipc/common/gpu_preferences.mojom-forward.h:40:11: Include not allowed.
#include "gpu/config/gpu_preferences.h"
          ^---------------------------
It is not in any dependency of
  //gpu/ipc/common:gpu_preferences_interface
The include file is in the target(s):
  //gpu/config:config_sources
which should somehow be reachable.
___________________


Bug: 938893
Change-Id: I18a9c0c8684ffbbdbe5d47573150434de397061f
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1538423
Auto-Submit: Daniel Bratell <bratell@opera.com>
Commit-Queue: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Antoine Labour <piman@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Cr-Commit-Position: refs/heads/master@{#644620}
bratell
Fixing build dependency for the MailboxHolder type
MailboxHolder uses and exposes
gpu/ipc/common/mailbox_holder_struct_traits.h so it needs to
be a public dependency (as it already is in
mailbox_holder_for_blink.typemap).

One example of many resulting dependency errors:

ERROR at //out/Default/gen/device/vr/public/mojom/isolated_xr_service.mojom-test-utils.cc:29:11: Can't include this header from here.
          ^--------------------------------------------
The target:
  //device/vr/public/mojom:mojom
is including a file from the target:
  //gpu/ipc/common:struct_traits

It's usually best to depend directly on the destination target.
In some cases, the destination target is considered a subcomponent
of an intermediate target. In this case, the intermediate target
should depend publicly on the destination to forward the ability
to include headers.

Dependency chain (there may also be others):
  //device/vr/public/mojom:mojom -->
  //gpu/ipc/common:interfaces --[private]-->
  //gpu/ipc/common:struct_traits


Bug: 938893
Change-Id: I598db331d43cff5212d7d739da96e0648552b7a1
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1535859
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#644424}
bratell
Fixing dependency problem for the mojo Range class
The mojo Range class needs range_struct_traits.h and the build
system wasn't setup to allow that. Simplest for everyone is to integrate
the struct_traits target into the mojom target and let the mojo system
figure out dependencies. This made everything simpler.

Without this fix you got errors like the one below:

ERROR at //out/Default/gen/content/common/input/input_handler.mojom-test-utils.cc:49:11: Can't include this header from here.
          ^--------------------------------------
The target:
  //content/common:mojo_bindings
is including a file from the target:
  //ui/gfx/range/mojo:struct_traits

It's usually best to depend directly on the destination target.
In some cases, the destination target is considered a subcomponent
of an intermediate target. In this case, the intermediate target
should depend publicly on the destination to forward the ability
to include headers.

Dependency chain (there may also be others):
  //content/common:mojo_bindings -->
  //services/ws/public/mojom/ime:ime --[private]-->
  //ui/gfx/range/mojo:struct_traits

Bug: 938893
Change-Id: If01554d38ca3d5f4280d32c658d1f7044f14c29e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1536056
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#644390}
bratell
Add missing components/policy build dependencies
Generated files in components/policy used header files that
they didn't depend on. This oversight caused errors when running
gn check --check-generated (brand new gn feature!)

For instance:
ERROR at //out/Default/gen/components/policy/policy_constants.h:14:11: Include not allowed.
#include "components/policy/core/common/policy_details.h"
          ^---------------------------------------------
It is not in any dependency of
  //components/policy:generated
The include file is in the target(s):
  //components/policy/core/common:internal
which should somehow be reachable.

This CL fixes those errors by listing/allowing necessary dependencies.

An alternative would be to extract policy_details.h and policy_map.h
into a new build target, including everything they depend on.
I didn't investigate how much work that is because of time
constraints.

Bug: 938893
Change-Id: I69775047ae70f15138ad0754f4c4d51bd02c7530
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1527534
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Lutz Justen <ljusten@chromium.org>
Cr-Commit-Position: refs/heads/master@{#644380}
bratell
Make a ColorSpace dep public to avoid include errors
Since mojom will put headers from ui/gfx/ipc/color into
code in other targets, the dependency need to be public so
that other code get the right dependency.

Without the fix gn check --check-generated reports this:

ERROR at //out/Default/gen/services/viz/public/interfaces/compositing/compositor_frame.mojom-test-utils.cc:51:11: Can't include this header from here.
#include "ui/gfx/ipc/color/gfx_param_traits.h"
          ^----------------------------------
The target:
  //services/viz/public/interfaces:interfaces
is including a file from the target:
  //ui/gfx/ipc/color:color

It's usually best to depend directly on the destination target.
In some cases, the destination target is considered a subcomponent
of an intermediate target. In this case, the intermediate target
should depend publicly on the destination to forward the ability
to include headers.

Dependency chain (there may also be others):
  //services/viz/public/interfaces:interfaces -->
  //ui/gfx/mojo:mojo --[private]-->
  //ui/gfx/ipc/color:color

Bug: 938893
Change-Id: I5ab887bc137223c74e7b84ffc75a9fee0b3c01cb
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1538412
Commit-Queue: Daniel Cheng <dcheng@chromium.org>
Auto-Submit: Daniel Bratell <bratell@opera.com>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Cr-Commit-Position: refs/heads/master@{#644370}
bratell
Make a media type deps public to make includes allowed
Since mojo will insert
#include "media/base/ipc/media_param_traits_macros.h"
in code using the media types mojo types, the dependency
on media/base/ipc, where that header lives, need to be
public.

The error reported otherwise (by gn check --check-generated) was:

ERROR at //out/Default/gen/media/mojo/interfaces/traits_test_service.mojom-test-utils.cc:30:11: Can't include this header from here.
#include "media/base/ipc/media_param_traits_macros.h"
          ^-----------------------------------------
The target:
  //media/mojo/interfaces:test_interfaces
is including a file from the target:
  //media/base/ipc:ipc

It's usually best to depend directly on the destination target.
In some cases, the destination target is considered a subcomponent
of an intermediate target. In this case, the intermediate target
should depend publicly on the destination to forward the ability
to include headers.

Dependency chain (there may also be others):
  //media/mojo/interfaces:test_interfaces -->
  //media/mojo/interfaces:interfaces --[private]-->
  //media/base/ipc:ipc

Bug: 938893
Change-Id: I7781ced5305ace65654da9ee4cf1a7f82ecac1a5
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1538434
Commit-Queue: Daniel Cheng <dcheng@chromium.org>
Auto-Submit: Daniel Bratell <bratell@opera.com>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Cr-Commit-Position: refs/heads/master@{#644368}
bratell
Fix net's build deps so that protos can use net_export.h
proto targets use net_export.h without depending on the target where
that header lives. That made gn check --check-generated report errors
like this one:
___________________
ERROR at //out/Default/gen/net/nqe/proto/network_id_proto.pb.h:33:11: Include not allowed.
#include "net/base/net_export.h"
          ^--------------------
It is not in any dependency of
  //net:net_nqe_proto
The include file is in the target(s):
  //net:net
which should somehow be reachable.
___________________

This fixes that problem by moving net_export.h to a separate
build target that other targets can depend on.

Bug: 655123
Change-Id: If7953e007f500adae4fe10b78e86f1a4afaecf17
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1538506
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Matt Menke <mmenke@chromium.org>
Cr-Commit-Position: refs/heads/master@{#644359}
bratell
Fixing ResourceType build dependencies
The mojo type ResourceType used the public resource_type.h
header without depending on the build target where that header
was declared. Depending directly on that target would
create a dependency cycle so a new "resource_type_header" target
was created.

The dependency cycle would have been:
//content/public/common:resource_type_bindings ->
//content/public/common:common ->
//content:content
//content/public/app:both_sources ->
//content/public/common:common_sources ->
//content/public/common:interfaces ->
//content/public/common:resource_type_bindings ->

The exact error this fixes is:

ERROR at //out/Default/gen/content/public/common/resource_type.mojom-forward.h:35:11: Include not allowed.
          ^------------------------------------
It is not in any dependency of
  //content/public/common:resource_type_bindings
The include file is in the target(s):
  //content/public/common:common_sources
which should somehow be reachable.
___________________

Bug 938893

Change-Id: I350bff6a53a5be72f992e1226f7a3adce46f709d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1535856
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#644358}
bratell
Presubmit warning for std::to_string and error for std::shared_ptr
std::to_string is one of the banned functions but people are
not aware of that so a presubmit warning is needed.

It is only a warning for std::string since it's already used
and I don't want to trigger presubmit errors when someone
changes something on the same line as an std::to_string().

std::shared_ptr has been banned for a while (use scoped_refptr)
but it was brought to my attention because of std::weak_ptr from
C++11 which builds on std::shared_ptr.

These updates comes as most of the rest of C++11 is removed from
the ban list and only some very few functions/types remain banned. See:

https://groups.google.com/a/chromium.org/d/msgid/cxx/CAAHOzFDHbjTfGH0wktnDryONBEEyG2O9o-CCMVWuTYFokjrSUw%40mail.gmail.com

Change-Id: I9fb1450ee76046cb842cd5a64a55d2cc977492b4
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1535872
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#644250}
fs
Expand/ceil default object size in SVGImagePainter
Ceil the default object size passed to LayoutImageResource::GetImage, to
increase the chances of the (container) size round-tripping through
Image::Size() (which we use as the source rect).
SVGImageForContainer::Size uses RoundedIntSize(), so depending on the
fractional part of the default object size it could end up either
smaller or larger.

Bug: 944739
Change-Id: Ifc62ddfad760ade87135b356ce6f6e07ed8e5dc5
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1538421
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#644238}
bratell
Make the video_capture_types dep on media/base/ipc explicit
Core using video_capture_types (like components/mirroring) today
get includes not supported by dependencies (see below for an example).

This patch makes the dependency on media/base/ipc public so that
type users get the correct dependencies. This was found with
a new gn than can also check generated files.

In total, this change fixes 16 dependency errors similar to:

ERROR at //out/Default/gen/components/mirroring/mojom/resource_provider.mojom-test-utils.cc:32:11: Can't include this header from here.
          ^----------------------------------
The target:
  //components/mirroring/mojom:service
is including a file from the target:
  //media/base/ipc:ipc

It's usually best to depend directly on the destination target.
In some cases, the destination target is considered a subcomponent
of an intermediate target. In this case, the intermediate target
should depend publicly on the destination to forward the ability
to include headers.

Dependency chain (there may also be others):
  //components/mirroring/mojom:service -->
  //media/capture/mojom:video_capture --[private]-->
  //media/base/ipc:ipc


Bug: 938893
Change-Id: I82864323534f32a9e5ed3e90e7132215267626c6
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1515534
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#644233}
bratell
Make blink's mojo geometry types depend publicly on the struct_traits
Generated code that use the mojo geometry types will end up
including geometry_struct_traits.h and for that to be allowed
by the build system, the dependency in the typemap needs to
be public.

An example (of about 100) error:

ERROR at //out/Default/gen/device/vr/public/mojom/isolated_xr_service.mojom-blink-test-utils.cc:33:11: Can't include this header from here.
          ^----------------------------------------------------------------
The target:
  //device/vr/public/mojom:mojom_blink
is including a file from the target:
  //third_party/blink/renderer/platform/mojo:geometry_struct_traits

It's usually best to depend directly on the destination target.
In some cases, the destination target is considered a subcomponent
of an intermediate target. In this case, the intermediate target
should depend publicly on the destination to forward the ability
to include headers.

Dependency chain (there may also be others):
  //device/vr/public/mojom:mojom_blink -->
  //ui/gfx/geometry/mojo:mojo_blink --[private]-->
  //third_party/blink/renderer/platform/mojo:geometry_struct_traits


Bug: 938893
Change-Id: I2114034805ee2e55a8c98e98c22fe8233ac9fd61
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1538418
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#644225}
bratell
Fix build dependency error in spellcheck mojo
spellcheck/common:interfaces (via typemap) uses some
spellcheck_result.h and spellcheck_struct_traits.h so those
cannot be in a target "above" the mojom build target.

Bug: 938893
Change-Id: Ic3a307248542dfa9b02cb7fb548d88734c6db509
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1528192
Auto-Submit: Daniel Bratell <bratell@opera.com>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Rouslan Solomakhin <rouslan@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#643831}
bratell
Avoid having two different WriteTransaction in ::syncer
There is a ::syncer::WriteTransaction so importing
::syncer::syncable::WriteTransaction into ::syncer with a "using"
statement causes ambiguity in a jumbo build.

Bug: 869381
Change-Id: Ie8a1130f448a26867d3240d4c6ec46d3cb712346
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1524346
Reviewed-by: Tatiana Gornak <melandory@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#643826}
bratell
Always use the "C" number locale (fixing blink tests)
If you run with a non English, non "C", locale, blink tests would
fail since blink uses locale sensitive number to string conversions,
and only in C/English locales is the decimal separator ".".

For non-test code there was already code that forced the number
locale back to "C" but not so for other executables or code
path.

This sets number locale to "C" in all those places where code set it
to something else. Both for renderer processes and other
processes. This should not affect the UI since the C lib
number conversion routines are not good enough so UI code (should)
use icu number to string conversion routines instead.

This patch also adds an assert that the locale is correct to
catch other/future ways the locale end up incorrectly and
deletes some broken test expectations (that hid a symptom of the bug).

Android is partly excluded since its locale system works differently
and probing the current locale only gives strange data back.

Bug: 930701
Change-Id: I15bc0522393d668598d6609dc252aba246ada3f2
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1466443
Reviewed-by: Ken Rockot <rockot@google.com>
Reviewed-by: Peter Beverloo <peter@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Albert J. Wong <ajwong@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#642917}
bratell
Add missing build dependency between top500_domains and its header
tom500_domains compiles a generated file that uses
the top500_domains_header header so there needs to be
an explicit dependency.

Bug: 655123
Change-Id: I4f22d3eddb637ded8b64f1e9765bdf09fac97cda
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1526280
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Peter Kasting <pkasting@chromium.org>
Reviewed-by: Takuto Ikuta <tikuta@chromium.org>
Cr-Commit-Position: refs/heads/master@{#642655}
bratell
Only use ATK_XY_PARENT if atk is new enough
ATK_XY_PARENT was added in atk 2.30 so attempts to use it
with earlier versions will not compile.

Bug: 934274
Change-Id: I27a2f9a72c7977300860b7442d9ee4b53f0c1f62
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1530913
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Martin Robinson <mrobinson@igalia.com>
Cr-Commit-Position: refs/heads/master@{#642630}
bratell
Adding missing build dependency in search_engines
Generated code used a header the build target doesn't depend
on. This extracts that file to its own target so that
the "prepopulated_engines" can depend on that target.

This was found with an updated gn that also checks dependencies
for generated files (an understandable limitation in previous gn).

Bug: 655123
Change-Id: I4bee2a906c2e5c925db549e6bfa0be971afa3828
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1527535
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Mark Pearson <mpearson@chromium.org>
Reviewed-by: Bruce Dawson <brucedawson@chromium.org>
Cr-Commit-Position: refs/heads/master@{#642620}
fs
Preserve explicit dimensions on <use>'d <symbol>
Per [1], 'width' and/or 'height' on a <use> override the corresponding
values on a referenced <svg> or <symbol>. If no 'width' or 'height' is
specified on the <use>, the values set on the referenced elements are
retained.
Previously we would always set 'width' / 'height' on a referenced
<symbol> to '100%' if the <use> did not have any overriding values.
Change this to follow the specification and copy the values from the
original element as needed - much like what was previously done for
referenced <svg> elements.

[1] https://svgwg.org/svg2-draft/struct.html#UseLayout

Bug: 806289
Change-Id: Iaf595ff88af2865a080f95ccc414e283828c195e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1530883
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#642150}
bratell
[jumbo] Restrict it to one content::Status alias
browser/indexed_db pulls leveldb::Status into content with
"using" (i.e. creates a content::Status -> leveldb::Status alias).

When devtools tries to do the same with
inspector_protocol_encoding::Status some extreme jumbo builds
sees the conflict and refuses to compile the code.

Since inspector_protocol_encoding::Status is only used twice,
inlining it seems pretty straightforward.

Change-Id: I8b2fc585bba2f336cd5d910b4505a681ff9d9a39
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1524355
Reviewed-by: Johannes Henkel <johannes@chromium.org>
Reviewed-by: Andrey Kosyakov <caseq@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#641929}
bratell
Add a missing dependency in content/common/native_types
Some code use ui/events/blink/did_overscroll_params.h and
ui/events/blink/web_input_event_traits.h so there needs to
be a dependency to "//ui/events/blink" which declares those headers.

Missing dependency found with a gn check --check-generated (new
feature just added to gn, see gn:57).

Exact errors:

ERROR at //out/Default/gen/content/common/input/input_handler.mojom.h:78:11: Include not allowed.
          ^--------------------------------------
It is not in any dependency of
  //content/common:mojo_bindings
The include file is in the target(s):
  //ui/events/blink:blink
which should somehow be reachable.
___________________
ERROR at //out/Default/gen/content/common/input/input_handler.mojom.h:79:11: Include not allowed.
          ^---------------------------------------
It is not in any dependency of
  //content/common:mojo_bindings
The include file is in the target(s):
  //ui/events/blink:blink
which should somehow be reachable.
___________________


Bug: 938893
Change-Id: I3c2001e5cfe4d7a5cd6334cb1162b15ca97a6a2b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1528185
Reviewed-by: Dave Tapuska <dtapuska@chromium.org>
Reviewed-by: Nasko Oskov <nasko@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#641649}
wdzierzanowski
Change "HTTPS proxy" => "supports QUIC" assumption to be opt-in
The Data Reduction Proxy servers are assumed to also support QUIC if
they are HTTPS proxies. This is currently not true for other custom
proxy config providers like Opera VPN.

Change-Id: I2c63a135ae21639eb98683a4476c9011c740feee
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1511460
Commit-Queue: Wojciech Dzierżanowski <wdzierzanowski@opera.com>
Reviewed-by: Matt Menke <mmenke@chromium.org>
Reviewed-by: Tarun Bansal <tbansal@chromium.org>
Reviewed-by: Chris Palmer <palmer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#640780}
fs
Use the enclosing rect in SVGRootInlineBox::LayoutInlineBoxes
The LayoutRect(const FloatRect&) constructor will round (floor in
practice) the location/size independently. This can cause the resulting
to be smaller than the argument - when the values a small (< 1) this
effect is easily amplified. In cases like the one in this bug, where the
bounding box of <text> is used to determine bounds for a <clipPath>,
this can result in content being clipped when it shouldn't be.

Use EnclosingLayoutRect instead of the "straight" conversion, to make
sure the resulting bounds are not smaller than the original.

Since this changes the bounding box of text, tests that depend on that
directly or indirectly are affected. Mostly without noticeable visual
differences.
For svg/animations/animate-text-nested-transforms.html the location
of the click (that starts the test) is nudged a bit to avoid timing out.

Bug: 820955
Change-Id: I8811de81de0a5dc795218dcdf8a55a79b15e2863
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1520596
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Cr-Commit-Position: refs/heads/master@{#640717}
wdzierzanowski
Allow CustomProxyConfig to override existing config
A CustomProxyConfig provider like Opera VPN will now be able to specify
that the custom config must take priority over all other sources of
proxy configuration.  The default behavior is still the one required by
the Data Reduction Proxy: the DRP config is only effective if nothing
else provided a proxy config.

Change-Id: I4cc0a61375b668ae1806bb6978b3e0893ed941ac
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1491252
Commit-Queue: Wojciech Dzierżanowski <wdzierzanowski@opera.com>
Reviewed-by: Chris Palmer <palmer@chromium.org>
Reviewed-by: Tarun Bansal <tbansal@chromium.org>
Reviewed-by: Matt Menke <mmenke@chromium.org>
Cr-Commit-Position: refs/heads/master@{#640707}
fs
Revert "OnionSoup: Move mojom files from public/platform/web to public/mojom folder"
This reverts commit e656908dbda6ced2f4743a9b5c2ed926dc6b5b67.

Reason for revert: Appears to cause build failure on Android

[71296/78273] ACTION //content/public/android:content_java__process_prebuilt__bytecode_rewrite(//build/toolchain/android:android_clang_arm)
FAILED: obj/content/public/android/content_java__process_prebuilt-bytecode-rewritten.jar
python ../../build/android/gyp/bytecode_processor.py --script bin/helper/java_bytecode_rewriter [...removed for brevity, see link...]
Missing 2 classes missing in direct classpath. To fix, add GN deps for:
gen/third_party/blink/public/mojom/android_mojo_bindings_java.javac.jar
Traceback (most recent call last):
File "../../build/android/gyp/bytecode_processor.py", line 76, in <module>
sys.exit(main(sys.argv))
File "../../build/android/gyp/bytecode_processor.py", line 72, in main
subprocess.check_call(cmd)
File "/b/swarming/w/ir/cipd_bin_packages/lib/python2.7/subprocess.py", line 186, in check_call
raise CalledProcessError(retcode, cmd)

(https://ci.chromium.org/p/chromium/builders/ci/android-rel/9664)

Original change's description:
> OnionSoup: Move mojom files from public/platform/web to public/mojom folder
> 
> This CL moves window_features.mojom, commit_result.mojom,
> devtools_frontend.mojom, selection_menu_behavior.mojom and
> remote_objects.mojom from public/platform/web to public/mojom/
> to gather mojom files to mojom folder and updates paths for these
> mojom files.
> 
> Bug: 919393
> Change-Id: If6df031ed39d70e700986bd13a40d0598257e009
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1514434
> Reviewed-by: Scott Violet <sky@chromium.org>
> Reviewed-by: Kentaro Hara <haraken@chromium.org>
> Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
> Reviewed-by: Dmitry Gozman <dgozman@chromium.org>
> Commit-Queue: Julie Jeongeun Kim <jkim@igalia.com>
> Cr-Commit-Position: refs/heads/master@{#640633}

TBR=dgozman@chromium.org,sky@chromium.org,kinuko@chromium.org,haraken@chromium.org,jkim@igalia.com

Change-Id: I5744072dbaeffba5706f329838e37d74c065ae27
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 919393
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1523386
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#640688}
wdzierzanowski
Support tunneled requests in NetworkServiceProxyDelegate
With this change, CustomProxyConfig can specify rules for http://,
https://, ws://, and wss:// requests with a single proxy list.

NetworkServiceProxyDelegate will now support proxy resolution not just
for http:// requests, but for any scheme (except ftp://, which isn't
proxied in //net, either).  The delegate will also modify the CONNECT
request headers to include the headers specified in CustomProxyConfig.

The meaning of CustomProxyConfig is modified to let features specify
proxying behavior precisely through net::ProxyConfig::ProxyRules.  In
particular, the proxy rules now determine which schemes are proxied with
no additional assumptions in NetworkServiceProxyDelegate.

Bug: 915659
Change-Id: I2dd2a95ab96bdf4d14cffa5c2541fbb678cd3f94
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1417455
Commit-Queue: Wojciech Dzierżanowski <wdzierzanowski@opera.com>
Reviewed-by: Tarun Bansal <tbansal@chromium.org>
Reviewed-by: Matt Menke <mmenke@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Dominick Ng <dominickn@chromium.org>
Cr-Commit-Position: refs/heads/master@{#640680}
bratell
Don't emit RevocableInterfacePtr in mojo's blink bindings
The code that we emit in mojo's blink bindings are sometimes
loaded into non-blink code (see bug) and from there you should not
access code inside blink. Since RevocableInterfacePtr lives inside
blink, that causes dependency and layering violations.

Everyone using blink bindings got something similar to.
ERROR at //out/Default/gen/components/content_settings/core/common/content_settings.mojom-blink-forward.h:20:11: Include not allowed.
#include "third_party/blink/renderer/platform/mojo/revocable_interface_ptr.h"
          ^-----------------------------------------------------------------
It is not in any dependency of
  //components/content_settings/core/common:mojo_bindings_blink
The include file is in the target(s):
  //third_party/blink/renderer/platform:platform
which should somehow be reachable.
___________________

In total there were about 1000 reported dependency errors
because of this.

This fixes this by inlining the few uses and removing the includes.

Bug: 938893
Change-Id: If0a682414b27912c8ff55b4bc0e477c9948ba051
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1511415
Reviewed-by: Ken Rockot <rockot@google.com>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#640228}
bratell
Build: generated_types needs to explicitly depend on base
json_scheme_api generated_types template includes generated code
that uses files like base/logging.h and base/values.h so targets
need to depend on //base or gn dependency checks will be unhappy.

Bug: 938893
Change-Id: Ib36220775a03d77dbb5076aa4df9c8291121b967
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1518516
Commit-Queue: Devlin <rdevlin.cronin@chromium.org>
Auto-Submit: Daniel Bratell <bratell@opera.com>
Reviewed-by: Devlin <rdevlin.cronin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#640027}
bratell
Explicitly upgrade old packages in install-build-deps.sh
The old code would only sometimes upgrade packages, depending
on whether apt-get had to ask a y/n question before the
upgrade or not. This makes the upgrade more explicit
rather than a side effect of the query command.

This also adds lists libc6-dev as a dependency since it is needed
and without it being listed it might not be upgraded.

Bug: 934256
Change-Id: Iee2aae09374557e77ce9c1ef4b36b9366827015d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1491972
Reviewed-by: Lei Zhang <thestig@chromium.org>
Reviewed-by: Thomas Anderson <thomasanderson@chromium.org>
Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
Auto-Submit: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#639964}
erikj
Make it possible to remove the root layer in the android CompositorImpl
It was only possible to reassign the root layer not remove it.

Change-Id: I6a2eb1cd7040ac6a3c50fba846a19fbb8e2db3a9
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1503319
Reviewed-by: Eric Karl <ericrk@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#639932}
bratell
Gave two GetCreateNetworkFactoryCallback unique names
Both content/browser/frame_host and content/browser/worker_host
needed a GetCreateNetworkFactoryCallback and in jumbo builds where
those compiled in the same translation unit, those (identical)
functions clashed.

I see no obvious place to share them and I'm not sure if their
static state should even be merged so this patch just gives
the functions more distinct names. (Improved name suggestions
welcome).

Bug: 927849
Change-Id: Ib6556c42e7bdbba9702fb24a12b7b9c0a1fb93cf
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1472672
Commit-Queue: Avi Drissman <avi@chromium.org>
Reviewed-by: Avi Drissman <avi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#639683}
bratell
Adding missing dependency from courgette to lzma_sdk
crc.cc in in courgette uses third_party/lzma_sdk/7zCrc.h so
it needs to depend on the build target that lists that file,
i.e. "//third_party/lzma_sdk".

Change-Id: I29f88fee06f1954bc3043eee5e78fbabeebaebee
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1505945
Auto-Submit: Daniel Bratell <bratell@opera.com>
Commit-Queue: Samuel Huang <huangs@chromium.org>
Reviewed-by: Samuel Huang <huangs@chromium.org>
Cr-Commit-Position: refs/heads/master@{#639603}
fs
Clear latched invalidation state for a <marker> when painting
We keep track of invalidations in
LayoutSVGResourceContainer::completed_invalidations_mask_ to reduce the
amount of propagation performed. These flags are then usually cleared on
subsequent accesses later during the lifecycle. For non-layout
invalidations of markers the latched state would however not be cleared.

Clear the latched state when we (try to) paint a marker.

Bug: 939455
Change-Id: Ic2359c301a863e16ef0b466753a4cf06d20126a4
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1511466
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#639586}
bratell
Use BLINK_PLATFORM_EXPORT instead of PLATFORM_EXPORT macro in media mojo
In Windows the media mojo code used PLATFORM_EXPORT, an internal
blink macro, in some generated code. This "worked" and it compiled
thanks to the blink internal platform_export.h header being
included through some other mistaken code.

As that other mistaken code stops including blink's platform_export.h this
will stop compiling as is.

Switching to the external BLINK_PLATFORM_EXPORT makes everything right.

Change-Id: If0b3de739e4953dfd211d1ffd6d7d44bc7f7d69e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1511411
Commit-Queue: Matthew Wolenetz <wolenetz@chromium.org>
Reviewed-by: Matthew Wolenetz <wolenetz@chromium.org>
Reviewed-by: Guido Urdaneta <guidou@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Auto-Submit: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#639569}
fs
Don't include bindings/core/v8/script_source_code.h in probe template
This template is used by both core and platform probes - in the latter case
this include would be a layering violation.

---=== GN output: ===---

ERROR at //out/Default/gen/third_party/blink/renderer/platform/platform_probes_inl.h:15:11: Include not allowed.
#include "third_party/blink/renderer/bindings/core/v8/script_source_code.h"
          ^---------------------------------------------------------------
It is not in any dependency of
  //third_party/blink/renderer/platform:platform
The include file is in the target(s):
  //third_party/blink/renderer/core:core_generated
which should somehow be reachable.

---==================---

Specify this include in the 'settings.includes' list in
core/probe/core_probes.json5 instead.

Bug: 939782
Change-Id: Ibd0ee570ae10408163223a49a27c0fd9ff1529d8
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1511392
Reviewed-by: Alexei Filippov <alph@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#639361}
bratell
Add necessary explicit deps for extension apis
Several missing build dependencies were revealed by an updated
gn check, including a number related to the extension
api registration where code used headers from browser and
browser/extensions.

Since they cannot depend directly on those (would create dependency
cycles) allow_circular_includes must be used instead.

Example problems:

ERROR at //out/Default/gen/chrome/browser/apps/platform_apps/api/generated_api_registration.cc:8:11: Can't include this header from here.
#include "chrome/browser/apps/platform_apps/api/music_manager_private/music_manager_private_api.h"

ERROR at //out/Default/gen/chrome/browser/extensions/api/generated_api_registration.cc:7:11: Include not allowed.
#include "chrome/browser/extensions/api/webrtc_logging_private/webrtc_logging_private_api.h"

ERROR at //out/Default/gen/chrome/browser/extensions/api/generated_api_registration.cc:66:11: Include not allowed.
#include "chrome/browser/accessibility/accessibility_extension_api.h"

Change-Id: I432d44da18b236bf51f9736f58e990dd42a82a15
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1505449
Commit-Queue: Dominick Ng <dominickn@chromium.org>
Reviewed-by: Devlin <rdevlin.cronin@chromium.org>
Reviewed-by: Dominick Ng <dominickn@chromium.org>
Auto-Submit: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#639168}
bratell
[jumbo] Inlined a duplicate function GetWorkerThreadIPCMessageSender
A second GetWorkerThreadIPCMessageSender appeared which caused
some (non default) jumbo builds to fail because they ended up
in the same translation unit.

Since they are mostly there to save writing a long expression,
I just inlined them to get past the clash. Alternatives would have
been to rename one of them, or (better) move them to a shared place
so everyone can take advantage of the code.

Bug: 939096

Change-Id: I25b506fb6306c8e023bb39138b91300a48d2c48c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1511400
Commit-Queue: Devlin <rdevlin.cronin@chromium.org>
Auto-Submit: Daniel Bratell <bratell@opera.com>
Reviewed-by: Devlin <rdevlin.cronin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#639128}
bratell
Remove variable shadowing in blink/page
In an effort to reduce or even ban variable shadowing, this renames
a couple of variables. I'm interested in prohibiting shadowing because
I think it might prevent potential jumbo problems.

The exact warnings prevented:

third_party/blink/renderer/core/page/drag_controller.cc:806:14: error: declaration shadows a local variable [-Werror,-Wshadow]
  for (Node& node : NodeTraversal::InclusiveAncestorsOf(node)) {
             ^
third_party/blink/renderer/core/page/drag_controller.cc:797:42: note: previous declaration is here
bool SelectTextInsteadOfDrag(const Node& node) {
                                         ^
third_party/blink/renderer/core/page/drag_controller.cc:1270:17: error: declaration shadows a local variable [-Werror,-Wshadow]
      if (Node* node = EnclosingAnchorElement(
                ^
third_party/blink/renderer/core/page/drag_controller.cc:1217:9: note: previous declaration is here
  Node* node = state.drag_src_.Get();
        ^
third_party/blink/renderer/core/page/focus_controller.cc:1050:27: error: declaration shadows a local variable [-Werror,-Wshadow]
    ScopedFocusNavigation scope = ScopedFocusNavigation::CreateForDocument(
                          ^
third_party/blink/renderer/core/page/focus_controller.cc:1022:25: note: previous declaration is here
  ScopedFocusNavigation scope =
                        ^
third_party/blink/renderer/core/page/scrolling/root_scroller_controller.cc:296:28: error: declaration shadows a local variable [-Werror,-Wshadow]
      const ComputedStyle* style = ancestor->Style();
                           ^
third_party/blink/renderer/core/page/scrolling/root_scroller_controller.cc:272:24: note: previous declaration is here
  const ComputedStyle* style = element.GetLayoutObject()->Style();
                       ^

Bug: 923510
Change-Id: I165f94d96f9d847082e09090e65682539279ff17
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1508260
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#638992}
bratell
Remove variable shadowing in blink/css
In an effort to reduce or even ban variable shadowing, this renames a
couple of variables. I'm interested in prohibiting shadowing
because I think it might prevent potential jumbo problems.

The exact warnings this patch avoids are:

third_party/blink/renderer/core/css/css_selector_list.cc:185:19: error: declaration shadows a local variable [-Werror,-Wshadow]
  for (wtf_size_t i = 0; i < num_args; ++i) {
                  ^
third_party/blink/renderer/core/css/css_selector_list.cc:140:10: note: previous declaration is here
  size_t i = 0;
         ^
third_party/blink/renderer/core/css/properties/css_parsing_utils.cc:2312:21: error: declaration shadows a local variable [-Werror,-Wshadow]
      for (unsigned i = 0; i < 4; ++i)
                    ^
third_party/blink/renderer/core/css/properties/css_parsing_utils.cc:2294:12: note: previous declaration is here
  unsigned i = 0;
           ^
third_party/blink/renderer/core/css/properties/longhands/contain_custom.cc:34:16: error: declaration shadows a local variable [-Werror,-Wshadow]
    CSSValueID id = range.Peek().Id();
               ^
third_party/blink/renderer/core/css/properties/longhands/contain_custom.cc:19:14: note: previous declaration is here
  CSSValueID id = range.Peek().Id();
             ^
third_party/blink/renderer/core/css/properties/longhands/content_custom.cc:191:29: error: declaration shadows a local variable [-Werror,-Wshadow]
        const AtomicString& value = state.GetElement()->getAttribute(attr);
                            ^
third_party/blink/renderer/core/css/properties/longhands/content_custom.cc:135:42: note: previous declaration is here
                         const CSSValue& value) const {
                                         ^
third_party/blink/renderer/core/css/properties/longhands/webkit_text_emphasis_style_custom.cc:105:33: error: declaration shadows a local variable [-Werror,-Wshadow]
      const CSSIdentifierValue& value = ToCSSIdentifierValue(list.Item(i));
                                ^
third_party/blink/renderer/core/css/properties/longhands/webkit_text_emphasis_style_custom.cc:100:58: note: previous declaration is here
                                         const CSSValue& value) const {
                                                         ^
third_party/blink/renderer/core/css/resolver/css_variable_resolver.cc:123:25: error: declaration shadows a local variable [-Werror,-Wshadow]
    CSSParserTokenRange range(result.tokens);
                        ^
third_party/blink/renderer/core/css/resolver/css_variable_resolver.cc:111:25: note: previous declaration is here
    CSSParserTokenRange range,
                        ^
third_party/blink/renderer/core/css/resolver/style_builder_converter.cc:1312:21: error: declaration shadows a local variable [-Werror,-Wshadow]
    const CSSValue& value = value_list.Item(i);
                    ^
third_party/blink/renderer/core/css/resolver/style_builder_converter.cc:1297:70: note: previous declaration is here
                                                     const CSSValue& value) {
                                                                     ^
third_party/blink/renderer/core/css/selector_checker.cc:765:12: error: declaration shadows a local variable [-Werror,-Wshadow]
      bool result = true;
           ^
third_party/blink/renderer/core/css/selector_checker.cc:749:53: note: previous declaration is here
                                       MatchResult& result) const {
                                                    ^
third_party/blink/renderer/core/css/style_property_serializer.cc:96:9: error: declaration shadows a local variable [-Werror,-Wshadow]
    int index = property_set_->FindPropertyIndex(property_id);
        ^
third_party/blink/renderer/core/css/style_property_serializer.cc:87:14: note: previous declaration is here
    unsigned index) const {
             ^

Bug: 923510
Change-Id: I18ff4db537f64e70f37abf2682b19305eaa86f92
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1508261
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#638991}
bratell
Fix geometry mojo build dependencies
Everything using Rect in mojom files will indirectly need
to include //ui/gfx/geometry/mojo/geometry_struct_traits.h"
and for that to be allowed in gn, its build target
(//ui/gfx/geometry/mojo:struct_traits) needs to be a public
dependency.

This fixes about 200 dependency errors as reported by a gn
that can check dependencies in generated files (gn:57).

Bug: 938893
Change-Id: Ifbe6d0c6a0bc26e158badf751322509e66093252
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1508467
Reviewed-by: Robert Sesek <rsesek@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#638746}
bratell
Remove some variable shadowing in blink/core
In an effort to reduce or even ban variable shadowing, this renames
some variables. I'm interested in prohibiting shadowing because
I think it might prevent potential jumbo problems.

The exact warnings this prevents is:

third_party/blink/renderer/core/fileapi/file_reader_loader.cc:358:16: error: declaration shadows a local variable [-Werror,-Wshadow]
    MojoResult result = consumer_handle_->BeginReadData(
               ^
third_party/blink/renderer/core/fileapi/file_reader_loader.cc:346:54: note: previous declaration is here
void FileReaderLoader::OnDataPipeReadable(MojoResult result) {
                                                     ^

third_party/blink/renderer/core/aom/accessible_node.cc:288:16: error: declaration shadows a local variable [-Werror,-Wshadow]
      Element* element = accessible_node->element();
               ^
third_party/blink/renderer/core/aom/accessible_node.cc:278:43: note: previous declaration is here
bool AccessibleNode::GetProperty(Element* element,
                                          ^

third_party/blink/renderer/core/invisible_dom/invisible_dom.cc:43:16: error: declaration shadows a local variable [-Werror,-Wshadow]
    for (Node& node : FlatTreeTraversal::AncestorsOf(node)) {
               ^
third_party/blink/renderer/core/invisible_dom/invisible_dom.cc:40:14: note: previous declaration is here
  for (Node& node : range.Nodes()) {
             ^

third_party/blink/renderer/core/loader/frame_loader.cc:892:10: error: declaration shadows a local variable [-Werror,-Wshadow]
    auto request = mojo::MakeRequest(&navigation_initiator);
         ^
third_party/blink/renderer/core/loader/frame_loader.cc:798:20: note: previous declaration is here
  FrameLoadRequest request(passed_request);
                   ^

third_party/blink/renderer/core/script/modulator.cc:52:20: error: declaration shadows a local variable [-Werror,-Wshadow]
  } else if (auto* scope = DynamicTo<WorkerGlobalScope>(execution_context)) {
                   ^
third_party/blink/renderer/core/script/modulator.cc:45:20: note: previous declaration is here
  } else if (auto* scope = DynamicTo<WorkletGlobalScope>(execution_context)) {
                   ^

Bug: 923510
Change-Id: I82659c403eb15b4f676d24b97414bfbbced9d701
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1508517
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#638662}
fs
Improve tainting for filter primitives
This makes tainting for many filter primitives less pessimistic, by
implementing the "Tainted Filter Primitives" section [1] from the
specification.

For feFlood/feDropShadow:

  A value of 'currentcolor' for 'flood-color' taints.

For feSpecularLighting/feDiffuseLighting:

  A value of 'currentcolor' for 'lighting-color' taints.

For the other primitives (which currently lack any specific logic), i.e:

  feBlend, feComponentTransfer, feComposite, feConvolveMatrix,
  feDisplacementMap, feGaussianBlur, feMorphology, feOffset and feTile

no local tainting is performed (the TaintsOrigin() override is returning
false).

The signature/convention of the TaintsOrigin() is changed by removing
the |inputs_taint_origin| argument, and always taint the
primitive if it (the flag returned by FilterEffect::InputsTaintOrigin)
is true. This saves each primitive to have to relate to this flag. (For
primitives that have no inputs this flag would always be false
regardless.) This means that TaintsOrigin() for each primitive is now
essentially computing the "local" tainting state.

[1] https://drafts.fxtf.org/filter-effects/#tainted-filter-primitives

Bug: 792518
Change-Id: Ie2d45eeb1ae8478009b88b8b87b3c4c325ede306
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1503257
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Philip Rogers <pdr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#638546}
fs
Fix hit-testing of nested clip-paths with objectBoundingBox units
A nested clip-path should resolve against the original elements
reference box, but it would instead resolve against the referencing
<clipPath>.
Pass the appropriate reference box to SVGLayoutSupport::IntersectsClipPath.

Took the opportunity to export some related tests to WPT.

Bug: 938913
Change-Id: I6d6ad88f0a97028b21b1f1a488afbdd42a96264b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1505949
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#638293}
bratell
Add build dependency from the grit template to base
Code generated by grit depends on //base (base/stl_util.h)
so the build target will need to depend on //base as well.

Found when gn check was taught to look at generated files and not
just at files in the source tree.

Bug: 938933
Change-Id: I566d8c1f0c6b8d16ec21eb7cc864f86b4ed08370
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1505943
Commit-Queue: Daniel Bratell <bratell@opera.com>
Commit-Queue: Andrew Grieve <agrieve@chromium.org>
Auto-Submit: Daniel Bratell <bratell@opera.com>
Reviewed-by: Andrew Grieve <agrieve@chromium.org>
Cr-Commit-Position: refs/heads/master@{#638191}
fs
Update bug# for external/wpt/css/css-masking/ failures
TBR=schenney@chromium.org

Bug: 843084
Change-Id: I7e9159f16d3c61838e6838cffd40b13c61aa6e22
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1503733
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#637694}
fs
Remove TODO in svg_fe_convolve_matrix_element.idl
It was resolved in https://github.com/w3c/fxtf-drafts/issues/114 to keep
this attribute.

Bug: 695977
Change-Id: I77a2cea341483d6ce337b314cd6597ec089c07eb
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1499565
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#637370}
bratell
Drop crash workaround for scrollbar clicking
An unrelated code change made bokan notice an old crash fix
workaround from 2007[1] that should not be needed anymore.

Save some code complexity by removing that workaround.

[1] https://chromium.googlesource.com/chromium/src/+/eeca720ce09f9b6b22f23041b332a46ab42030a1

Change-Id: Ie6de426e8c0c13c7ce6b90fa3554f4fbf7c03366
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1497142
Reviewed-by: David Bokan <bokan@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#637339}
bratell
Remove variable shadowing in blink/animation
In an effort to reduce or even ban variable shadowing, this renames
and removes some variable. I'm interested in prohibiting
shadowing because I think it might prevent potential jumbo problems.

The exact warning this this avoids is:

third_party/blink/renderer/core/animation/css/css_animations.cc:385:25: error: declaration shadows a local variable [-Werror,-Wshadow]
        for (wtf_size_t i = 0; i < css_animations->running_animations_.size();
                        ^
third_party/blink/renderer/core/animation/css/css_animations.cc:354:21: note: previous declaration is here
    for (wtf_size_t i = 0; i < name_list.size(); ++i) {
                    ^
third_party/blink/renderer/core/animation/effect_input.cc:548:11: error: declaration shadows a local variable [-Werror,-Wshadow]
    auto* keyframe = keyframes.at(keys[i]);
          ^
third_party/blink/renderer/core/animation/effect_input.cc:429:69: note: previous declaration is here
                                       const v8::Local<v8::Object>& keyframe,
                                                                    ^
third_party/blink/renderer/core/animation/list_interpolation_functions.cc:142:26: error: declaration shadows a local variable [-Werror,-Wshadow]
      InterpolationValue start(
                         ^
third_party/blink/renderer/core/animation/list_interpolation_functions.cc:82:26: note: previous declaration is here
    InterpolationValue&& start,
                         ^
third_party/blink/renderer/core/animation/list_interpolation_functions.cc:145:26: error: declaration shadows a local variable [-Werror,-Wshadow]
      InterpolationValue end(end_interpolable_list.Get(i % end_length)->Clone(),
                         ^
third_party/blink/renderer/core/animation/list_interpolation_functions.cc:83:26: note: previous declaration is here
    InterpolationValue&& end,
                         ^
third_party/blink/renderer/core/animation/list_interpolation_functions.cc:147:34: error: declaration shadows a local variable [-Werror,-Wshadow]
      PairwiseInterpolationValue result =
                                 ^
third_party/blink/renderer/core/animation/list_interpolation_functions.cc:138:32: note: previous declaration is here
    PairwiseInterpolationValue result = nullptr;
                               ^

Bug: 923510
Change-Id: I6c7180f8ff481cee78045ae9aa24bd4dd9631d1f
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1495544
Reviewed-by: Robert Flack <flackr@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#637329}
bratell
Remove variable shadowing in blink/input
In an effort to reduce or even ban variable shadowing, this renames
some variables to avoid such shadowing. I'm interested in prohibiting
shadowing because I think it might prevent potential jumbo problems.

The exact warning this avoids is:
third_party/blink/renderer/core/input/event_handler.cc:757:20: error: declaration shadows a local variable [-Werror,-Wshadow]
    HitTestRequest request(HitTestRequest::kReadOnly | HitTestRequest::kActive);
                   ^
third_party/blink/renderer/core/input/event_handler.cc:636:18: note: previous declaration is here
  HitTestRequest request(HitTestRequest::kActive);
                 ^
third_party/blink/renderer/core/input/event_handler.cc:772:22: error: declaration shadows a local variable [-Werror,-Wshadow]
      HitTestRequest request(HitTestRequest::kReadOnly |
                     ^
third_party/blink/renderer/core/input/event_handler.cc:636:18: note: previous declaration is here
  HitTestRequest request(HitTestRequest::kActive);
                 ^
third_party/blink/renderer/core/input/scroll_manager.cc:254:11: error: declaration shadows a local variable [-Werror,-Wshadow]
    Node* node = DOMNodeIds::NodeForId(scroll_chain.back());
          ^
third_party/blink/renderer/core/input/scroll_manager.cc:228:9: note: previous declaration is here
  Node* node = start_node;
        ^

Bug: 923510
Change-Id: I2bfd6993232654574a11dbfe7ded2b27555d931a
Reviewed-on: https://chromium-review.googlesource.com/c/1494877
Auto-Submit: Daniel Bratell <bratell@opera.com>
Reviewed-by: David Bokan <bokan@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#637296}
bratell
Remove variable shadowing in blink/html
In an effort to reduce or even ban variable shadowing, this renames
a variable to avoid such shadowing. I'm interested in prohibiting
shadowing because I think it might prevent potential jumbo problems.

The exact warnings this avoids are:

In file included from ./../../third_party/blink/renderer/core/html/forms/base_temporal_input_type.cc:31:
In file included from ../../third_party/blink/renderer/core/html/forms/base_temporal_input_type.h:34:
In file included from ../../third_party/blink/renderer/core/html/forms/date_time_edit_element.h:31:
third_party/blink/renderer/core/html/forms/date_time_field_element.h:43:5: error: declaration shadows a variable in namespace 'blink' [-Werror,-Wshadow]
    kDispatchNoEvent,
    ^
third_party/blink/renderer/core/html/forms/text_control_element.h:46:3: note: previous declaration is here
  kDispatchNoEvent,
  ^
third_party/blink/renderer/core/html/forms/date_time_numeric_field_element.cc:98:9: error: declaration shadows a local variable [-Werror,-Wshadow]
    int value = TypeAheadValue();
        ^
third_party/blink/renderer/core/html/forms/date_time_numeric_field_element.cc:95:51: note: previous declaration is here
void DateTimeNumericFieldElement::SetFocused(bool value,
                                                  ^
third_party/blink/renderer/core/html/forms/html_option_element.cc:348:15: error: declaration shadows a local variable [-Werror,-Wshadow]
    if (auto* select = ToHTMLSelectElementOrNull(insertion_point.parentNode()))
              ^
third_party/blink/renderer/core/html/forms/html_option_element.cc:344:13: note: previous declaration is here
  if (auto* select = ToHTMLSelectElementOrNull(insertion_point)) {
            ^
third_party/blink/renderer/core/html/html_hr_element.cc:138:15: error: declaration shadows a local variable [-Werror,-Wshadow]
    if (auto* select = ToHTMLSelectElementOrNull(parent))
              ^
third_party/blink/renderer/core/html/html_hr_element.cc:133:13: note: previous declaration is here
  if (auto* select = ToHTMLSelectElementOrNull(insertion_point)) {
            ^
third_party/blink/renderer/core/html/html_slot_element.cc:125:17: error: declaration shadows a local variable [-Werror,-Wshadow]
      if (auto* slot = ToHTMLSlotElementIfSupportsAssignmentOrNull(child))
                ^
third_party/blink/renderer/core/html/html_slot_element.cc:115:28: note: previous declaration is here
    const HTMLSlotElement& slot) {
                           ^
third_party/blink/renderer/core/html/html_slot_element.cc:133:17: error: declaration shadows a local variable [-Werror,-Wshadow]
      if (auto* slot = ToHTMLSlotElementIfSupportsAssignmentOrNull(*node))
                ^
third_party/blink/renderer/core/html/html_slot_element.cc:115:28: note: previous declaration is here
    const HTMLSlotElement& slot) {
                           ^
third_party/blink/renderer/core/html/track/vtt/vtt_cue.cc:770:14: error: declaration shadows a local variable [-Werror,-Wshadow]
      double current_timestamp;
             ^
third_party/blink/renderer/core/html/track/vtt/vtt_cue.cc:764:10: note: previous declaration is here
  double current_timestamp = startTime();
         ^
third_party/blink/renderer/core/html/parser/html_tree_builder.cc:1464:14: error: declaration shadows a local variable [-Werror,-Wshadow]
    for (int i = 0; i < kInnerIterationLimit; ++i) {
             ^
third_party/blink/renderer/core/html/parser/html_tree_builder.cc:1415:12: note: previous declaration is here
  for (int i = 0; i < kOuterIterationLimit; ++i) {
           ^
third_party/blink/renderer/core/html/parser/text_resource_decoder.cc:332:9: error: declaration shadows a local variable [-Werror,-Wshadow]
    int len = 0;
        ^
third_party/blink/renderer/core/html/parser/text_resource_decoder.cc:297:57: note: previous declaration is here
                                             wtf_size_t len,

Change-Id: I5ab4a7b99bb5f55cf2f0a97a2691c7aa3c6fd88d
Reviewed-on: https://chromium-review.googlesource.com/c/1478898
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Kent Tamura <tkent@chromium.org>
Cr-Commit-Position: refs/heads/master@{#637252}
fs
Pass StringView to SVG path parsing
This allows optimizing away the String creation in
css_parsing_utils::ConsumePath, while also being slightly more generic.

Change-Id: Iba17ca82e45304dd217487cb526cf8ba692c3276
Reviewed-on: https://chromium-review.googlesource.com/c/1497001
Reviewed-by: Philip Rogers <pdr@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#636919}
bratell
Remove state variable shadowing in blink/paint
In an effort to reduce or even ban variable shadowing, this renames a
variable. I'm interested in prohibiting shadowing because I think it
might prevent potential jumbo problems.

The exact warning this this avoids is:

third_party/blink/renderer/core/paint/paint_property_tree_builder.cc:1762:40: error: declaration shadows a local variable [-Werror,-Wshadow]

        EffectPaintPropertyNode::State state;
                                       ^
third_party/blink/renderer/core/paint/paint_property_tree_builder.cc:1711:38: note: previous declaration is here
      ScrollPaintPropertyNode::State state;
                                     ^
third_party/blink/renderer/core/paint/paint_property_tree_builder.cc:1776:40: error: declaration shadows a local variable [-Werror,-Wshadow]
        EffectPaintPropertyNode::State state;
                                       ^
third_party/blink/renderer/core/paint/paint_property_tree_builder.cc:1711:38: note: previous declaration is here
      ScrollPaintPropertyNode::State state;
                                     ^

Bug: 923510
Change-Id: Ia64158f91a8f07cd238e01b1e1e31b35a6b5ac06
Reviewed-on: https://chromium-review.googlesource.com/c/1496874
Commit-Queue: Daniel Bratell <bratell@opera.com>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Auto-Submit: Daniel Bratell <bratell@opera.com>
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#636803}
bratell
Remove variable shadowing in blink/frame
In an effort to reduce or even ban variable shadowing, this renames a
couple of variables. I'm interested in prohibiting shadowing because I
think it might prevent potential jumbo problems.

The exact error this avoids is:
third_party/blink/renderer/core/frame/frame_serializer.cc:301:12: error: declaration shadows a local variable [-Werror,-Wshadow]
      KURL url =
           ^
third_party/blink/renderer/core/frame/frame_serializer.cc:261:8: note: previous declaration is here
  KURL url = document.Url();
       ^
third_party/blink/renderer/core/frame/frame_serializer.cc:307:14: error: declaration shadows a local variable [-Werror,-Wshadow]
        KURL url = input->Src();
             ^
third_party/blink/renderer/core/frame/frame_serializer.cc:261:8: note: previous declaration is here
  KURL url = document.Url();
       ^
third_party/blink/renderer/core/frame/frame_serializer.cc:313:14: error: declaration shadows a local variable [-Werror,-Wshadow]
        KURL url =
             ^
third_party/blink/renderer/core/frame/frame_serializer.cc:261:8: note: previous declaration is here
  KURL url = document.Url();
       ^
third_party/blink/renderer/core/frame/local_frame_ukm_aggregator.cc:110:14: error: declaration shadows a local variable [-Werror,-Wshadow]
      String uma_name = uma_percentage_preamble;
             ^
third_party/blink/renderer/core/frame/local_frame_ukm_aggregator.cc:94:10: note: previous declaration is here
    auto uma_name = uma_preamble;
         ^
third_party/blink/renderer/core/frame/rotation_viewport_anchor.cc:52:21: error: declaration shadows a local variable [-Werror,-Wshadow]
    HitTestLocation location(point + point_offset);
                    ^
third_party/blink/renderer/core/frame/rotation_viewport_anchor.cc:30:19: note: previous declaration is here
  HitTestLocation location(point);
                  ^

Bug: 923510
Change-Id: I9bd46559f31e6b3fdb412cf7787b764ae84c775b
Reviewed-on: https://chromium-review.googlesource.com/c/1494659
Commit-Queue: Daniel Bratell <bratell@opera.com>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Auto-Submit: Daniel Bratell <bratell@opera.com>
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#636453}
bratell
Include the header instead of cc file
A unit test includes prefs_names.cc which in some builds
caused duplicate symbol errors in linking.

(I get a feeling we need a presubmit check for this because
it has happened several times recently)

TBR=gayane@chromium.org

Bug: 931806
Change-Id: I942ba67f7570feed59b32694a55402db169e109c
Reviewed-on: https://chromium-review.googlesource.com/c/1494884
Reviewed-by: Daniel Bratell <bratell@opera.com>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#636444}
fs
Don't trigger paint invalidation for unused properties
The 'buffered-rendering' and 'color-rendering' properties don't actually
do anything, so don't trigger invalidation for them.

Fix up comment about gradient stop properties in the vicinity.

Change-Id: Iaab0717cf7fc0f0c2a7b13dcae73945c556086f9
Reviewed-on: https://chromium-review.googlesource.com/c/1491311
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Philip Rogers <pdr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#636115}
fs
Pass const references to SVGComputedStyle methods
Replace const SVGComputedStyle* with const SVGComputedStyle& as the
argument to the Diff*, InheritFrom and CopyNonInheritedFromCached
methods.

Change-Id: I79c14a39c09089882857fcbe61f4578c18cdd5ac
Reviewed-on: https://chromium-review.googlesource.com/c/1491655
Reviewed-by: Philip Rogers <pdr@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#636062}
fs
Use the stroke approximation for non-scaling-stroke as well
Like for "normal" strokes, this avoids computing the stroke shape during
layout.

Bug: 435097
Change-Id: I4927e11e78fbdb78d3275a5c661027185ef18161
Reviewed-on: https://chromium-review.googlesource.com/c/1491411
Reviewed-by: Philip Rogers <pdr@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#636042}
fs
Use symbolic Color names for some SVG property initial values
Color(0, 0, 0)       -> Color::kBlack
Color(255, 255, 255) -> Color::kWhite

Change-Id: I480a472ae5622d9ad58ff2abfcfd8d2c536d1491
Reviewed-on: https://chromium-review.googlesource.com/c/1491616
Auto-Submit: Fredrik Söderquist <fs@opera.com>
Commit-Queue: Stephen Chenney <schenney@chromium.org>
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Cr-Commit-Position: refs/heads/master@{#636030}
fs
Don't trigger re-layout when 'stroke' changes
Layout only checks for existence of 'stroke', using it to determine
whether stroke bounds should be computed or not.

Bug: 435097
Change-Id: I1b25d4da7f2d5215beadaa4f1941c5d9c8243500
Reviewed-on: https://chromium-review.googlesource.com/c/1491254
Reviewed-by: Philip Rogers <pdr@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#636010}
bratell
[jumbo] Avoid having two TimeTicksFromSecondsD
With the changes to port from wtf/time.h to base/time/time.h
the core test build target ended up with two TimeTicksFromSecondsD
which clashed in some jumbo builds. This patch is a short
term fix that inlines one of them.

A long term fix would imho be to add a TimeTick::FromSecondsD
method.

Bug: 919383
Change-Id: I5ff65f2a8bcfb95fc0163453793f7c290bbd9e52
Reviewed-on: https://chromium-review.googlesource.com/c/1489196
Auto-Submit: Daniel Bratell <bratell@opera.com>
Commit-Queue: Sergio Villar <svillar@igalia.com>
Reviewed-by: Sergio Villar <svillar@igalia.com>
Cr-Commit-Position: refs/heads/master@{#635974}
fs
Don't trigger re-layout when stroke-dash{array,offset} changes
Since we no longer include the dash-effect when computing
(appromixating) the stroke bounds, we don't need to trigger (re)layout
when they change.

This can help eliminate layouts for example for "line animations" like
the one on https://jakearchibald.com/2013/animated-line-drawing-svg/

Bug: 435097
Change-Id: Iaf5298620889b6ed0cb10437514bb8af3104cc35
Reviewed-on: https://chromium-review.googlesource.com/c/1489202
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Reviewed-by: Philip Rogers <pdr@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#635931}
bratell
Use the bundled fontconfig for ui/gfx_unittests
The target gfx_unittests used the system's fontconfig which
stopped working on Ubuntu 16.04 without sysroot when the tests
started using FcConfigParseAndLoadFromMemory which is a
newly (2017) added fontconfig function.

The test should have used third_party/fontconfig all the time
but the test didn't have the necessary deps in the build system
for that to happen.

Follow-up to https://chromium-review.googlesource.com/c/1019978

Change-Id: Ie0dab4632aff454b6c33405d3076c87e226b7e18
Reviewed-on: https://chromium-review.googlesource.com/c/1489237
Commit-Queue: Daniel Bratell <bratell@opera.com>
Commit-Queue: Nico Weber <thakis@chromium.org>
Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
Auto-Submit: Daniel Bratell <bratell@opera.com>
Reviewed-by: Nico Weber <thakis@chromium.org>
Reviewed-by: Thomas Anderson <thomasanderson@chromium.org>
Cr-Commit-Position: refs/heads/master@{#635569}
fs
Use StyleImage::HasIntrinsicSize in FillLayer invalidation determination
This better matches what BackgroundImageGeometry checks.

Rename the somewhat terse |img| to the ever so slightly less terse
|image|, and mark it const.

Change-Id: I9e3cbe86285bc448c2e79d31c813071191150a11
Reviewed-on: https://chromium-review.googlesource.com/c/1489235
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Commit-Queue: Stephen Chenney <schenney@chromium.org>
Auto-Submit: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Cr-Commit-Position: refs/heads/master@{#635566}
bratell
Clarify which mojom namespace to use inside metrics
There is both a ::mojom namespace and a ::metrics::mojom namespace
so inside metrics its best to qualify which is intended or
name lookup will depend on what the compiler happens to be
aware of.

In particular, in some jumbo builds "mojom" resolved to
"::metrics::mojom" while in other builds where the compiler was
unaware of ::metrics::mojom, it instead resolved to "::mojom".

This is probably one of the reasons there is a style guide
instruction to not have sub namespaces with the same name as a
common top level namespace.

Change-Id: I06545d34fac67b5f3f42fa1821eb33d381e04a41
Reviewed-on: https://chromium-review.googlesource.com/c/1485934
Reviewed-by: Jesse Doherty <jwd@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#635562}
fs
Repurpose {Image,}HasRelativeSize and rename to HasIntrinsicSize
This renames:

  Image::HasRelativeSize,
  StyleImage::ImageHasRelativeSize and
  LayoutImageResource::ImageHasRelativeSize

to the common name HasIntrinsicSize.

This flips the meaning of this flag/method, but the new name is using a
term that is more relatable from a spec-perspective.

Change-Id: I2509926a186f8c81534800362becd585fb0bd024
Reviewed-on: https://chromium-review.googlesource.com/c/1488885
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Commit-Queue: Stephen Chenney <schenney@chromium.org>
Auto-Submit: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Cr-Commit-Position: refs/heads/master@{#635550}
bratell
Deduplicate some cookie manager code
The two cookie managers in restricted_cookie_manager.cc and
cookie_manager.cc need some shared functionality and rather
than having a duplicate set of helper functions (of which one
clashed in some jumbo builds and cause build breakage), move
the shared helper functions to a new file cookie_managers_shared.cc.

Bug: 729800
Change-Id: I1839bd04e96471569b1b8a53bf1921f182b8bff4
Reviewed-on: https://chromium-review.googlesource.com/c/1482974
Reviewed-by: Maks Orlovich <morlovich@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#635522}
fs
Update style for child SVG documents in PerformPreLayoutTasks
Like in LocalFrameView::UpdateStyleAndLayoutIfNeededRecursive,
explicitly update style (and attach the layout tree) before proceeding
to layout. This ensures that the style update/layout tree attachment of
the child document does not mark its frame owner as dirty after layout
has already been performed for the top-level document.

Bug: 933409
Change-Id: I6b2c864aededed7429c63cbd068ec45c58972ae0
Reviewed-on: https://chromium-review.googlesource.com/c/1481331
Reviewed-by: Chris Harrelson <chrishtr@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#635459}
fs
Remove dead code for EFillSizeType::kSizeNone
This enumeration value is only used during style resolution, and thus
there should be no need to handle it elsewhere.

This allows cleaning up the ShouldFullyInvalidateFillLayersOn*Change
helpers as well, removing the only users of

StyleImage: :UsesImageContainerSize() and in turn also
Image: :UsesContainerSize(), so removing those as well.
Change-Id: I6400ca9acf98359712891fc74e1a232a2cfbc208
Reviewed-on: https://chromium-review.googlesource.com/c/1486354
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#635137}
bratell
Remove shadowing of kMeasure in blink by using enum class
There are several kMeasure in blink and with -Wshadow enabled
there will be warnings about blink::kMeasure being shadowed.
This moves blink::kMeasure to
blink::NGTableCellChildLayoutPhase::kMeasure which avoid that
warning.

I'm interested in making blink -Wshadow clean because I think that
can reduce the risk of certain jumbo problems.

Bug: 923510
Change-Id: Ifac4ce2c9cf61ee7e7d72da4dc5055d4f490a5cc
Reviewed-on: https://chromium-review.googlesource.com/c/1484309
Reviewed-by: Anders Hartvoll Ruud <andruud@chromium.org>
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#635090}
bratell
Make InvalidationType an enum class to clear the blink ns
kInvalidateDescendants was used both in blink/paint and blink/css
and to avoid shadowing, this makes the one in the blink namespace
(InvalidationType::kInvalidateDescendants) into an enum class.

This will make is easier/possible to later turn on the -Wshadow
warning. I'm interested in prohibiting shadowing because I think
it might prevent potential jumbo problems.

The exact warning this avoids is:
In file included from third_party/blink/renderer/core/paint/block_flow_paint_invalidator.cc:5:
third_party/blink/renderer/core/paint/block_flow_paint_invalidator.h:31:5: error: declaration shadows a variable in namespace 'blink' [-Werror,-Wshadow]
    kInvalidateDescendants
    ^
third_party/blink/renderer/core/css/invalidation/invalidation_set.h:52:25: note: previous declaration is here
enum InvalidationType { kInvalidateDescendants, kInvalidateSiblings };
                        ^

Bug: 923510
Change-Id: Ib1ab2720adf1abda4c9ded69d8e086d1e8f3f360
Reviewed-on: https://chromium-review.googlesource.com/c/1483084
Reviewed-by: Anders Hartvoll Ruud <andruud@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#635069}
fs
Resolve stroke-width 'em' units against unzoomed font size
When resolving style for the 'stroke-width' property we would use
CSSToLengthConversionData::CopyWithAdjustedZoom() with an argument of 1
to get an "unzoomed" length. The FontSizes object was however not
adjusted, so still carried zoomed base font sizes.

Make a new method on StyleResolverState that returns an
CSSToLengthConversionData that uses unzoomed unit bases, basing it on
the existing FontSizeConversionData() method which does roughly the
same thing except it uses the parent style for unit bases.

Bug: 933689
Change-Id: Icfbc59a641f0dc2d94f00ba5f3e9a15b36f8c195
Reviewed-on: https://chromium-review.googlesource.com/c/1481417
Reviewed-by: Anders Hartvoll Ruud <andruud@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#634750}
fs
Add test for "fully overlapping" radial gradient case
This adds a test for the case where the start and end circles of a
radial gradient fully overlap (while having non-zero radii).

Bug: 933413
Change-Id: Id059cb607f6fc137111d2306dd9c9eef1f55b6bc
Reviewed-on: https://chromium-review.googlesource.com/c/1483023
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>
Auto-Submit: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
Cr-Commit-Position: refs/heads/master@{#634711}
bratell
Remove variable shadowing in blink/svg
In an effort to reduce or even ban symbol shadowing, this renames
a variable to avoid such shadowing. I'm interested in prohibiting
shadowing because I think it might prevent potential jumbo problems.

The exact error this avoids is:
third_party/blink/renderer/core/svg/svg_svg_element.cc:456:28: error: declaration shadows a local variable [-Werror,-Wshadow]
      TransformationMatrix transform;
                           ^
third_party/blink/renderer/core/svg/svg_svg_element.cc:449:19: note: previous declaration is here
  AffineTransform transform;
                  ^

Bug: 923510
Change-Id: I99c001d0eb513d73bfc33d540601479a6fd7280d
Reviewed-on: https://chromium-review.googlesource.com/c/1482975
Auto-Submit: Daniel Bratell <bratell@opera.com>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#634676}
bratell
Backup includes for PTRACE_GET_THREAD_AREA
PTRACE_GET_THREAD_AREA is not in ptrace.h in Ubuntu 16.04 when
building for Linux without a sysroot so get it from somewhere else,
in this case asm/ptrace-abi.h.

Follow up to https://chromium-review.googlesource.com/c/1479092

Bug: 934238,933418
Change-Id: I3e1ace31a6f5a4ab65bbe712e1516d7b5fa009a5
Reviewed-on: https://chromium-review.googlesource.com/c/1481316
Reviewed-by: Jorge Lucangeli Obes <jorgelo@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#634660}
bratell
Avoid variable/type shadowing in blink/dom
In an effort to reduce or even ban variable shadowing, this renames
a variable to avoid such shadowing. I'm interested in prohibiting
shadowing because I think it might prevent potential jumbo problems.

The exact warnings this avoids are:
third_party/blink/renderer/core/dom/element.cc:3940:35: error: declaration shadows a local variable [-Werror,-Wshadow]
        else if (const Attribute* attribute =
                                  ^
third_party/blink/renderer/core/dom/element.cc:3938:30: note: previous declaration is here
        if (const Attribute* attribute = attributes.Find(xml_names::kLangAttr))
                             ^
third_party/blink/renderer/core/dom/node.cc:2113:17: error: declaration shadows a local variable [-Werror,-Wshadow]
    const Node* node = chain[index - 1];
                ^
third_party/blink/renderer/core/dom/node.cc:2107:15: note: previous declaration is here
  const Node* node = this;
              ^
third_party/blink/renderer/core/dom/range.cc:529:36: error: declaration shadows a type alias in namespace 'blink' [-Werror,-Wshadow]
  typedef HeapVector<Member<Node>> NodeVector;
                                   ^
third_party/blink/renderer/core/dom/container_node.h:84:7: note: previous declaration is here
using NodeVector = HeapVector<Member<Node>, kInitialNodeVectorSize>;
      ^
third_party/blink/renderer/core/dom/range.cc:750:36: error: declaration shadows a type alias in namespace 'blink' [-Werror,-Wshadow]
  typedef HeapVector<Member<Node>> NodeVector;
                                   ^
third_party/blink/renderer/core/dom/container_node.h:84:7: note: previous declaration is here
using NodeVector = HeapVector<Member<Node>, kInitialNodeVectorSize>;
      ^

Bug: 925310

Change-Id: I8bc037dd1cf54baf5f6fe1ed93b1ead391313e8a
Reviewed-on: https://chromium-review.googlesource.com/c/1478876
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Auto-Submit: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#634659}
bratell
Revert "Take scheme in CookieStore::SetCanonicalCookieAsync, not just whether it's secure."
This reverts commit 5760a6f2d7a24ee7e2cfac2c399f8756db91be83.

Reason for revert: Clashed with some other change so all Android builders died with:

[1078/8826] CXX obj/android_webview/common/aw_cookie_manager_wrapper.o
FAILED: obj/android_webview/common/aw_cookie_manager_wrapper.o 
../../android_webview/browser/net_network_service/aw_cookie_manager_wrapper.cc -o obj/android_webview/common/aw_cookie_manager_wrapper.o
../../android_webview/browser/net_network_service/aw_cookie_manager_wrapper.cc:40:43: error: reference to type 'const std::string' (aka 'const basic_string<char, char_traits<char>, allocator<char> >') could not bind to an lvalue of type 'bool'
  cookie_manager_->SetCanonicalCookie(cc, secure_source, modify_http_only,
                                          ^~~~~~~~~~~~~
gen/services/network/public/mojom/cookie_manager.mojom.h:179:82: note: passing argument to parameter 'source_scheme' here
  void SetCanonicalCookie(const net::CanonicalCookie& cookie, const std::string& source_scheme, bool modify_http_only, SetCanonicalCookieCallback callback) final;
                                                                                 ^
1 error generated.


Original change's description:
> Take scheme in CookieStore::SetCanonicalCookieAsync, not just whether it's secure.
> 
> This permits to check it against list of cookieable schemes (fixing #850044), and is
> a prerequisite for getting rid of SetCookieWithOptionsAsync in favor of everything
> using SetCanonicalCookieAsync.
> 
> Bug: 850044
> Change-Id: I890cf266767a124b116fc553932a74b5a97ed943
> Reviewed-on: https://chromium-review.googlesource.com/c/1450420
> Commit-Queue: Maks Orlovich <morlovich@chromium.org>
> Reviewed-by: John Abd-El-Malek <jam@chromium.org>
> Reviewed-by: Andrey Kosyakov <caseq@chromium.org>
> Reviewed-by: Eugene But <eugenebut@chromium.org>
> Reviewed-by: Mike West <mkwst@chromium.org>
> Reviewed-by: Tom Sepez <tsepez@chromium.org>
> Reviewed-by: Victor Costan <pwnall@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#634646}

TBR=jam@chromium.org,caseq@chromium.org,tsepez@chromium.org,eugenebut@chromium.org,pwnall@chromium.org,mkwst@chromium.org,morlovich@chromium.org

Change-Id: I17b82ee596c4cdcebfc8774f06b7e155ead8c514
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 850044
Reviewed-on: https://chromium-review.googlesource.com/c/1482460
Reviewed-by: Daniel Bratell <bratell@opera.com>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#634658}
bratell
[jumbo] Compile fix, one too many BstrToUTF8, rename BstrToPrettyUTF8
https://chromium-review.googlesource.com/c/chromium/src/+/1474976
introduced a BstrToUTF8 which in jumbo builds collided with an
existing (but different) BstrToUTF and broke Windows builds.

This renames one of the conversions to "BstrToPrettyUTF8" since it
not only converts but also makes the string readable for logs.

If the methods had been indentical it would have been suitable
to move them to
content/browser/accessibility/accessibility_tree_formatter_utils_win.cc
I think.

TBR=dmazzoni@chromium.org,iapres@microsoft.com

Bug: 928949
Change-Id: I33660b867e6a4bcabfd274ba976ef642dd65db3a
Reviewed-on: https://chromium-review.googlesource.com/c/1482452
Reviewed-by: Daniel Bratell <bratell@opera.com>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#634594}
bratell
Make StdStringCanonOutput non copyable and don't copy it
In some build experiments, the compiler emitted an object assignment
of StdStringCanonOutput which did not link because the operator=
was not exported from the url.dll in component builds.

This makes the class  explicitly not copyable and removes
the copy to avoid that kind of (hard to debug) problems.

Change-Id: I92988b5799e4229d1fb0379f9897727c1bac20de
Reviewed-on: https://chromium-review.googlesource.com/c/1477602
Reviewed-by: Mike West <mkwst@chromium.org>
Reviewed-by: Ryan Hamilton <rch@chromium.org>
Commit-Queue: Ryan Hamilton <rch@chromium.org>
Cr-Commit-Position: refs/heads/master@{#634383}
fs
Remove "has inline transform" ComputedStyle flag
f6e075c54c8bc6130d49c09ad3df6944376ccba4 removed the only real usage of
this flag. Remove the flag and clean up. Also avoids setting
SetCompositingReasonsChanged when the flag changes.

Bug: 812166
Change-Id: Id4d204db83117feafeb92baa765988952cdb7af3
Reviewed-on: https://chromium-review.googlesource.com/c/1480004
Commit-Queue: Mason Freed <masonfreed@chromium.org>
Auto-Submit: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Mason Freed <masonfreed@chromium.org>
Cr-Commit-Position: refs/heads/master@{#634360}
the_jk
Reland: Add RenderFrameHost as parameter to WebContentsDelegate::HandleContextMenu
This is a reland of the following change:
  commit 5705b913a577759d16b3eca7d5b0e7b5c79421f6
  https://chromium-review.googlesource.com/c/1472696

Reverted in 328cae2c82cb2e079658944f626883df74ed5c5a

Fix for reland:
In HandleContextMenuDelegate unittest, return true
to stop the tested WebContents instance to call
ShowContextMenu().

On some platforms (android) the WebContentsView
implementation assumes that the RenderWidgetHostView
is also a platform specific implementation. The test
for WebContents is using mocked versions.

Anyway, the point was not to test ShowContextMenu
but HandleContextMenu so better to limit the test.

Original description:
To be able to do anything more complicated than block all context
menu handling in HandleContextMenu you need the associated WebContents
object. Current implementation that do something more currently handles
that by either being a WebContentsObserver or keeping the WebContents
object some other way.

After WebContents checks WebContentsDelegate::HandleContextMenu the
next delegate to get a chance is WebContentsViewDelegate::ShowContextMenu
which takes a RenderFrameHost as additional parameter. This is all
you need to get the WebContents object and other related information.

So, to simplify writing WebContentsDelegate:s and override the
context menu handling by actually showing something, include
RenderFrameHost also in the HandleContextMenu call.

I selected RenderFrameHost instead of WebContents that many
other delegate methods use because it matches ShowContextMenu
signature and there are already other delegate methods that
also uses RenderFrameHost instead.

WebContentsDelegate is a very popular interface, so this
modifies a lot of files in different components but the
changes are mechanical.

Bug: 932520
Change-Id: I91ab29e5bbf20ca3743a9b1db7b2c391a573605d
Reviewed-on: https://chromium-review.googlesource.com/c/1478900
Reviewed-by: Jochen Eisinger <jochen@chromium.org>
Commit-Queue: Joel Klinghed <the_jk@opera.com>
Cr-Commit-Position: refs/heads/master@{#633900}
bratell
Remove variable shadowing in blink/modules/webgl
In an effort to reduce or even ban variable shadowing, this renames
a variable to avoid such shadowing. I'm interested in prohibiting
shadowing because I think it might prevent potential jumbo problems.

The warnings this avoids is:
third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc:3688:18: error: declaration shadows a local variable [-Werror,-Wshadow]
        unsigned length;
                 ^
third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc:3658:13: note: previous declaration is here
    GLsizei length = 0;
            ^
third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc:5234:31: error: declaration shadows a local variable [-Werror,-Wshadow]
      ScopedTexture2DRestorer restorer(gl);
                              ^
third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc:5190:27: note: previous declaration is here
  ScopedTexture2DRestorer restorer(this);

Bug: 923510
Change-Id: Idef0b7f4b47aad7c0199d9e11571dc93d1c94429
Reviewed-on: https://chromium-review.googlesource.com/c/1477679
Commit-Queue: Kentaro Hara <haraken@chromium.org>
Auto-Submit: Daniel Bratell <bratell@opera.com>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#633750}
bratell
Remove variable shadowing in blink/modules/peerconnection
In an effort to reduce or even ban variable shadowing, this renames
a variable to avoid such shadowing. I'm interested in prohibiting
shadowing because I think it might prevent potential jumbo problems.

The warning this avoids is:
third_party/blink/renderer/modules/peerconnection/rtc_peer_connection.cc:1200:20: error: declaration shadows a local variable [-Werror,-Wshadow]
  for (auto const& transport_iterator : dtls_transports_by_mid_) {
                   ^
third_party/blink/renderer/modules/peerconnection/rtc_peer_connection.cc:1187:8: note: previous declaration is here
  auto transport_iterator = dtls_transports_by_mid_.find(mid);
       ^

Bug: 923510
Change-Id: Ia9e1734c1bd1aa42bf4b13f6d2b43fe28b6ed511
Reviewed-on: https://chromium-review.googlesource.com/c/1478872
Commit-Queue: Daniel Bratell <bratell@opera.com>
Commit-Queue: Kentaro Hara <haraken@chromium.org>
Auto-Submit: Daniel Bratell <bratell@opera.com>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#633746}
bratell
Remove variable shadowing in blink/modules/notifications
In an effort to reduce or even ban variable shadowing, this renames
a variable to avoid such shadowing. I'm interested in prohibiting
shadowing because I think it might prevent potential jumbo problems.

The exact error this avoids is:
third_party/blink/renderer/modules/notifications/notification_data.cc:93:45: error: declaration shadows a local variable [-Werror,-Wshadow]

    SerializedScriptValue::SerializeOptions options;
                                            ^
./../../third_party/blink/renderer/modules/notifications/notification_data.cc:43:32: note: previous declaration is here
    const NotificationOptions* options,
                               ^

Bug: 923510
Change-Id: Ie49096ef30fbab30567ad45f3f2d8b76a8eab9ed
Reviewed-on: https://chromium-review.googlesource.com/c/1478891
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#633744}
bratell
Remove variable shadowing in blink/modules/credentialmanager
In an effort to reduce or even ban variable shadowing, this renames
a variable to avoid such shadowing. I'm interested in prohibiting
shadowing because I think it might prevent potential jumbo problems.

The exact error this avoids is:
third_party/blink/renderer/modules/credentialmanager/credentials_container.cc:180:23: error: declaration shadows a local variable [-Werror,-Wshadow]
    OriginAccessEntry access_entry(
                      ^
third_party/blink/renderer/modules/credentialmanager/credentials_container.cc:166:21: note: previous declaration is here
  OriginAccessEntry access_entry(
                    ^

Bug: 923510
Change-Id: I61b11ecd489ed9842e1a9ebee9293050f7f1cde5
Reviewed-on: https://chromium-review.googlesource.com/c/1478890
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#633742}
bratell
Remove variable shadowing in blink/modules/filesystem
In an effort to reduce or even ban variable shadowing, this renames
a variable to avoid such shadowing. I'm interested in prohibiting
shadowing because I think it might prevent potential jumbo problems.

The exact warnings this avoids is:

third_party/blink/renderer/modules/filesystem/directory_reader.cc:140:21: error: declaration shadows a local variable [-Werror,-Wshadow]
    EntryHeapVector entries;
                    ^
third_party/blink/renderer/modules/filesystem/directory_reader.cc:136:57: note: previous declaration is here
void DirectoryReader::AddEntries(const EntryHeapVector& entries) {
                                                        ^
third_party/blink/renderer/modules/filesystem/dom_window_file_system.cc:248:37: error: declaration shadows a local variable [-Werror,-Wshadow]
              Vector<ScriptPromise> result;
                                    ^
third_party/blink/renderer/modules/filesystem/dom_window_file_system.cc:238:32: note: previous declaration is here

             base::File::Error result,
                               ^

Bug: 923510
Change-Id: Ib907382435b0d1417e9ca2f070bfb68ef591e123
Reviewed-on: https://chromium-review.googlesource.com/c/1478871
Commit-Queue: Daniel Bratell <bratell@opera.com>
Commit-Queue: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Hiroki Nakagawa <nhiroki@chromium.org>
Auto-Submit: Daniel Bratell <bratell@opera.com>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Reviewed-by: Hiroki Nakagawa <nhiroki@chromium.org>
Cr-Commit-Position: refs/heads/master@{#633728}
bratell
Remove variable shadowing in blink/modules/cache_storage
In an effort to reduce or even ban variable shadowing, this renames
a variable to avoid such shadowing. I'm interested in prohibiting
shadowing because I think it might prevent potential jumbo problems.

The exact error this avoid is:

third_party/blink/renderer/modules/cache_storage/inspector_cache_storage_agent.cc:313:22: error: declaration shadows a local variable [-Werror,-Wshadow]
    for (const auto& request_response : responses_) {
                     ^
third_party/blink/renderer/modules/cache_storage/inspector_cache_storage_agent.cc:277:22: note: previous declaration is here
    RequestResponse& request_response =

Bug: 923510
Change-Id: I8f6b6cd11f80a254c2c926e934dacefaa6dfccf8
Reviewed-on: https://chromium-review.googlesource.com/c/1477285
Reviewed-by: Ben Kelly <wanderview@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#633715}
mpawlowski
Extract PositionCache to separate file, make it persistent.
PositionCache should be persistent and outlive NetworkLocationProvider,
similarly to how LastPositionCache behaved. This lets us limit the
number of API requests, since WifiData -> Geoposition mappings are
stored longer.
Also, LastPositionCache can now be merged with PositionCache.

Bug: 672760
Change-Id: Ibd4c30c9a58dd26deb5f67448b5e2bac48d634fc
Reviewed-on: https://chromium-review.googlesource.com/c/1273055
Commit-Queue: Maciej Pawlowski <mpawlowski@opera.com>
Reviewed-by: Ken Rockot <rockot@google.com>
Reviewed-by: Matt Reynolds <mattreynolds@chromium.org>
Auto-Submit: Maciej Pawlowski <mpawlowski@opera.com>
Cr-Commit-Position: refs/heads/master@{#633681}
bratell
Crostini: Include header file instead of cc file
Instead of a header file, crostini included
chrome/browser/platform/platform_util_chromeos.cc which kind
of worked but in some builds triggered link failures later
because of duplicate symbols.

This probably works sometimes because nobody else uses the symbols
in platform_util_chromeos.o so that it is discarded before the linker
notices the duplication. Not always though.

Bug: 912638
Change-Id: I9b96a41e20ab5362fe800b502d788c844ac4d7f2
Reviewed-on: https://chromium-review.googlesource.com/c/1477025
Auto-Submit: Daniel Bratell <bratell@opera.com>
Commit-Queue: Timothy Loh <timloh@chromium.org>
Reviewed-by: Joel Hockey <joelhockey@chromium.org>
Reviewed-by: Timothy Loh <timloh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#633471}
bratell
Add dependency ipc_fuzzer -> chrome_elf:test_stubs
On Windows, ipc_fuzzer uses chrome/common/child_process_logging_win.cc
which uses the SetMetricsClientId() function from //chrome_elf.
There is intentionally no dependency in chrome/common to allow
different products to select between the sharp chrome_elf code
and the test version of chrome_elf.

In common builds this missing dependency does not cause any build
failures, probably because child_process_logging_win.obj will be
ignored by the linker completely since ipc_fuzzer uses nothing
in that object file. That was not the case in some jumbo build
experiments. The end result will most likely be the same.

Change-Id: I6607423e46270f256d67758b1bad087927de2edf
Reviewed-on: https://chromium-review.googlesource.com/c/1443017
Reviewed-by: Jonathan Metzman <metzman@chromium.org>
Reviewed-by: Martin Barbella <mbarbella@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#633447}
bratell
Enable jumbo for two remaining blink build targets
There were two build targets in blink that didn't support jumbo builds
and for completeness, add jumbo for them as well. The effect is for
people building with jumbo is small since they are small targets, but this
way nobody has to investigate that in the future.

Change-Id: Ibd11fc213dc9364222ad40e56ef977c468191ea4
Reviewed-on: https://chromium-review.googlesource.com/c/1477890
Auto-Submit: Daniel Bratell <bratell@opera.com>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#633326}
bratell
Remove the android_webview::crash_reporter namespace
There is already a ::crash_reporter namespace and having
a sub namespace with the same name as a top level namespace
caused lookup complications (and it's banned by the code style
guide). Since there was only a single function in the namespace,
after deleting the unused function, let's just remove the whole
namespace.

This resolves a jumbo compilation problems with symbols being
looked up in the wrong crash_reporter namespace.

Change-Id: Iaf15dbbe6186d479c3768ee88ce7b84442014183
Reviewed-on: https://chromium-review.googlesource.com/c/1477111
Commit-Queue: Richard Coles <torne@chromium.org>
Auto-Submit: Daniel Bratell <bratell@opera.com>
Reviewed-by: Richard Coles <torne@chromium.org>
Cr-Commit-Position: refs/heads/master@{#633305}
the_jk
Add RenderFrameHost as parameter to WebContentsDelegate::HandleContextMenu
To be able to do anything more complicated than block all context
menu handling in HandleContextMenu you need the associated WebContents
object. Current implementation that do something more currently handles
that by either being a WebContentsObserver or keeping the WebContents
object some other way.

After WebContents checks WebContentsDelegate::HandleContextMenu the
next delegate to get a chance is WebContentsViewDelegate::ShowContextMenu
which takes a RenderFrameHost as additional parameter. This is all
you need to get the WebContents object and other related information.

So, to simplify writing WebContentsDelegate:s and override the
context menu handling by actually showing something, include
RenderFrameHost also in the HandleContextMenu call.

I selected RenderFrameHost instead of WebContents that many
other delegate methods use because it matches ShowContextMenu
signature and there are already other delegate methods that
also uses RenderFrameHost instead.

WebContentsDelegate is a very popular interface, so this
modifies a lot of files in different components but the
changes are mechanical.

Change-Id: I612202730f9a3badd38062e8284f1d50979e9377
Bug: 932520
Reviewed-on: https://chromium-review.googlesource.com/c/1472696
Reviewed-by: Elly Fong-Jones <ellyjones@chromium.org>
Reviewed-by: Jochen Eisinger <jochen@chromium.org>
Commit-Queue: Joel Klinghed <the_jk@opera.com>
Cr-Commit-Position: refs/heads/master@{#633300}
bratell
Don't compile ssl_connect_job.cc in nacl builds
net/socket/ssl_connect_job.cc references a lot of classes
that are not compiled in nacl builds, such as SocketParams
and SOCKSConnectJob. In some builds the ssl_socket_connect_job.o
file was discarded before proceeding (just wasting time but
causing no harm), but in some builds it remained and later
caused link errors.

Change-Id: Ic2d9da783259c2a4e24fc00fff44ca36f2d8c51e
Reviewed-on: https://chromium-review.googlesource.com/c/1477118
Auto-Submit: Daniel Bratell <bratell@opera.com>
Commit-Queue: Matt Menke <mmenke@chromium.org>
Reviewed-by: Matt Menke <mmenke@chromium.org>
Cr-Commit-Position: refs/heads/master@{#633276}
bratell
Remove shadowing variables in blink/platform
I'm interested in avoiding and possibly banning shadowed variables since I think that might
possibly prevent jumbo problems. This patch resolves all current issues of shadowed
variables in blink/platform, mostly through natural renamings or refactorings.

The exact warnings this patch avoids are a bit too many to list here but is available at
https://chromium-review.googlesource.com/c/chromium/src/+/1436042/11//COMMIT_MSG

Bug: 925310                                               ^

Change-Id: I9f94b4facb075db6b5860e9e942caddc1c51faee
Reviewed-on: https://chromium-review.googlesource.com/c/1436042
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#633235}
bratell
Remove variable shadowing in blink/modules/webaudio
In an effort to reduce or even ban variable shadowing, this renames
a variable to avoid such shadowing. I'm interested in prohibiting
shadowing because I think it might prevent potential jumbo problems.

The exact error this avoids is:
third_party/blink/renderer/modules/webaudio/audio_worklet_global_scope.cc:347:17: error: declaration shadows a local variable [-Werror,-Wshadow]
  for (uint32_t output_bus_index = 0; output_bus_index < output_buses->size();
                ^
third_party/blink/renderer/modules/webaudio/audio_worklet_global_scope.cc:253:12: note: previous declaration is here
  uint32_t output_bus_index = 0;
           ^
1 error generated.

Bug: 923510
Change-Id: Ic861379f7892eb044b4ab3035bde2271521fd2c1
Reviewed-on: https://chromium-review.googlesource.com/c/1477011
Commit-Queue: Kentaro Hara <haraken@chromium.org>
Auto-Submit: Daniel Bratell <bratell@opera.com>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#633129}
bratell
Remove variable shadowing in blink/modules/indexeddb and webdatabase
In an effort to reduce (any possibly ban) shadowed variables in blink, this
renames a couple of variables in modules/indexeddb so that there is no
variable shadowing.

I'm interested in turning on the shadowing warning because I think it might
prevent potential jumbo build problems.

This patch fixes these shadowing warnings:
third_party/blink/renderer/modules/indexeddb/idb_database.cc:201:12: error: declaration shadows a local variable [-Werror,-Wshadow]
      auto it = transactions.find(map_entry.first);
           ^
third_party/blink/renderer/modules/indexeddb/idb_database.cc:196:10: note: previous declaration is here
    auto it = observers_.find(map_entry.first);
         ^
third_party/blink/renderer/modules/indexeddb/inspector_indexed_db_agent.cc:490:11: error: declaration shadows a local variable [-Werror,-Wshadow]
    auto* array = key->getArray(nullptr);
          ^
third_party/blink/renderer/modules/indexeddb/inspector_indexed_db_agent.cc:474:31: note: previous declaration is here
  DEFINE_STATIC_LOCAL(String, array, ("array"));
                              ^
third_party/blink/renderer/modules/webdatabase/database.cc:845:38: error: declaration shadows a local variable [-Werror,-Wshadow]
    SQLTransaction::OnErrorCallback* callback =
                                     ^
third_party/blink/renderer/modules/webdatabase/database.cc:824:40: note: previous declaration is here
    SQLTransaction::OnProcessCallback* callback,
                                       ^
3 errors generated.

Bug: 925310
Change-Id: I5912a18ce0bbfe8bfd15a69110aa396ef216b7d8
Reviewed-on: https://chromium-review.googlesource.com/c/1477051
Commit-Queue: Kentaro Hara <haraken@chromium.org>
Auto-Submit: Daniel Bratell <bratell@opera.com>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#633128}
bratell
Rename commonly shadowed kNone + accessibility shadowing fixes
In an effort to reduce or even ban variable shadowing, this renames
the enum blink::kNone and associated enum values since they are often
shadowed by other kNone and kAuto in blink.

The patch also renames a couple of other variables to avoid shadowing
more locally in modules/accessibility. I'm interested in prohibiting
shadowing because I think it might prevent potential jumbo problems.

The exact error this avoids is:

In file included from third_party/blink/renderer/modules/accessibility/ax_image_map_link.cc:29:
In file included from third_party/blink/renderer/modules/accessibility/ax_image_map_link.h:33:
In file included from third_party/blink/renderer/core/html/html_area_element.h:29:
In file included from third_party/blink/renderer/core/html/html_anchor_element.h:28:
In file included from third_party/blink/renderer/core/dom/document.h:43:
In file included from third_party/blink/renderer/core/dom/container_node.h:30:
In file included from third_party/blink/renderer/core/dom/node.h:36:
In file included from third_party/blink/renderer/core/dom/tree_scope.h:33:
third_party/blink/renderer/core/layout/hit_test_request.h:38:5: error: declaration shadows a variable in namespace 'blink' [-Werror,-Wshadow]
    kReadOnly = 1 << 1,
    ^
third_party/blink/renderer/modules/accessibility/ax_enums.h:21:3: note: previous declaration is here
  kReadOnly,
  ^
In file included from third_party/blink/renderer/modules/accessibility/ax_image_map_link.cc:29:
In file included from third_party/blink/renderer/modules/accessibility/ax_image_map_link.h:33:
In file included from third_party/blink/renderer/core/html/html_area_element.h:29:
In file included from third_party/blink/renderer/core/html/html_anchor_element.h:28:
In file included from third_party/blink/renderer/core/dom/document.h:63:
In file included from third_party/blink/renderer/core/html/custom/v0_custom_element.h:35:
In file included from third_party/blink/renderer/core/html/custom/v0_custom_element_definition.h:35:
third_party/blink/renderer/core/html/custom/v0_custom_element_lifecycle_callbacks.h:47:5: error: declaration shadows a variable in namespace 'blink' [-Werror,-Wshadow]
    kNone = 0,
    ^
third_party/blink/renderer/modules/accessibility/ax_enums.h:20:3: note: previous declaration is here
  kNone = 0,  // An object that is not disabled.
  ^
In file included from third_party/blink/renderer/modules/accessibility/ax_inline_text_box.cc:29:
In file included from third_party/blink/renderer/modules/accessibility/ax_inline_text_box.h:33:
In file included from third_party/blink/renderer/core/layout/line/abstract_inline_text_box.h:37:
In file included from third_party/blink/renderer/core/layout/api/line_layout_text.h:9:
In file included from third_party/blink/renderer/core/frame/local_frame.h:48:
In file included from third_party/blink/renderer/core/frame/local_frame_view.h:38:
In file included from third_party/blink/renderer/core/paint/compositing/paint_layer_compositor.h:33:
In file included from third_party/blink/renderer/core/paint/compositing/compositing_reason_finder.h:10:
third_party/blink/renderer/platform/graphics/compositing_reasons.h:107:5: error: declaration shadows a variable in namespace 'blink' [-Werror,-Wshadow]
    kNone = 0,
    ^
third_party/blink/renderer/modules/accessibility/ax_enums.h:20:3: note: previous declaration is here
  kNone = 0,  // An object that is not disabled.
  ^
In file included from third_party/blink/renderer/modules/accessibility/ax_inline_text_box.cc:29:
In file included from third_party/blink/renderer/modules/accessibility/ax_inline_text_box.h:33:
In file included from third_party/blink/renderer/core/layout/line/abstract_inline_text_box.h:37:
In file included from third_party/blink/renderer/core/layout/api/line_layout_text.h:10:
In file included from third_party/blink/renderer/core/layout/api/line_layout_item.h:10:
In file included from third_party/blink/renderer/core/layout/layout_object_inlines.h:8:
In file included from third_party/blink/renderer/core/css/style_engine.h:45:
In file included from third_party/blink/renderer/core/css/resolver/style_resolver.h:31:
In file included from third_party/blink/renderer/core/css/element_rule_collector.h:30:
In file included from third_party/blink/renderer/core/css/resolver/match_request.h:28:
In file included from third_party/blink/renderer/core/css/rule_set.h:28:
In file included from third_party/blink/renderer/core/css/css_keyframes_rule.h:30:
In file included from third_party/blink/renderer/core/css/style_rule.h:29:
In file included from third_party/blink/renderer/core/css/media_list.h:26:
third_party/blink/renderer/core/css/media_query.h:48:38: error: declaration shadows a variable in namespace 'blink' [-Werror,-Wshadow]
  enum RestrictorType { kOnly, kNot, kNone };
                                     ^
third_party/blink/renderer/modules/accessibility/ax_enums.h:20:3: note: previous declaration is here
  kNone = 0,  // An object that is not disabled.
  ^
In file included from third_party/blink/renderer/modules/accessibility/ax_layout_object.cc:36:
In file included from third_party/blink/renderer/core/editing/editing_utilities.h:32:
In file included from third_party/blink/renderer/core/events/input_event.h:12:
In file included from third_party/blink/renderer/core/events/ui_event.h:28:
third_party/blink/renderer/core/dom/events/event.h:59:5: error: declaration shadows a variable in namespace 'blink' [-Werror,-Wshadow]
    kNone = 0,
    ^
third_party/blink/renderer/modules/accessibility/ax_enums.h:20:3: note: previous declaration is here
  kNone = 0,  // An object that is not disabled.
  ^
In file included from third_party/blink/renderer/modules/accessibility/ax_layout_object.cc:59:
In file included from third_party/blink/renderer/core/html/html_image_element.h:40:
third_party/blink/renderer/platform/loader/fetch/fetch_parameters.h:61:5: error: declaration shadows a variable in namespace 'blink' [-Werror,-Wshadow]
    kNone = 0,          // No optimization.
    ^
third_party/blink/renderer/modules/accessibility/ax_enums.h:20:3: note: previous declaration is here
  kNone = 0,  // An object that is not disabled.
  ^
In file included from third_party/blink/renderer/modules/accessibility/ax_layout_object.cc:92:
In file included from third_party/blink/renderer/core/paint/paint_layer.h:63:
third_party/blink/renderer/platform/graphics/squashing_disallowed_reasons.h:54:5: error: declaration shadows a variable in namespace 'blink' [-Werror,-Wshadow]
    kNone = 0,
    ^
third_party/blink/renderer/modules/accessibility/ax_enums.h:20:3: note: previous declaration is here
  kNone = 0,  // An object that is not disabled.
  ^
In file included from third_party/blink/renderer/modules/accessibility/ax_layout_object.cc:105:
In file included from third_party/blink/renderer/platform/text/platform_locale.h:33:
third_party/blink/renderer/platform/date_components.h:87:5: error: declaration shadows a variable in namespace 'blink' [-Werror,-Wshadow]
    kNone,  // Suppress the second part and the millisecond part if they are 0.
    ^
third_party/blink/renderer/modules/accessibility/ax_enums.h:20:3: note: previous declaration is here
  kNone = 0,  // An object that is not disabled.
  ^
third_party/blink/renderer/modules/accessibility/ax_layout_object.cc:1335:19: error: declaration shadows a local variable [-Werror,-Wshadow]
    LayoutObject* layout_object = runner.GetFragment()->GetLayoutObject();
                  ^
third_party/blink/renderer/modules/accessibility/ax_layout_object.cc:1324:23: note: previous declaration is here
  const LayoutObject& layout_object = *ax_object.GetLayoutObject();
                      ^
third_party/blink/renderer/modules/accessibility/ax_layout_object.cc:1408:19: error: declaration shadows a local variable [-Werror,-Wshadow]
    LayoutObject* layout_object = runner.GetFragment()->GetLayoutObject();
                  ^
third_party/blink/renderer/modules/accessibility/ax_layout_object.cc:1397:23: note: previous declaration is here
  const LayoutObject& layout_object = *ax_object.GetLayoutObject();
                      ^
third_party/blink/renderer/modules/accessibility/ax_node_object.cc:1297:28: error: declaration shadows a local variable [-Werror,-Wshadow]
    for (HTMLInputElement* radio_button : html_radio_buttons) {
                           ^
third_party/blink/renderer/modules/accessibility/ax_node_object.cc:1294:13: note: previous declaration is here
  if (auto* radio_button = ToHTMLInputElementOrNull(node_)) {
            ^
third_party/blink/renderer/modules/accessibility/ax_node_object.cc:3120:25: error: declaration shadows a local variable [-Werror,-Wshadow]

    ax::mojom::NameFrom name_from;
                        ^
third_party/blink/renderer/modules/accessibility/ax_node_object.cc:3102:54: note: previous declaration is here
String AXNodeObject::Description(ax::mojom::NameFrom name_from,
                                                     ^
In file included from third_party/blink/renderer/modules/accessibility/ax_object.cc:32:
third_party/blink/public/platform/web_scroll_into_view_params.h:60:5: error: declaration shadows a variable in namespace 'blink' [-Werror,-Wshadow]
    kAuto = 0,
    ^
third_party/blink/renderer/platform/geometry/length.h:35:3: note: previous declaration is here
  kAuto,
  ^
In file included from third_party/blink/renderer/modules/accessibility/ax_object.cc:49:
In file included from third_party/blink/renderer/core/input/event_handler.h:48:
third_party/blink/renderer/platform/cursor.h:82:5: error: declaration shadows a variable in namespace 'blink' [-Werror,-Wshadow]
    kNone,
    ^
third_party/blink/renderer/modules/accessibility/ax_enums.h:20:3: note: previous declaration is here
  kNone = 0,  // An object that is not disabled.
  ^
14 errors generated.

Bug: 923510
Change-Id: Ibe8c325a39c247b018d92c0c97cd95166a4f74be
Reviewed-on: https://chromium-review.googlesource.com/c/1477053
Commit-Queue: Kentaro Hara <haraken@chromium.org>
Auto-Submit: Daniel Bratell <bratell@opera.com>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#633127}
bratell
Revert "[heap profiler] Make use of thread_local instead of base::TLS"
This reverts commit 684f41852a1ac8403b6c2447db684a3ee4002619.

Reason for revert: It broke the ios-simulator-cronet builder: 
https://ci.chromium.org/p/chromium/builders/luci.chromium.try/ios-simulator-cronet

The ios-simulator-cronet compiler says:

../../base/sampling_heap_profiler/poisson_allocation_sampler.cc:101:1: error: thread-local storage is not supported for the current target
thread_local bool g_internal_reentry_guard;
^
../../base/sampling_heap_profiler/poisson_allocation_sampler.cc:104:1: error: thread-local storage is not supported for the current target
thread_local intptr_t g_accumulated_bytes_tls;
^
../../base/sampling_heap_profiler/poisson_allocation_sampler.cc:113:1: error: thread-local storage is not supported for the current target
thread_local bool g_sampling_interval_initialized_tls;
^
3 errors generated.

This blocks CLs that trigger that builder, including 
https://chromium-review.googlesource.com/c/chromium/src/+/1475156
https://chromium-review.googlesource.com/c/chromium/src/+/1430089


Original change's description:
> [heap profiler] Make use of thread_local instead of base::TLS
> 
> The C++ thread_local is slightly faster while making the code clear.
> Besides that calls to TlsGetValue on Windows may alter the result of
> GetLastError, thus changing behavior of the underlying code.
> 
> BUG=920440
> 
> Change-Id: Ic89632f4a54f35d58b93cdecfffc68fc1a94dac1
> Reviewed-on: https://chromium-review.googlesource.com/c/1461681
> Reviewed-by: Vlad Tsyrklevich <vtsyrklevich@chromium.org>
> Reviewed-by: Erik Chen <erikchen@chromium.org>
> Commit-Queue: Alexei Filippov <alph@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#632819}

TBR=alph@chromium.org,erikchen@chromium.org,vtsyrklevich@chromium.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: 920440
Change-Id: Iad4158b406c1b28d14382a8a711a0304c094389c
Reviewed-on: https://chromium-review.googlesource.com/c/1477076
Reviewed-by: Daniel Bratell <bratell@opera.com>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#633092}
bratell
Make SVGTransformTearOff::SVGElementType not shadow SVGElementType
There are two enums SVGElementType in blink with the same members.
If -Wshadow is used, that triggers warnings because one of them
shadow the other one. This patch renames the values in the outer
one and makes the whole enum an enum class (either fix by itself
would resolve this shadowing).

Bug: 925310
Change-Id: Idd32249dac7fe0e2bce862c634fd89d29fa961a1
Reviewed-on: https://chromium-review.googlesource.com/c/1439079
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#633082}
bratell
Move kAuto and kFixed into a tighter scope than blink::
blink::kAuto and blink::kFixed from the enum LengthType is often
shadowed by other kAuto and other kFixed which triggers a ton of
warnings when trying to enable -Wshadow. This makes enum LengthType
into e class enum in Length, named Type. (So it will be be
Length::kAuto instead of just kAuto)

Bug: 925310
Change-Id: I6da0577c1a52954229297d9e0d81cb93fda60376
Reviewed-on: https://chromium-review.googlesource.com/c/1437282
Reviewed-by: Emil A Eklund <eae@chromium.org>
Commit-Queue: Emil A Eklund <eae@chromium.org>
Cr-Commit-Position: refs/heads/master@{#632694}
bratell
Replace Length::SetValue with assignment
In an effort to "hide" LengthType constants so that those constants
can be moved without much code churn, I noticed that the five different
Length::SetValue functions were barely used and offered no
substantial improvement over a pure assignment so let's keep the
code simple and just use the assignment.

Depending on the compiler and the optimizer, it may generate the
same code, but Android code size changed by a couple of bytes so
probably not.

Change-Id: I691dd8e0df965a87edcd964021faa6f264aa01e5
Reviewed-on: https://chromium-review.googlesource.com/c/1472692
Reviewed-by: Emil A Eklund <eae@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#632563}
bratell
[jumbo] Use full namespaces to clarify which GetReferrerChain is needed
There are two namespaces in extensions named GetRefererrChain and
in jumbo builds the identically named namespace aliases create for
them clashed. This just uses the full namespace name instead of
using aliases so that it's always clear (to compiler and humans)
which one is used.

Bug: 914411
Change-Id: I43336e962a82756bf4be7db74417c6a1fc78e889
Reviewed-on: https://chromium-review.googlesource.com/c/1472571
Reviewed-by: Devlin <rdevlin.cronin@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#632368}
mharanczyk
Do not copy to clipboard query parameters of mailto links via context menu.
The action is called copy "Copy email address".

Bug: 911139
Change-Id: I6e34803749898fedd008024ecba52d0ab1c11f19
Reviewed-on: https://chromium-review.googlesource.com/c/1472691
Reviewed-by: Avi Drissman <avi@chromium.org>
Commit-Queue: Avi Drissman <avi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#632253}
pbaran
Fixed SSLUICaptivePortalListTest tests that doesn't have parameters
Because of 'using SSLUICaptivePortalListTest = SSLUITest;'
SSLUICaptivePortalListTest tests will not be parameterized.
It is necessary to add INSTANTIATE_TEST_CASE_P for these tests

R=rsleevi@chromium.org

Change-Id: Ic5985e6c8629009461ca48101f3fcd4dab31d1b7
Reviewed-on: https://chromium-review.googlesource.com/c/1443117
Reviewed-by: Ryan Sleevi <rsleevi@chromium.org>
Commit-Queue: Ryan Sleevi <rsleevi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#632246}
bratell
Clarify which "mojom" is intended for LifecycleUnitDiscardReason
There is an ::extensions::mojom namespace so if you inside
extensions write just "mojom" it may (depending on what the compiler
knows) end up being resolved wrong.

Better would be if there was no ::mojom namespace so that there
could be no confusion.

Introduced in https://chromium-review.googlesource.com/c/1455472

Change-Id: I19c5a7a6da63db2da8e18c718185ff6769d4f939
Reviewed-on: https://chromium-review.googlesource.com/c/1472610
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Karan Bhatia <karandeepb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#632170}
bratell
Too many switches namespaces (jumbo win compile fix)
The existance of both a top level ::switches and sub namespace
switches bite again. Inside accessibility code if you just
say "switches" you will resolve to accessibility::switches
if the compiler knows that namespace exists. In jumbo builds
the compiler knows that so this code broke.

The full fix is to either rename the top level |switches| or all
the sub namespace |switches| and that is a messy change (though it
would bring the code closer to style guide conformance).
Same with the |features| namespace.

The fix here is to make the namespace fully qualified by adding
a :: prefix.

TBR=kbabbitt@microsoft.com,sky@chromium.org

Bug: 928811
Change-Id: Ic593a97c1ef653c9e2df411d84ad0dd9d19c2c89
Reviewed-on: https://chromium-review.googlesource.com/c/1472670
Reviewed-by: Daniel Bratell <bratell@opera.com>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#632163}
mharanczyk
Fix flakes in ExtensionUpdaterTest.TestMultipleExtensionDownloadingUpdates*.
Change-Id: I24d77ca490b1de3bca747cbaaaa97e19be699445
Reviewed-on: https://chromium-review.googlesource.com/c/1470231
Reviewed-by: Joshua Pawlicki <waffles@chromium.org>
Commit-Queue: Joshua Pawlicki <waffles@chromium.org>
Cr-Commit-Position: refs/heads/master@{#631718}
bratell
Adding helper functions to create and check for Length variants
Instead of Length(123.45, kFixed) -> Length::Fixed(123.45)
Instead of Length(kAuto) -> Length::Auto()
...

I have a plan to make kAuto and kFixed non-blink-globals (by making
their enum an enum class) but that will make code using those
constants more verbose so to reduce the effect, this patch
greatly reduces the use of those constants by wrapping them in helper
functions.

I believe this also makes the code a little bit more readable but
since it is different it will mean learning something new.

The old way still works.

Change-Id: I1e88be433dc5819e62832522ec90e48a8409ebc3
Reviewed-on: https://chromium-review.googlesource.com/c/1460919
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Emil A Eklund <eae@chromium.org>
Cr-Commit-Position: refs/heads/master@{#631634}
fs
Optimize SVGSMILElement::AddInstanceTime
Find the proper spot to insert the new instance time at directly and
insert it there rather than adding it to the end and std::sort'ing.
Inline SortTimeList into the one remaining caller.

Bug: 927232
Change-Id: Ic161cf5f1a1007c62103536c9ad77225579714d7
Reviewed-on: https://chromium-review.googlesource.com/c/1460921
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Cr-Commit-Position: refs/heads/master@{#630634}
fs
Use range-for loops in SVGSMILElement::ParseBeginOrEnd
Also drop some unnecessary SMILTime::Value() accessors (we can store
SMILTimes directly in the HashSet nowadays).

Bug: 927232
Change-Id: I6f9231ea24d7941a708e908602f82d34316c8f7d
Reviewed-on: https://chromium-review.googlesource.com/c/1460923
Commit-Queue: Stephen Chenney <schenney@chromium.org>
Auto-Submit: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Cr-Commit-Position: refs/heads/master@{#630381}
fs
Fix typo in Document::RunPostLayoutTasks enumeration
kRunPostLayoutTasksAsyhnchronously -> kRunPostLayoutTasksAsynchronously

Change-Id: Ice2387d068a38bfcbe6a6fc14b1a35db576fa289
Reviewed-on: https://chromium-review.googlesource.com/c/1460916
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Auto-Submit: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#630299}
bratell
Listing plugin_instance_throttler.h once in BUILD.gn is enough.
Change-Id: Ib42849852e32348385fcb4389e7ddcfb0085cdf3
Reviewed-on: https://chromium-review.googlesource.com/c/1456010
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Avi Drissman <avi@chromium.org>
Commit-Queue: Avi Drissman <avi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#630069}
wdzierzanowski
Clarify that ProxyDelegate tunnel methods are for HTTP/1.x
Bug: 926427
TBR: tbansal@chromium.org
Change-Id: Ic31bc0c40a1b21c45a3d5a47c13e07255a144234
Reviewed-on: https://chromium-review.googlesource.com/c/1457317
Commit-Queue: Wojciech Dzierżanowski <wdzierzanowski@opera.com>
Reviewed-by: Matt Menke <mmenke@chromium.org>
Cr-Commit-Position: refs/heads/master@{#630046}
bratell
jumbo + gn analyze workaround: Add sources to |input|
Jumbo, as implemented as a gn template, will naturally hide
the original files behind new files target_jumbo_1.cc,
target_jumbo_2.cc, .... This breaks the gn analyze step which is
used by cq to figure out if it needs to test compile or not.

To give gn analyze a chance to see what is going on, put the original
sources in the merge action's |input| list. The action won't use
the files and it will serialize actions that don't need serializing
but it might be a small price to pay.

There might be unexpected and unwanted side effects from this.
The cleanest solution would be to give gn native jumbo support
which would also allow other changes like better IDE support
and better error messages, but this is what we got.

Bug: 893071
Change-Id: I36aa498795871a63cfcd4e2d27c29e2f59d5ccbb
Reviewed-on: https://chromium-review.googlesource.com/c/1455943
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Cr-Commit-Position: refs/heads/master@{#629971}
mharanczyk
Fix memory leak in ChooserContextBase::GetGrantedObjects.
Bug: 854329
Change-Id: Ia163d503a4207859cd41c847c9d5f67e77580fbc
Reviewed-on: https://chromium-review.googlesource.com/c/1456080
Reviewed-by: Balazs Engedy <engedy@chromium.org>
Reviewed-by: Raymes Khoury <raymes@chromium.org>
Commit-Queue: Marek Haranczyk <mharanczyk@opera.com>
Cr-Commit-Position: refs/heads/master@{#629919}
bratell
[jumbo] Rename two WebContentsLifetimeHelper in chrome/browser
In some extreme jumbo builds two WebContentsLifetimeHelper classes
ended up in the same translation unit and cause class lookup
problems. To avoid that, this patch gives them unique
(non-imaginative) names.

Bug: 924823
Change-Id: I7a6f6a68430a3bee87595ee4a7319c4a97737a31
Reviewed-on: https://chromium-review.googlesource.com/c/1455902
Reviewed-by: Lei Zhang <thestig@chromium.org>
Reviewed-by: Tarun Bansal <tbansal@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#629661}
fs
Make NinePieceImagePainter tiling setup more functional
Use base::Optional to achieve more "functional" semantics of the helper
functions.

Bug: 614125
Change-Id: Ic3a74ec27d3e05dd59041eee4240c0098c6edd8a
Reviewed-on: https://chromium-review.googlesource.com/c/1456002
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Cr-Commit-Position: refs/heads/master@{#629628}
bratell
Correcting path to graphics/dom_node_id.h in BUILD.gn
Change-Id: Ie31066af89cf1e2c1c74d3a63b51d67471c9b3fc
Reviewed-on: https://chromium-review.googlesource.com/c/1456094
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#629614}
mharanczyk
Fix memory leak in TestRenderFrameHost::SimulateCommitProcessed.
Bug: 784904
Change-Id: I29399a9fd75e023b0289216e51eee8033e65d24c
Reviewed-on: https://chromium-review.googlesource.com/c/1454492
Reviewed-by: Camille Lamy <clamy@chromium.org>
Commit-Queue: Marek Haranczyk <mharanczyk@opera.com>
Cr-Commit-Position: refs/heads/master@{#629559}
the_jk
Make asan blacklists optional
Default is still on but the use of blacklists for asan can be
disabled by setting asan_use_blacklist to false.

This is useful for distributed compilers such as icecc where
flags as -fsanitize-blacklist= pointing to a local source file
is not yet supported.

Bug: 818190
Change-Id: I828ada1142ef76ecc0f1ccad8bd41390f0cbceea
Reviewed-on: https://chromium-review.googlesource.com/c/946101
Commit-Queue: Joel Klinghed <the_jk@opera.com>
Reviewed-by: Max Moroz <mmoroz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#629534}
fs
Fix repeat spacing for 'border-image's when combined with 'round'
When either of the horizontal/vertical tile rules were 'round', we would
drop any tile spacing.

Bug: 928749
Change-Id: I6128084cdfc9e6b7604fe213d87f71b1e025d012
Reviewed-on: https://chromium-review.googlesource.com/c/1454375
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#629272}
fs
Fix rounding for border-image-width after scaling adjustment
The scaling of the various edges/widths would always round down, which
meant that edges that were supposed to be abutting were not.

Round the scaled width instead, but take care to avoid introducing a new
overlap (which we scaled down to avoid). Use LayoutUnits for this since
we probably want to just compute the widths to LayoutUnit directly in
the future for slightly improved fidelity (TODO added).

Also, fix typo in |include_rigt_edge|.

Bug: 918994
Change-Id: I359fd54d30ddcfa235217e14f340cd6139e9d040
Reviewed-on: https://chromium-review.googlesource.com/c/1452183
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Cr-Commit-Position: refs/heads/master@{#629133}
fs
Fix calc() handling for "nine-piece image quads"
CSSPrimitiveValue::ComputeLength<Length> does not handle a mix of
percentages and non-percentages (treating them all as the latter). The
right function for that is ConvertToLength. However, since we're
handling <length-percentage> | auto here (after checking for <number>),
just forward to StyleBuilderConverter::ConvertLengthOrAuto.

This should fix all the properties that use the CSSQuadValue
representation for nine-piece images and have a <length-percentage>
in their syntax (border-image-width and -webkit-mask-box-image-width).

Bug: 918994
Change-Id: Ic29c8ec023d29d1e64eca2e0372e9e90611bbe73
Reviewed-on: https://chromium-review.googlesource.com/c/1451978
Reviewed-by: Rune Lillesveen <futhark@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#629078}
the_jk
Avoid crashing on Android devices with only 256 MB RAM.
On Android:
max_blob_in_memory_space is calculated as 1% of total RAM
min_page_file_size is hardcoded to 2.5MB

If 2.5MB > 1% of total RAM the CHECK(limits.isValid()) fails.
Avoid that by allowing max_blob_in_memory_space to be at least
min_page_file_size regardless of amount of physical memory.

R=dmurph@chromium.org, jianli@chromium.org, mek@chromium.org

Change-Id: I6fe9717affeb4bffbcb094e264cde57314b1535f

Bug: 841667
Change-Id: I6fe9717affeb4bffbcb094e264cde57314b1535f
Reviewed-on: https://chromium-review.googlesource.com/c/1448454
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Marijn Kruisselbrink <mek@chromium.org>
Cr-Commit-Position: refs/heads/master@{#628700}
bratell
Have jumbo dump the original sources in the gn |data| variable
Jumbo, as implemented as a gn template, will naturally hide
the original files behind new files target_jumbo_1.cc,
target_jumbo_2.cc, .... This breaks the gn analyze step which is
used by cq to figure out if it needs to test compile or not.

There might be unexpected and unwanted side effects from this.
The cleanest solution would be to give gn native jumbo support
which would also allow other changes like better IDE support
and better error messages, but this is what we got.

Bug: 893071
Change-Id: Ibbe8ccd71c932ca4c28c3157e386530d1ae00965
Reviewed-on: https://chromium-review.googlesource.com/c/1268336
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#628598}
fs
Update bug# for external/wpt/css/css-backgrounds/border-image-width-008.html
TBR=eae@chromium.org

Bug: 767352, 890543
Change-Id: I6202d0ba5b71baac213c24f18c388e5845e7348f
Reviewed-on: https://chromium-review.googlesource.com/c/1450191
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#628355}
bratell
Compiling headless_shell_switches.cc once should be enough
In Windows (multi dll) builds, headless_shell_switches.cc was
compiled twice and with some timings and linkers, that cause
a duplicate symbol link error. In other cases one set of symbols
was discarded as unused before the link errors.

This setup was probably triggered by several build target
(headless_renderer, headless_shell_browser_lib,
headless_shell_child_lib and more) being compiled as if they
were inside headless.dll in component builds. That prevented
them from actually accessing the switches inside headless.dll.

The fix is to only compile headless.dll ("component headless")
with HEADLESS_IMPLEMENTATION, which controls HEADLESS_EXPORT,
and to not have a duplicate copy of the switches in
headless_shell_browser_lib.

Bug: 919231
Change-Id: Id0d5cade84b47b9053474a26a1b14723c576d346
Reviewed-on: https://chromium-review.googlesource.com/c/1440141
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Sami Kyöstilä <skyostil@chromium.org>
Cr-Commit-Position: refs/heads/master@{#628335}
bratell
Support jumbo builds in the safe_browsing code (-6 CPU minutes)
Compiling the safe_browsing code is currently about 1% of the total
build effort in a jumbo build, and most of that effort can be
eliminated by adding support for jumbo in the safe_browsing code.

The gain would be a little bit bigger if the code hadn't been split
into a lot of 1-2 file targets. Those are not made jumbo since the
gain from merging just 2 files is limited, and merging just one file
makes no sense.

Bug: 927338
Change-Id: I0e8f57bdb1b39fc2f85a8adb4b00b3790d59d987
Reviewed-on: https://chromium-review.googlesource.com/c/1448455
Reviewed-by: Varun Khaneja <vakh@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#628279}
fs
Hoist/fold GraphicsContext::DrawTiledImage (border-image version)
Folds the "border-image version" of GraphicsContext::DrawTiledImage into
NinePieceImagePainter. This should hopefully allow for better control of
tiling computations, and also seems like a better place from a layering
perspective.

The computation of <scale, phase, spacing> is refactored into a new
function ComputeTileParameters.

Switch from using Image::TileRule to using ENinePieceImageRule (the
style type), and remove the former since it is no longer used.

Bug: 614125
Change-Id: Ia7433f871bb0bc6f7f963a14ae49b898559860d2
Reviewed-on: https://chromium-review.googlesource.com/c/1448612
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Cr-Commit-Position: refs/heads/master@{#628278}
fs
Hoist/fold GraphicsContext::DrawTiledImage (background-image version)
Folds the "background-image version" of GraphicsContext::DrawTiledImage
into BoxPainter(Base). Mostly a verbatim move of said method and
Image::DrawTiledBackground (the real "meat") an the associated helpers.

This also introduces the intended replacement (for versions of this
method): GraphicsContext::DrawImageTiled.

Calls to StartAnimation are moved into the implementations of
Image::DrawPattern as needed.

Bug: 614125
Change-Id: Ib04daa5abce9c61c12f4a8297920ea25760557cf
Reviewed-on: https://chromium-review.googlesource.com/c/1448458
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Cr-Commit-Position: refs/heads/master@{#628136}
mharanczyk
Make ProxyDelegate work in TestURLRequestContext.
Bug: 915659
Change-Id: Ib277ee462b14fbeba96b065149ea413461a51cda
Reviewed-on: https://chromium-review.googlesource.com/c/1448154
Reviewed-by: Matt Menke <mmenke@chromium.org>
Commit-Queue: Matt Menke <mmenke@chromium.org>
Cr-Commit-Position: refs/heads/master@{#627965}
bratell
Allow test() build targets with no deps
A test() target with no deps (maybe only public_deps or no
deps at all) would fail to compile on android because of
a "deps += [...]" statement.

Bug: 927257

Change-Id: I7fa3172a1f9cdca146800b8f81b965cfd46f81e9
Reviewed-on: https://chromium-review.googlesource.com/c/1443016
Reviewed-by: John Budorick <jbudorick@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#627962}
bratell
Adapt ui/libgtkui to jumbo compilation and add jumbo support
This moves a duplicated GetGtkSettingsStringProperty to
gtk_util.cc and renames two EnsureMethodsLoaded so that they
don't clash when jumbo compiled.

Jumbo is a Chromium implementation of a unity build system, a
build where many cc files are compiled in a single unit
(translation unit). This can make compilations much faster but
adds a bit of latency and reduces the parallelism.

Jumbo in this code saves about 1 CPU minute (which is not much)
so it's mostly for completion and because I've had the patch
for a long time.

Bug: 803406
Change-Id: Ib3b855d81ea45743568f8b247731f70d8bc659d6
Reviewed-on: https://chromium-review.googlesource.com/c/1446218
Reviewed-by: Thomas Anderson <thomasanderson@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#627873}
fs
Call ResetAnimation synchronously in ImageResource::AllClientsAndObserversRemoved
Running ResetAnimation asynchronously gives the "wake-up timer" used by
the SMIL animation engine an opportunity to race with the actual
sweeping of the surrounding objects (ImageResourceContent, SVGImage with
contained Page). Said sweeping could thus take place when the handler
for the "wake-up timer" was running, leading to UAFs. Running
ResetAnimation synchronously stops the "wake-up timer" and prevents the
race.

This essentially reverts the workaround added by
r400934 (crbug.com/613709). After the change made by
r412798 (crbug.com/627418), the issue worked around - that the SMIL
animation engine could be re-entered via the ResetAnimation call during
GC - have been eliminated. (Now, after said CL, what
SVGImage::ResetAnimation does is to pause the animation, stopping all
timers, and set a flag that the animation state needs to be reset. The
resetting then happens later as needed.)

Bug: 924450
Change-Id: Ideef98f05c81d779950aac56506cbbe152762afa
Reviewed-on: https://chromium-review.googlesource.com/c/1445935
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#627431}
bratell
Add jumbo support for blink's controller module.
This is more to make all blink do the same, than for the compile
time win which is probably about a CPU minute.

Bug: 713137
Change-Id: I99b05fcf7d639deb331d5a13e974abcdefd3a67d
Reviewed-on: https://chromium-review.googlesource.com/c/1443116
Reviewed-by: Kent Tamura <tkent@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#627369}
bratell
Drop "using namespace" in base/allocator
The code style guide does not allow "using namespace" and they
have a tendency to cause problems with jumbo builds. This patch
removes a "using namespace" in base.

Change-Id: I6b97574d6348e1b8df537708e99d89b97d6fc75e
Reviewed-on: https://chromium-review.googlesource.com/c/1443018
Reviewed-by: Primiano Tucci <primiano@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#627356}
bratell
Delete unused BUILD.gn file in blink/renderer/bindings
Change-Id: Id4be15169850ae2347bd9f6e7bdfbcd12c466383
Reviewed-on: https://chromium-review.googlesource.com/c/1443114
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#627036}
bratell
Add safe_browsing:test_support dependency to fix flaky build
Builds could fail because safe_browsing:test_support
indirectly (via safe_browsing_service.h and
components/safe_browsing/db/util.h) depends on a generated
header file. Adding a dependency on the target containing
safe_browsing_service.h should prevent that error.

Example failed build:
https://ci.chromium.org/p/chromium/builders/luci.chromium.try/linux-rel/3142

Change-Id: Icf5e29ba57686fa20d9c4f52ea20ed090897f372
Reviewed-on: https://chromium-review.googlesource.com/c/1439256
Reviewed-by: Varun Khaneja <vakh@chromium.org>
Reviewed-by: Daniel Rubery <drubery@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#626735}
bratell
Fix gfx related shadowing warnings in blink/platform
A long term plan is to support -Wshadow in the code, which both might avoid
coding mistakes and reduce the risk of jumbo-specific build problems. This
fixes about half the shadowing problems in blink/platform, the half
that is related to gfx.

Bug: 925310

Explicit warnings this patch fixes:

third_party/blink/renderer/platform/geometry/region.cc:45:33: error: declaration shadows a local variable [-Werror,-Wshadow]
                                    end = shape_.SegmentsEnd(span);
third_party/blink/renderer/platform/geometry/region.cc:39:56: note: previous declaration is here
  for (Shape::SpanIterator span = shape_.SpansBegin(), end = shape_.SpansEnd();
                                                       ^
third_party/blink/renderer/platform/geometry/region.cc:80:33: error: declaration shadows a local variable [-Werror,-Wshadow]
                                end = shape_.SegmentsEnd(span);
                                ^
third_party/blink/renderer/platform/geometry/region.cc:69:56: note: previous declaration is here
  for (Shape::SpanIterator span = shape_.SpansBegin(), end = shape_.SpansEnd();
                                                       ^
third_party/blink/renderer/platform/geometry/region.cc:110:33: error: declaration shadows a local variable [-Werror,-Wshadow]
                                end = shape_.SegmentsEnd(span);
                                ^
third_party/blink/renderer/platform/geometry/region.cc:105:56: note: previous declaration is here
  for (Shape::SpanIterator span = shape_.SpansBegin(), end = shape_.SpansEnd();
                                                       ^
third_party/blink/renderer/platform/geometry/region.cc:337:33: error: declaration shadows a local variable [-Werror,-Wshadow]
                                end = SegmentsEnd(span);
                                ^
third_party/blink/renderer/platform/geometry/region.cc:332:49: note: previous declaration is here
  for (Shape::SpanIterator span = SpansBegin(), end = SpansEnd(); span != end;
                                                ^
third_party/blink/renderer/platform/geometry/region.cc:465:11: error: declaration shadows a local variable [-Werror,-Wshadow]
      int test = *s1 - *s2;
          ^
third_party/blink/renderer/platform/geometry/region.cc:435:9: note: previous declaration is here
    int test = spans1->y - spans2->y;
        ^
third_party/blink/renderer/platform/graphics/animation_worklet_mutator_dispatcher_impl.cc:144:7: error: declaration shadows a variable in namespace 'blink::(anonymous)' [-Werror,-Wshadow]
  int next_async_mutation_id = GetNextAsyncMutationId();
      ^
third_party/blink/renderer/platform/graphics/animation_worklet_mutator_dispatcher_impl.cc:24:5: note: previous declaration is here
int next_async_mutation_id = 0;
    ^
third_party/blink/renderer/platform/graphics/compositing/content_layer_client_impl.cc:72:10: error: declaration shadows a local variable [-Werror,-Wshadow]
    auto it = context.rendering_context_map.find(rendering_context);
         ^
third_party/blink/renderer/platform/graphics/compositing/content_layer_client_impl.cc:44:8: note: previous declaration is here
  auto it = context.transform_id_map.find(transform);
       ^
third_party/blink/renderer/platform/transforms/interpolated_transform_operation.cc:59:31: error: declaration shadows a field of 'blink::InterpolatedTransformOperation' [-Werror,-Wshadow]
    const TransformOperation* from,
                              ^
third_party/blink/renderer/platform/transforms/interpolated_transform_operation.h:84:29: note: previous declaration is here
  const TransformOperations from;
                            ^
third_party/blink/renderer/platform/transforms/interpolated_transform_operation.cc:60:12: error: declaration shadows a field of 'blink::InterpolatedTransformOperation' [-Werror,-Wshadow]
    double progress,
           ^
../../third_party/blink/renderer/platform/transforms/interpolated_transform_operation.h:90:10: note: previous declaration is here
  double progress;
         ^
third_party/blink/renderer/platform/transforms/transform_operations.cc:246:20: error: declaration shadows a local variable [-Werror,-Wshadow]
      FloatPoint3D to_point = point - origin;
                   ^
third_party/blink/renderer/platform/transforms/transform_operations.cc:218:16: note: previous declaration is here
  FloatPoint3D to_point = to_matrix.MapPoint(point);
               ^
third_party/blink/renderer/platform/transforms/transform_operations.cc:418:21: error: declaration shadows a local variable [-Werror,-Wshadow]
        for (size_t i = 0; i < 2; ++i) {
                    ^
third_party/blink/renderer/platform/transforms/transform_operations.cc:312:12: note: previous declaration is here
  for (int i = size - 1; i >= 0; i--) {
           ^
third_party/blink/renderer/platform/transforms/interpolated_transform_operation.cc:60:12: error: declaration shadows a field of 'blink::InterpolatedTransformOperation' [-Werror,-Wshadow]
    double progress,
           ^
../../third_party/blink/renderer/platform/transforms/interpolated_transform_operation.h:90:10: note: previous declaration is here
  double progress;
         ^
third_party/blink/renderer/platform/transforms/interpolated_transform_operation.cc:60:12: error: declaration shadows a field of 'blink::InterpolatedTransformOperation' [-Werror,-Wshadow]
    double progress,
           ^
../../third_party/blink/renderer/platform/transforms/interpolated_transform_operation.h:90:10: note: previous declaration is here
  double progress;

Change-Id: I57a663a9492d729d95fca02e2fa8027c235ad2f8
Reviewed-on: https://chromium-review.googlesource.com/c/1436365
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#626529}
bratell
Use Length::Is* functions instead of Length::GetType()
It makes the code more readable and reduces the amount of code
exposed to enum LengthType which will simplify future changes
of it.

Bug: 925310
Change-Id: Ie8e710086abdda2058535ea4ccf7d77871725fec
Reviewed-on: https://chromium-review.googlesource.com/c/1437633
Reviewed-by: Morten Stenshorne <mstensho@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#626517}
wdzierzanowski
Allow CustomProxyConfig to apply to non-idempotent methods
It is a property of the Data Reduction Proxy that requests using
non-idempotent methods must never be proxied.  Other CustomProxyConfig
providers should be allowed to assume the proxy handles the
non-idempotent case correctly.

Change-Id: I3b31e3c9567e10ccd746541f2f1d46312356f14a
Reviewed-on: https://chromium-review.googlesource.com/c/1385145
Reviewed-by: Eric Roman <eroman@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Commit-Queue: Wojciech Dzierżanowski <wdzierzanowski@opera.com>
Cr-Commit-Position: refs/heads/master@{#626033}
bratell
Deduplicate copied code in Android memory usage accounting
A big helper function was present both in newly added code and
in older code and that prevented jumbo compilation of
blink's controller (not yet enabled on master). This CL
deduplicates the code, and to not add the helper function
to to public API, makes it a private static member, with a
friend declaration that allows the other class to use it.

Bug: 920922
Change-Id: Ib24a2d9438a3e73c3f11276bb703516f67e75c23
Reviewed-on: https://chromium-review.googlesource.com/c/1433248
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Reviewed-by: Keishi Hattori <keishi@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#626025}
fs
Remove dead code in BoxPainterBase::PaintNormalBoxShadow
Dead since fd75e9942198e2f00d5713ab7bd44c12b0f3cab2.

Change-Id: I6490435071e027119a27cfcd29f99845c6769d9d
Reviewed-on: https://chromium-review.googlesource.com/c/1434354
Commit-Queue: Stephen Chenney <schenney@chromium.org>
Auto-Submit: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Cr-Commit-Position: refs/heads/master@{#625779}
bratell
Fix variable shadowing in ui/gfx and enable the warning
Attempts to use ui/gfx code in content failed because of
variable/enum shadowing. The main problem is fixed in
https://chromium-review.googlesource.com/c/chromium/src/+/1424799

This fixes the remaining problems and enables the shadowing
warning to prevent future problems of the same kind. All the
problems are of the trivial kind, with inner blocks reusing
either the name of a variable or the name of an argument,
be it |cluster|, |font|, |i|, |path|, |alpha| or |line|. In one
case the fix was to delete an unused local variable.

Bug: 923078,794619
Change-Id: Iae8bb768c49332cbe610860e06fea9d7aebc7a4b
Reviewed-on: https://chromium-review.googlesource.com/c/1421104
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Alexei Svitkine <asvitkine@chromium.org>
Reviewed-by: Peter Kasting <pkasting@chromium.org>
Cr-Commit-Position: refs/heads/master@{#625635}
bratell
Rename new ResourceType->CanvasResourceType since ResourceType exists
third_party/blink/renderer/platform/loader/fetch/fetch_context.h
defines a blink::ResourceType enum which, if it's known by the
compiler, prevents the new code in canvas_resource_provider.cc
from compiling.

In some extreme jumbo builds, the compiler knows about
third_party/blink/renderer/platform/loader/fetch/fetch_context.h
when compiling that file and the compilation fails because
symbol lookup is ambiguous.

This renames the enum back to CanvasResourceType just to get
all the builds happy again.

Bug: 920626
Change-Id: I746325ede29cbb3fba5c9790b12af0b8925c81e3
Reviewed-on: https://chromium-review.googlesource.com/c/1433239
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#625606}
bratell
Remove potential hang+timeout from _nocompile tests
If output buffers got full while running the tests, the
script would hang, polling the process forever and it would never
return a return_code from proc.poll().

This might have caused some random timouts but if so, it is
unclear what 64 KB output filled up the buffers, unless the buffers
were smaller than local testing would indicate.

This stores stdout and stderr in temporary files and reads those
files back into memory after the process has finished.

Bug: 882852
Change-Id: I4e6ace2bb783fadcde3f43643ccad03c58ef519a
Reviewed-on: https://chromium-review.googlesource.com/c/1425736
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Eric Seckler <eseckler@chromium.org>
Reviewed-by: Albert J. Wong <ajwong@chromium.org>
Cr-Commit-Position: refs/heads/master@{#625603}
fs
Make SameSizeAsComputedStyle model reality better
Make a separate SameSizeAsComputedStyleBase struct and inherit from that
instead of composing.
Make sure the access specifiers match (so that for instance the reference
counter will place in the correct spot in the layout).

So the layout changes like:

 *** Dumping AST Record Layout
          0 | struct SameSizeAsComputedStyle
-         0 |   class RefCounted<SameSizeAsComputedStyle> (base)
-         0 |     uint32_t ref_count_
-         8 |   struct SameSizeAsComputedStyle::ComputedStyleBase base_
-         8 |     void *[7] data_refs
-        64 |     unsigned int [4] bitfields_
+         0 |   struct SameSizeAsComputedStyleBase (base)
+         0 |     void *[7] data_refs
+        56 |     unsigned int [4] bitfields
+        72 |   class RefCounted<SameSizeAsComputedStyle> (base)
+        72 |     uint32_t ref_count_
         80 |   void *[1] own_ptrs
         88 |   void * data_ref_svg_style
            | [sizeof=96, dsize=96, align=8,

And to exemplify with the change to field from [1], the change to the
SameSize... structs will be:

          0 | struct blink::SameSizeAsComputedStyle
          0 |   struct blink::SameSizeAsComputedStyleBase (base)
          0 |     void *[7] data_refs
-        56 |     unsigned int [4] bitfields
+        56 |     unsigned int [5] bitfields
-        72 |   class RefCounted<SameSizeAsComputedStyle> (base)
-        72 |     uint32_t ref_count_
+        76 |   class RefCounted<SameSizeAsComputedStyle> (base)
+        76 |     uint32_t ref_count_
         80 |   void *[1] own_ptrs
         88 |   void * data_ref_svg_style
            | [sizeof=96, dsize=96, align=8,

rather than:

          0 |     uint32_t ref_count_
          8 |   struct SameSizeAsComputedStyle::ComputedStyleBase base_
          8 |     void *[7] data_refs
-        64 |     unsigned int [4] bitfields_
+        64 |     unsigned int [5] bitfields_
-        80 |   void *[1] own_ptrs
+        88 |   void *[1] own_ptrs
-        88 |   void * data_ref_svg_style
+        96 |   void * data_ref_svg_style
-           | [sizeof=96, dsize=96, align=8,
+           | [sizeof=104, dsize=104, align=8,
-           |  nvsize=96, nvalign=8]
+           |  nvsize=104, nvalign=8]

Note primarily the layout of |ref_count_| from RefCounted<>.

(Layout data courtesy of 'clang++ -fdump-record-layouts', with slight
edits for improved readability.)

[1] https://chromium-review.googlesource.com/c/chromium/src/+/1421188

Change-Id: I5f34a9bcdf86e3ddb8488bb14e531bba694c919b
Reviewed-on: https://chromium-review.googlesource.com/c/1430010
Reviewed-by: Emil A Eklund <eae@chromium.org>
Reviewed-by: Javier Fernandez <jfernandez@igalia.com>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#625602}
bratell
Add ajwong and wychen as owners of tools/nocompile_driver.py
Per request by current owner thakis.

Change-Id: Ie5418521d4ada0e21ea6b2b852b8ab7d3abbcaf6
Reviewed-on: https://chromium-review.googlesource.com/c/1430091
Reviewed-by: Nico Weber <thakis@chromium.org>
Reviewed-by: Albert J. Wong <ajwong@chromium.org>
Reviewed-by: Wei-Yin Chen (陳威尹) <wychen@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#625590}
bratell
Fix shadowing between gfx::ITALIC and gfx::Font::ITALIC
With the shadowing warning enabled and a sufficiently new clang, there
will be warnings about gfx::Font::ITALIC (and STRIKE and UNDERSCORE)
shadowing gfx::ITALIC, coming from the enum gfx::TextStyle. To prevent
that shadowing, this renames the gfx enum values TEXT_STYLE_*,
including a new name, TEXT_STYLE_COUNT, for what would otherwise be
TEXT_STYLE_NUM_TEXT_STYLES.

This shadowing problem currently prevents content (where the shadowing
warning is already enabled) from using these headers together.

Fixes to other shadowing problems, including enabling the shadow
warning, will come in
https://chromium-review.googlesource.com/c/chromium/src/+/1421104
after this has landed.

Bug: 923078,794619
Change-Id: I3018054f06a2fd2dc04cc4e0e72e5a0d641e99c5
Reviewed-on: https://chromium-review.googlesource.com/c/1424799
Auto-Submit: Daniel Bratell <bratell@opera.com>
Reviewed-by: Tibor Goldschwendt <tiborg@chromium.org>
Reviewed-by: Michael Wasserman <msw@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#625230}
bratell
[jumbo] Give two kBackgroundColor in chrome/.../views unique names
In jumbo builds, many files are compiled in the same translation
unit and then they also share the same anonymous namespace. Then
it becomes a problem (does not compile) if several constants/
symbols are named the same.

This follows earlier patterns of giving shared generic names
prefixes.

Bug: 918788

Change-Id: If45d63b9bfe77119735c67fca491a6227dded045
Reviewed-on: https://chromium-review.googlesource.com/c/1424842
Reviewed-by: Bret Sepulveda <bsep@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#625147}
mharanczyk
Fix memory leaks in content settings introduced by linked_ptr removal.
Bug: 556939, 914453
Change-Id: Ibd8757967a051507e0fc2a9ae93ac789e51b005b
Reviewed-on: https://chromium-review.googlesource.com/c/1425708
Reviewed-by: Jun Mukai <mukai@chromium.org>
Reviewed-by: Jochen Eisinger <jochen@chromium.org>
Reviewed-by: Balazs Engedy <engedy@chromium.org>
Reviewed-by: Avi Drissman <avi@chromium.org>
Commit-Queue: Marek Haranczyk <mharanczyk@opera.com>
Cr-Commit-Position: refs/heads/master@{#625144}
mharanczyk
Fix memory leaks in TtsControllerTest.
Bug: 517317
Change-Id: I85ebdbf5dd8ae98ce829abe3cf87e55779924559
Reviewed-on: https://chromium-review.googlesource.com/c/1425715
Reviewed-by: Dominic Mazzoni <dmazzoni@chromium.org>
Commit-Queue: Dominic Mazzoni <dmazzoni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#624828}
fs
Remove dead RoundedMinimumValueForLength
Last use was removed in ae49f5caf2943049acab4abe802e82c8dc001184.

Change-Id: I226e8d7a629148d5c3cd869cf31f48cf909662bb
Reviewed-on: https://chromium-review.googlesource.com/c/1421997
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#624542}
wdzierzanowski
Expose CONNECT headers to ProxyDelegate
This brings back (slightly refreshed versions of) the
OnBeforeTunnelRequest(), OnTunnelHeadersReceived() hooks that were
removed in
https://chromium-review.googlesource.com/c/chromium/src/+/846261/.

These hooks are not used by the Data Reduction Proxy, because it
doesn't proxy https:// URLs.  They are restored for the benefit of those
downstream embedders (Opera) that use CONNECT tunnels to proxy HTTPS
requests.

Bug: 915659
Change-Id: Id0e120882a22a66c72802087a1775daeef661984
TBR: rockot@google.com
Reviewed-on: https://chromium-review.googlesource.com/c/1379766
Commit-Queue: Wojciech Dzierżanowski <wdzierzanowski@opera.com>
Reviewed-by: Matt Menke <mmenke@chromium.org>
Reviewed-by: Tarun Bansal <tbansal@chromium.org>
Reviewed-by: mark a. foltz <mfoltz@chromium.org>
Reviewed-by: Eric Roman <eroman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#624075}
bratell
Remove team list that was listed as reviewer in wpt/workers/OWNERS
R=foolip@chromium.org

Change-Id: I97a3bb19a458a4114c1541ea4aaa790bb849bbca
Reviewed-on: https://chromium-review.googlesource.com/c/1407074
Reviewed-by: Philip Jägenstedt <foolip@chromium.org>
Reviewed-by: Hiroki Nakagawa <nhiroki@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#623273}
fs
Reland "Avoid copying Lengths (non-layout uses)"
This reverts commit ae5e5a5785d23ad6ca824b1ff399fe31b9060b77.

Reason for revert: The cause for the link failure is unknown but not the fault of the CL. (See for example https://crbug.com/921967 for similar failures.)

Original change's description:
> Revert "Avoid copying Lengths (non-layout uses)"
> 
> This reverts commit 784f852591a08f9bce6005cbb1df682cc5608af0.
> 
> Reason for revert: Causes link failures on Android FYI Release (Nexus 6P)
> 
> Original change's description:
> > Avoid copying Lengths (non-layout uses)
> > 
> > Copying/assigning a Length is not just a trivial copy, so when possible,
> > use a const Length& to avoid making a copy (saving some small bit of
> > footprint and hopefully a few CPU cycles too).
> > 
> > Change-Id: I8bcf5c6e6b99027110a20b1ef95d5f6607673ddc
> > Reviewed-on: https://chromium-review.googlesource.com/c/1411919
> > Reviewed-by: Morten Stenshorne <mstensho@chromium.org>
> > Commit-Queue: Morten Stenshorne <mstensho@chromium.org>
> > Cr-Commit-Position: refs/heads/master@{#623209}
> 
> TBR=fs@opera.com,mstensho@chromium.org
> 
> Change-Id: Ifd8aad2dc3c78703a7f544564417ceb15cddcdda
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Reviewed-on: https://chromium-review.googlesource.com/c/1414993
> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
> Commit-Queue: Corentin Wallez <cwallez@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#623248}

TBR=fs@opera.com,cwallez@chromium.org,mstensho@chromium.org

Change-Id: Id247820a5c902209354452d495537ab02efb7605
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/1414939
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#623251}
fs
Simplify LayoutBox::ComputeLogicalWidth's replaced logical width setup
No need to create a temporary Length here, just use a LayoutUnit. We
can also fold the call to ComputeReplacedLogicalWidth() into the two
points that use it.

Change-Id: I0f5ca8c02ab79f3fb126c77acee83751f06202a1
Reviewed-on: https://chromium-review.googlesource.com/c/1414890
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Commit-Queue: Morten Stenshorne <mstensho@chromium.org>
Reviewed-by: Morten Stenshorne <mstensho@chromium.org>
Cr-Commit-Position: refs/heads/master@{#623210}
fs
Avoid copying Lengths (non-layout uses)
Copying/assigning a Length is not just a trivial copy, so when possible,
use a const Length& to avoid making a copy (saving some small bit of
footprint and hopefully a few CPU cycles too).

Change-Id: I8bcf5c6e6b99027110a20b1ef95d5f6607673ddc
Reviewed-on: https://chromium-review.googlesource.com/c/1411919
Reviewed-by: Morten Stenshorne <mstensho@chromium.org>
Commit-Queue: Morten Stenshorne <mstensho@chromium.org>
Cr-Commit-Position: refs/heads/master@{#623209}
fs
Avoid copying Lengths (in layout sans NG)
Copying/assigning a Length is not just a trivial copy, so when possible,
use a const Length& to avoid making a copy (saving some small bit of
footprint and hopefully a few CPU cycles too).

Change-Id: Idd1633b4198a8af62c46c27c36751e7961eb356f
Reviewed-on: https://chromium-review.googlesource.com/c/1411693
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#622959}
fs
[LayoutNG] Avoid copying Lengths
Copying/assigning a Length is not just a trivial copy, so when possible,
use a const Length& to avoid making a copy (saving some small bit of
footprint and hopefully a few CPU cycles too).

Change-Id: Ib802f8e26c061e77bc8c0d8487a9dc8a8afe130b
Reviewed-on: https://chromium-review.googlesource.com/c/1411921
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Morten Stenshorne <mstensho@chromium.org>
Cr-Commit-Position: refs/heads/master@{#622834}
bratell
Resolve another collision between Win32 and atomicops MemoryBarrier
Windows defines a MemoryBarrier macro which clashes with a MemoryBarrier
construct in base/atomicops.h. Depending on the order of includes,
various code can be affected. Currently the Windows jumbo builder is broken
in ppapi/proxy because of a sequence of
1. include base/atomicops.h  (undefs Memorybarrier which does nothing)
2. include ppapi_messages.h -> base/sync_socket.h -> windows.h
(Now MemoryBarrier is a macro)
3. include gpu/command_buffer/common/command_buffer_shared.h ->
3a  -> include base/atomicops.h (does nothing because include guards)
3b  -> uses base::subtle::MemoryBarrier which is a macro and poof.

Normally the undef MemoryBarrier is near the Windows.h include but
it's tricky to put in base since there is also code that needs the
macro so undeffing it in too generic code can make things worse.

Technically this was triggered by the removal of the PPB_compositor
APIs but only because the jumbo chunks changed when files were deleted.

Change-Id: I06940cadd2ad30d8698199a72cc91e36e8346b50
Reviewed-on: https://chromium-review.googlesource.com/c/1409520
Reviewed-by: Antoine Labour <piman@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#622812}
bratell
Let jumbo builders be more like all other trybots.
This also affects the fyi builders. Is that a problem?

Change-Id: I9195bb71127162204712082292ea6556cda415ab
Reviewed-on: https://chromium-review.googlesource.com/c/1340327
Reviewed-by: Stephen Martinis <martiniss@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#622519}
bratell
Add some ATK version number checks on new ATK members.
Ubuntu 16.04 LTS still has an old version of atk (2.18.0) so
to be able to build on Ubuntu 16.04 without a sysroot, this
adds version checks for some of the new relations:
ATK_RELATION_DETAILS, ATK_RELATION_DETAILS_FOR,
ATK_RELATION_ERROR_MESSAGE and ATK_RELATION_ERROR_FOR.

Bug: 915453
Change-Id: I1ee0a4d0edcb128e225579138aa65df0b0f307db
Reviewed-on: https://chromium-review.googlesource.com/c/1409445
Reviewed-by: Dominic Mazzoni <dmazzoni@chromium.org>
Reviewed-by: Martin Robinson <mrobinson@igalia.com>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#622508}
bratell
Get chromium's major version directly instead of parsing strings
Getting Chromium's version is not trivial in code and some code
got the version string dynamically during runtime and parsed it.
Since several files defined the same helper function
GetCurrentMajorVersion, those clashed in some extreme
jumbo builds. This drops this function and instead gets the
version directly from the version system via a C/C++ define.

Since the version number now will be compiled into autofill,
it will have to recompile if the major version number changes.

Bug: 907570
Change-Id: I5823d977f3ff58c4b19f173c01031d4a9aa5c56c
Reviewed-on: https://chromium-review.googlesource.com/c/1409548
Reviewed-by: Sebastien Seguin-Gagnon <sebsg@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#622490}
fs
Reduce the size of execution_context.h
execution_context.h is used in 4400+ compilation units. This reduces
its pre-processed size by ~1.1M.

The referrer_policy.mojom-shared.h include was added by
https://crrev.com/611587.

Bug: 242216, 860403
Change-Id: I5cdcbf17f05a6b121672f7fa9263f098a6450ee5
Reviewed-on: https://chromium-review.googlesource.com/c/1408970
Reviewed-by: Kent Tamura <tkent@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#622488}
bratell
Fixing the spelling of mmenke@chr in net/log/OWNERS
R=mmenke@chromium.org

Change-Id: I34db82f8d15864eab67c6cd7dd6490ebac31ec02
Reviewed-on: https://chromium-review.googlesource.com/c/1407004
Reviewed-by: Matt Menke <mmenke@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#622058}
fs
Remove some includes of console_message.h in central headers
Remove the (unneeded) includes of console_message.h from
core/dom/document.h and core/execution_context/security_context.h.

This should for instance avoids indirectly including dom_node_ids.h
more than needed.

This will hopefully improve compilation speed a little bit, for
some people.

Bug: 242216
Change-Id: I775478624933833981c0f9ccd28e82e1bf815e00
Reviewed-on: https://chromium-review.googlesource.com/c/1406974
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#622027}
bratell
Fix owner email typo in tools/gn/bootstrap/OWNERS
R=thakis@chromium.org

Change-Id: I60faf240e3335bba2a4258c1677b07fb892e9b69
Reviewed-on: https://chromium-review.googlesource.com/c/1407075
Reviewed-by: Nico Weber <thakis@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#622026}
fs
Stop including node_computed_style.h in element_resolve_context.h
78cf9afa7b11d20e90bbe4838970ae13778a0f3c added this include, as well as
an 'inline' keyword on the declaration of the methods in it.
Undo this to avoid ballooning the files downstream of
element_resolve_context.h.

Fix the fallout which is all due to missing includes of
platform/wtf/functional.h.

Bug: 242216

Change-Id: Iae7d8aa96c043e76a12d3fb76972730e70113c8c
Reviewed-on: https://chromium-review.googlesource.com/c/1406247
Reviewed-by: Rune Lillesveen <futhark@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#621988}
bratell
Fix gpu service macro to be correct and identical to other macro
In jumbo builds there was a build error because
one LOCAL_CLEAR_REAL_GL_ERRORS was different from another one.
That was because there was a typo in one of them so this
fixes the typo. Better would probably be to merge them into a header.

Change-Id: Ia2e54fe58479e30236edd6bb20d358ceae9e527b
Reviewed-on: https://chromium-review.googlesource.com/c/1377425
Reviewed-by: Brandon Jones <bajones@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#621750}
fs
Eliminate some Persistent<>s in BorderImage*::InitialValue
Add a CSSQuadValue::Create that takes one value, and uses that for all
the four values (top, right, bottom, left), and use that to eliminate
some static Persistent<...>s.

Change-Id: I8e56dac6e70e37b096f40259e4e5c621ae20713c
Reviewed-on: https://chromium-review.googlesource.com/c/1402805
Reviewed-by: Rune Lillesveen <futhark@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#621529}
fs
Remove redundant calls to PaintFlags::setAntiAlias
In most of these cases we use GraphicsContext::FillFlags - which
will already have the value returned by GraphicsContext::ShouldAntialias
set.
In the remaining case we copy the flag from the PaintFlags which
we made a copy of already.

Change-Id: I25fe7f578017c215cd8950aa3a74b2664bf29615
Reviewed-on: https://chromium-review.googlesource.com/c/1403456
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#621263}
fs
Clean up SVGSMILElement::FindInstanceTime
Use lambdas and iterators, handling the case where an instance time
equal to the request time is not a valid result in the predicate passed
to std::lower_bound().

There's theoretically a change in behavior where (for 'begin' times), we
could previously have returned the magic 'indefinite' value after
looking for the next larger instance time.

Change-Id: I5e51c85298530548c6527116086355b00ea7ad3d
Reviewed-on: https://chromium-review.googlesource.com/c/1400822
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#621236}
fs
Use separate PaintFlags for the spaced tile shader
We would setup the tile shader using the same PaintFlags that we had
(partially) set up for the actual image draw. This meant that we'd draw
the shader picture using the same blend mode, which could easily end up
yielding nothing.

Set up a "fresh" PaintFlags for the tile shader as needed instead, using
only flags relevant for the shader.

Bug: 919637
Change-Id: Id141daca481ce3f90ed0c1f44c801eafcef5964b
Reviewed-on: https://chromium-review.googlesource.com/c/1401045
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#621188}
bratell
Resolve namespace ambiguity between blink::features and ::features
Inside the blink namespace, "features" can refer to either
::features or ::blink::features depending on what the computer knows.
That is why the code style guide don't want there to be sub
namespaces with the same name as top level namespaces.

This ambiguity broke some jumbo build configurations. An option
is to rename ::blink::features to something like
::blink::web_features (or ::blink::blink_features) but that is
a large operation so this patch just adds a ::prefix to
clarify what namespace is intended.

Change-Id: I3c2279e6a141de73efb4e6c4a0f6e2c6da48c61f
Reviewed-on: https://chromium-review.googlesource.com/c/1403117
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#621152}
bratell
Remove unused SurfaceTextureGLOwner::texture_id_
Some jumbo builds broke because of unused class member triggering
a compiler warning. That a class member is unused might sometimes
not be noticed in normal builds because the compiler doesn't have
access to the source of all class methods.

Bug: 892490

Change-Id: I733ec2d36be4639d49ea692b3d490da206215522
Reviewed-on: https://chromium-review.googlesource.com/c/1400824
Reviewed-by: Frank Liberato <liberato@chromium.org>
Reviewed-by: Dale Curtis <dalecurtis@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#621089}
bratell
Remove the ::media::gpu namespace which conflicted with ::gpu
We should not have sub namespace with the same name as top level
namespaces since that causes name lookup conflicts. ::media::gpu
in particular was only used by a single function, and I'm sure
it will be fine in ::media instead, saving us from having to
write ::gpu everywhere.

This broke the build in certain jumbo build configurations.

Bug: 910590

Change-Id: Ic735dedfe39485ec5f2bd0d0adcce22fa12ec951
Reviewed-on: https://chromium-review.googlesource.com/c/1400823
Reviewed-by: Dale Curtis <dalecurtis@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#621088}
fs
Ignore instance times from endElement*() for inactive timed elements
When endElementAt()/endElement() is trying to add a new instance time
and there's no active interval, just ignore the new instance time.

Spec:

  "While the element is not active, any end specification of the
   event is ignored."

(https://www.w3.org/TR/2001/REC-smil-animation-20010904/#Timing-EventSensitivity)

Bug: 241742
Change-Id: Ic3333698ac275eff32bd87f5e0205c1004c3e2d4
Reviewed-on: https://chromium-review.googlesource.com/c/1400663
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#620752}
tmoniuszko
Handle missing anchor positions for BubbleBorder bounds calculation
Bug: 918516
Change-Id: Id97aac57ef7e4bc64e312712068d8500f1d2f4e2
Reviewed-on: https://chromium-review.googlesource.com/c/1386432
Commit-Queue: Tomasz Moniuszko <tmoniuszko@opera.com>
Reviewed-by: Michael Wasserman <msw@chromium.org>
Cr-Commit-Position: refs/heads/master@{#619602}
fs
Move 'contain: size' handling for replaced content
For Legacy layout, hoist the check for size containment out to
ComputeIntrinsicSizingInfoForReplacedContent, since this is the "real"
entrypoint.
For NG, put the check in NGLayoutInputNode::IntrinsicSize.

This also makes ComputeIntrinsicSizingInfo slightly more focused on
computing the intrinsic dimensions, and avoids calling it at all if
the box is subject to size containment.

Bug: 917018
Change-Id: I0e3fdc48e9c5a104cadaa253cb7cef23fdc42ece
Reviewed-on: https://chromium-review.googlesource.com/c/1386849
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Morten Stenshorne <mstensho@chromium.org>
Reviewed-by: Aleks Totic <atotic@chromium.org>
Reviewed-by: Manuel Rego <rego@igalia.com>
Cr-Commit-Position: refs/heads/master@{#618496}
fs
Simplify some has-multiple-boxes conditions in InlineFlowBoxPainter
We can use the |object_has_multiple_boxes| argument here.

Change-Id: I4e20b5e8d1af9efa8b32a13a8be1cde6ec0be1c1
Reviewed-on: https://chromium-review.googlesource.com/c/1386790
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#618263}
fs
Remove unused SkBlendMode arguments in *Box*Painter*
These argument are always SkBlendMode::kSrcOver, and are not used in the
end.

Change-Id: I1625bdced4601b3eec3de609063f331208282b0d
Reviewed-on: https://chromium-review.googlesource.com/c/1386789
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#618256}
fs
Remove duplicate TestExpectations entries
TBR=verwaest@chromium.org,jgruber@chromium.org

Bug: 855009, 916975
Change-Id: I1bf43a418707c064ca902f888161f91c278d91f0
Reviewed-on: https://chromium-review.googlesource.com/c/1386786
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#618222}
bratell
[jumbo] Two blink tests used kViewportWidth in a way that clashed
This moves two kViewportWidth and two kViewportHeight into
tighter scopes to reduce risk for future clashes in jumbo builds.

Change-Id: I7527018809a4bf62b8e831e18235327b11a95f29
Reviewed-on: https://chromium-review.googlesource.com/c/1386149
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#618168}
bratell
[jumbo] Move two clashing RunPendingTasks() in blink tests
There is a ::blink::test::RunPendingTasks() but one test
imported it into ::blink with a using statement and another
test created its own ::blink::RunPendingTasks(). This cause
problems in some jumbo builds. This moves both RunPendingTasks
away from the blink namespace.

Change-Id: Ib811f27269305cc1ed2fa4019377e1a4b2e36d6e
Reviewed-on: https://chromium-review.googlesource.com/c/1386209
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#618167}
bratell
[jumbo] Rename one of two GetDeviceScaleFactor functions
There are two (similar but not identical)
GetDeviceScaleFactor() functions in chrome/browser and in some
extreme jumbo configurations those clash.

This renames one of them to GetPrimaryDisplayScaleFactor()

Change-Id: I55e7bf310eab4a21e7e56bb21c6c6accf0de3eff
Reviewed-on: https://chromium-review.googlesource.com/c/1378097
Reviewed-by: Nigel Tao <nigeltao@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#618139}
fs
Don't apply (-webkit-)mask-composite on the bottom mask layer
 "If there is no further mask layer, the compositing operator must
  be ignored."

  (https://drafts.fxtf.org/css-masking/#the-mask-composite)

Bug: 915847
Change-Id: Ia42f188160cf84648e364829c7733dbb0895936b
Reviewed-on: https://chromium-review.googlesource.com/c/1384251
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#617865}
fs
Resolve computed 'transform-origin' for SVG elements
Make the local helper ReferenceBoxForTransform available via
ComputedStyleUtils and use it in TransformOrigin::CSSValueFromComp...
Replace usages of MinimumValueForLength with FloatValueForLength. This
matches what is done when resolving/applying transform in the general
case.
Also sink the common handling of the 'z' component out of the 'if'.

Bug: 740300
Change-Id: Id0e6cbcc85942ccc8cdb3f8ed86ecc6e7aaf492e
Reviewed-on: https://chromium-review.googlesource.com/c/1382434
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Rune Lillesveen <futhark@chromium.org>
Cr-Commit-Position: refs/heads/master@{#617548}
fs
Resolve percentages in computed 'transform' for SVG elements
SVG (child; non-root) elements should resolve percentages in computed
'transform' values just like regular boxes.

Rename ComputeTransformReferenceBox to ComputeSVGTransformReferenceBox
(for clarity) and expose it for a wider audience. Make it apply the
effective zoom, since both clients require that.
Use ComputeSVGTransformReferenceBox in ComputedStyleUtils to compute the
reference box for the LayoutObject in question.

Bug: 915426
Change-Id: I5323056cc54ff07e0b3cf943f52a7210ea320c78
Reviewed-on: https://chromium-review.googlesource.com/c/1382433
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Rune Lillesveen <futhark@chromium.org>
Cr-Commit-Position: refs/heads/master@{#617515}
fs
Narrow "is constrained" check for LayoutImage layout invalidation
If our containing block has auto height, we need to relayout.
Add !HasAutoHeightOrContainingBlockWithAutoHeight() to the
condition for |image_size_is_constrained|.

Bug: 870599
Change-Id: I22858843d7ad87c63eb7b8d6e771e0f8d6cfa09d
Reviewed-on: https://chromium-review.googlesource.com/c/1373823
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Morten Stenshorne <mstensho@chromium.org>
Cr-Commit-Position: refs/heads/master@{#617446}
bratell
Call the client hints factory "client hints factory".
Jumbo builds failed when several files claimed to define
the g_previews_service_factory.

Change-Id: Id16f0c0c66da9fdb7c0d42afda611d672ab6da14
Reviewed-on: https://chromium-review.googlesource.com/c/1377441
Reviewed-by: Tarun Bansal <tbansal@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#616722}
bratell
[jumbo] Replace one of two colliding GetMainFrame with IsMainFrame()
There were two GetMainFrame() functions in chrome/browser which
clashed in jumbo (unity) builds. Since one of them is only
used to check if the current frame is the main frame, simplify
the code a bit.

Change-Id: I2d0b30d4ca2c18f202db709514c55c84a7eb350f
Reviewed-on: https://chromium-review.googlesource.com/c/1378140
Reviewed-by: Tarun Bansal <tbansal@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#616720}
bratell
[jumbo] Rename a GetBrowserContext function
There are several GetBrowserContext functions in content/browser
and in jumbo builds, base::BindRepeating did not know which
one to use. This renames one of them to make it clear for everyone,
including the compiler in jumbo builds.

Change-Id: Ifd35c418ae780c8e7874603c1e261cb3db02acf0
Reviewed-on: https://chromium-review.googlesource.com/c/1377740
Commit-Queue: Daniel Bratell <bratell@opera.com>
Commit-Queue: Avi Drissman <avi@chromium.org>
Reviewed-by: Avi Drissman <avi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#616715}
fs
Use StyleColor for the stop-color property
This changes the ComputedStyle storage for the stop-color property to be
a StyleColor rather than a plain color. This fixes explicit inheritance
for the property ('currentcolor' computes to itself).
It also means we'll properly pick up changes to 'color'.

Bug: 914728
Change-Id: I3c78a3615220b9149d1ea5102a6e5863526a6d51
Reviewed-on: https://chromium-review.googlesource.com/c/1377437
Reviewed-by: Rune Lillesveen <futhark@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#616660}
fs
Refactor "needs layout" check in LayoutImage
Move the conditions used to check if layout is needed when the intrinsic
size changes out into a new function, and call that from
LayoutImage::InvalidatePaintAndMarkForLayoutIfNeeded.
Replace open-coded HasRelativeLogicalWidth() with a call to that method.

Bug: 870599
Change-Id: Iae480326083eb493d58233378d95af8c1dd62f0a
Reviewed-on: https://chromium-review.googlesource.com/c/1373839
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Morten Stenshorne <mstensho@chromium.org>
Cr-Commit-Position: refs/heads/master@{#616624}
fs
Add reftest-wait to css/filter-effects/svg-sourcegraphic-currentcolor-dynamic-001.html
Attempt to stabilize in Gecko.

Bug: 626744
Change-Id: Idfa06176948d1ffaf6ba8e65263bf5818ffd321b
Reviewed-on: https://chromium-review.googlesource.com/c/1375875
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Stephen Chenney <schenney@chromium.org>
Cr-Commit-Position: refs/heads/master@{#616543}
joleksy
[Mac] Use non-autoreleased mock object in ScopedBundleSwizzlerMac
The "release" call in the destructor might or might not destroy the
mock object, depending on current autorelease pool.
If we add to the picture the local autorelease pool (used in tests),
we no longer can name the class "Scoped".

The fix creates OCPartialMockObject without the helper function,
avoiding the autoreleasability.

Change-Id: Id17a1ef571246370f6e84cde60773f90d7d35cb0
Reviewed-on: https://chromium-review.googlesource.com/c/1375871
Reviewed-by: Avi Drissman <avi@chromium.org>
Commit-Queue: Avi Drissman <avi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#616424}
fs
Return used width/height for SVG <image>, <rect> and <foreignObject>
Per https://drafts.csswg.org/cssom/#resolved-values we should return the
"used value" for 'width' and 'height' on these elements [1].
This behavior was clarified in SVGWG GitHub issue #349 [2].

[1] And also on <svg>, but we don't support those properties there yet.
    Tests added for that case too though.
[2] https://github.com/w3c/svgwg/issues/349

Bug: 772707
Change-Id: Ic7b6b148883d4380daadb41b62bddd02da55e1af
Reviewed-on: https://chromium-review.googlesource.com/c/1374291
Reviewed-by: Philip Rogers <pdr@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#616343}
fs
Regression test for crbug.com/626744
Bug: 626744
Change-Id: I4244c3f0316ceb55bc69655212f6677345b0a6cc
Reviewed-on: https://chromium-review.googlesource.com/c/1374988
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#616311}
tmoniuszko
Avoid modifying Windows registry in RemoveProtocolHandler test
Writing to Windows registry requires elevated privileges and the test
fails on Windows 7 unless it's run as administrator (but in this case
all modifications stay in registry because the test doesn't do the
cleanup during its tear down).

Bug: 849660
Change-Id: I6cb8e9b2ba30e5bd9af2d8ede97c9bd62ccbc9ca
Reviewed-on: https://chromium-review.googlesource.com/c/1348115
Commit-Queue: Tomasz Moniuszko <tmoniuszko@opera.com>
Reviewed-by: Christian Dullweber <dullweber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#616303}
bratell
Don't compile Windows chrome_cleaner prompt code on other OSes
srt_chrome_prompt_impl.cc is code that is only used in Windows
but was compiled for all operating systems. Since it uses constants
that only exist in Windows it's kind of lucky that it doesn't
cause any problems, except in some jumbo build experiments where
there was linker errors.

(TBR for name change in BUILD.gn)
TBR=nparker@chromium.org

Bug: 904958
Change-Id: If1e3f76c7bc913d4041d0cb38b4891d898d24506
Reviewed-on: https://chromium-review.googlesource.com/c/1350870
Reviewed-by: Daniel Bratell <bratell@opera.com>
Reviewed-by: Demetrios Papadopoulos <dpapad@chromium.org>
Reviewed-by: Joe Mason <joenotcharles@google.com>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#616067}
bratell
Fix full ChromeOS builds - generated cryptauth proto file has moved.
ChromeOS cryptauth unittest use cryptauth_api.pb which moved from
components/cryptauth to chromeos/services/device_sync in bug 912743.
A file still included that file from the old path (and the new path)
which worked in trees where an earlier tree had generated it but didn't
work in a clean tree. The files presumably had the same include guards
so that is was ok to include both.

TBR=khorimoto@chromium.org

Bug: 912743
Change-Id: I6708c674f5fd99c94e233df5ec9b9c462c7814ad
Reviewed-on: https://chromium-review.googlesource.com/c/1373826
Reviewed-by: Daniel Bratell <bratell@opera.com>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#615911}
bratell
[jumbo] Give two MaybeGetConnectorForProcess unique names
In some (non default) jumbo configurations, two identical
MaybeGetConnectorForProcess functions ended up in tha same
translation unit. It would be good to share the implementation
between frame_host and renderer_host but I know no good place
and the function is small, so instead give them unique names.

Change-Id: I6dcb65e7f3a095ec7a73bd6bc40944180ddc6f07
Reviewed-on: https://chromium-review.googlesource.com/c/1348334
Reviewed-by: Avi Drissman <avi@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#615898}
bratell
Don't compile app_icon_factory except for ChromeOS.
Compiling app_icon_factory  code triggered compilation errors in some
Windows and Mac builds since the code references app_list which
only exists in ChromeOS. In most builds it was ok because the generated
object file was unused and got stripped by the linker before the dangling
references was found.

BUG=826982

TBR=nigeltao@chromium.org,rdevlin.cronin@chromium.org,dominickn@chromium.org

Change-Id: I25f0fa090f3466bcc83e06a070c7aa6c8600976d
Reviewed-on: https://chromium-review.googlesource.com/c/1373450
Reviewed-by: Daniel Bratell <bratell@opera.com>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#615856}
fs
Reduce type-impedance for LayoutImageResource::GetImage
The container size will be converted to FloatSize in the end, so make
the argument type a FloatSize too rather than a LayoutSize.
Clean up callers, removing some conversions in SVGImagePainter, and add
an IntSize overload (since it's common to call GetImage with an
IntSize).

Change-Id: I4f5c4389d21617ad60d18b258674999e9ef51f2c
Reviewed-on: https://chromium-review.googlesource.com/c/1367651
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#615130}
bratell
Don't prefix absolute paths in gn_run_binary.py.
Absolute paths become broken paths if prefixed with ./ so
only do the ./ addition for non-absolute paths.

The result would be that the command failed with:
"WindowsError: [Error 2] The system cannot find the file specified"
on the command execution. This could easily be misunderstood as
some argument to the command being wrong.

You get absolute paths in gn when using rebase_path(path) with no
extra arguments. This is the recommended and supported way to interact
with external programs since gn internal paths can contain and be
based on "//" which is not understood by anyone but gn internally.


Change-Id: I2ab49f529c7d030f73f693e5ea6cacc5ebbf3c99
Reviewed-on: https://chromium-review.googlesource.com/c/1367670
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Bruce Dawson <brucedawson@chromium.org>
Cr-Commit-Position: refs/heads/master@{#615087}
bratell
Don't build ppapi/{proxy,shared_impl} with jumbo in nacl
An upcoming CL triggers nacl toolchain problems in jumbo builds where
some combination of template instantiations cause some build errors.
To not block that CL, disable jumbo for nacl in relevant directories.

Bug: 912152
Change-Id: Ie79729414d765fec22325bacdb7df8cf714457f3
Reviewed-on: https://chromium-review.googlesource.com/c/1363282
Reviewed-by: Bill Budge <bbudge@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#614014}
fs
Eliminate unnecessary uses of Node::ToNode
This method is supposed to be used to go from an EventTarget to its node
(if any). Remove uses where it's called on something that obviously
derives from Node already.
Make it private on Node to prevent any future such uses.

Change-Id: I0ed70ac122e877ae90ee7c6f6c53caaa63edd574
Reviewed-on: https://chromium-review.googlesource.com/c/1361070
Reviewed-by: Kent Tamura <tkent@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#613910}
fs
Clamp contents visual overflow for LayoutSVGRoot
If the contents overflow rect for the SVG root is too large, it could
end up shifting the overflow rect such that it is culled and thus never
painted.

To avoid this, clip the content overflow rect with
LayoutRect::InfiniteIntRect(). This gives reasonable enough leeway, and
also matches the rect that is commonly used to represent infinity for
culling and clipping etc.

Bug: 911186
Change-Id: I22d505ac0582f4d1fe6ac3ead9041c4a87176994
Reviewed-on: https://chromium-review.googlesource.com/c/1361225
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#613692}
fs
Simplify GraphicsContext::ApplyHighContrastFilter implementations
We assume that SkColor <=> Color::Rgb(), so simplify the Color variant
accordingly.

PaintFlags are always passed as constant references, so pass it like
that to the PaintFlags variant too and remove the null-checks. Also
always explicitly copy the PaintFlags so that we get RVO.

Change-Id: I46b6f5aff7cbe175d6b9a2ff8277ff5ce9b4fce8
Reviewed-on: https://chromium-review.googlesource.com/c/1358497
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#613158}
fs
Restore "same layer" check in CalculateRectsWithGeometryMapper
If the root layer and the "current" layer are the same, we can't really
guarantee that the "pre"-transform is the same as the "local border
box"-transform - for example in the case where we're performing a hit-
test from/under a foreignObject element which has a 'transform' applied.

Bug: 908570
Change-Id: Icbaf3c15ca7b483f8209d5d0cc8b4613d80d49ce
Reviewed-on: https://chromium-review.googlesource.com/c/1355184
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Xianzhu Wang <wangxianzhu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#612643}
fs
Disabled (empty) SVG shapes cannot be hit
Disabled SVG shapes [1][2][3] should not be possible to hit since they
are considered "not rendered".

[1] https://svgwg.org/svg2-draft/shapes.html#RectElement
[2] https://svgwg.org/svg2-draft/shapes.html#CircleElement
[3] https://svgwg.org/svg2-draft/shapes.html#EllipseElement

Bug: 896641
Change-Id: I5fe530722a4d60ecd416cd68f06a7555bb6a520f
Reviewed-on: https://chromium-review.googlesource.com/c/1353983
Reviewed-by: Philip Rogers <pdr@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#611840}
auygun
Fix frequency index set for AAC Parametric Stereo profile.
Bug: 908472
Change-Id: I2d67e946f46a83b930a22ace762cb064e73bb8fb
Reviewed-on: https://chromium-review.googlesource.com/c/1350894
Reviewed-by: Dale Curtis <dalecurtis@chromium.org>
Commit-Queue: Attila Uygun <auygun@opera.com>
Cr-Commit-Position: refs/heads/master@{#611634}
fs
Clean up LayoutSVGShape::NodeAtPoint
Since LayoutSVGShape::NodeAtPointInternal is now only called from
LayoutSVGShape::NodeAtPoint, we can make it private. Rename it to
something more helper-like - HitTestShape.

Move the check of 'visibility' to LayoutSVGShape::NodeAtPoint from
HitTestShape, to better match other similar methods.

Change-Id: If251b8b9258b754bfc94044739d6a8c41f1b04e7
Reviewed-on: https://chromium-review.googlesource.com/c/1352253
Reviewed-by: Philip Rogers <pdr@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#611618}
fs
Remove Pattern-wrapper in GeneratedImage::DrawPattern
Don't create a Pattern just to have it create a PaintShader - just
create the PaintShader directly.

Change-Id: I85b96ed9becea31e93d62191baac263f08f53f91
Reviewed-on: https://chromium-review.googlesource.com/c/1352258
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>
Reviewed-by: Florin Malita <fmalita@chromium.org>
Cr-Commit-Position: refs/heads/master@{#611258}
bratell
Give autofill's LegacyStrikeDatabas constants legacy names
In some (non default) jumbo configurations, strike.cc and
legacy_strike_database.cc compile in the same translation
unit and then some constants clash. Assuming
LegacyStrikeDatabase will soon go away, just give its
constants a bit longer names.

Bug: 884817
Change-Id: I1dc6d8b6499d3c6195a56423236198a02c32f3f0
Reviewed-on: https://chromium-review.googlesource.com/c/1348471
Commit-Queue: Sebastien Seguin-Gagnon <sebsg@chromium.org>
Reviewed-by: Sebastien Seguin-Gagnon <sebsg@chromium.org>
Cr-Commit-Position: refs/heads/master@{#610594}
fs
Move StyleBuilderConverter::ConvertValueToNumber to FilterOperationResolver
This function has a very generic name, but not a wide enough use case to
match. Move it to FilterOperationResolver, where its only two callers
are. Rename to something less generic.

Change-Id: Ibe6eaf68fbeddd86464d508cba3d6b235117f780
Reviewed-on: https://chromium-review.googlesource.com/c/1348096
Reviewed-by: Rune Lillesveen <futhark@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#610474}
fs
Expose all constants on SVGFEBlendElement
Per:

  https://drafts.fxtf.org/filter-effects/#InterfaceSVGFEBlendElement

All other browsers expose these already.

Bug: 906612
Change-Id: I4be6185d4832d980a5d7c6518dcb0b2ccca2ce82
Reviewed-on: https://chromium-review.googlesource.com/c/1341846
Reviewed-by: Philip Jägenstedt <foolip@chromium.org>
Commit-Queue: Philip Jägenstedt <foolip@chromium.org>
Cr-Commit-Position: refs/heads/master@{#610379}
fs
Fix typo'd URL for Blink license entry
Three 'w' should be enough for everyone...

Bug: 907470
Change-Id: I7a724e708b73e4d5a80bcd28a2a459912e5ae69b
Reviewed-on: https://chromium-review.googlesource.com/c/1346399
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#610147}
fs
Add one more test for viewport units in SVG-in-<img> context
This one using inline style instead of presentation attributes.

Bug: 650147
Change-Id: I00ee6c52b95803a928dd0b95a33da89f531a05ac
Reviewed-on: https://chromium-review.googlesource.com/c/1344102
Reviewed-by: Philip Rogers <pdr@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#609772}
bratell
Resolve conflict between two policy::kMaxValue
Both
components/policy/core/common/cloud/machine_level_user_cloud_policy_metrics.h
and
components/policy/core/common/cloud/enterprise_metrics.h
define policy::kMaxValue in two different enums. If code includes
both headers, it won't compile and this happens in some jumbo
build configurations.

This patch changes one of the enums to use enum class so that
the symbols are in different namespaces. (One will shadow the
other but as long as they are used correctly it will be fine)

Bug: 905702
Change-Id: Ia4dd0c89dc8ec5c23c516e90eae7f6c3256a232a
Reviewed-on: https://chromium-review.googlesource.com/c/1344129
Reviewed-by: Maksim Ivanov <emaxx@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#609769}
bratell
Jumbo support for ppapi (-7.5 CPU minutes)
Jumbo is a unity build system for Chromium (see
https://chromium.googlesource.com/chromium/src/+/lkgr/docs/jumbo.md )
which merges cc files at the build target level.

The code in //ppapi needs roughly 15 CPU minutes to compile in my
measurements, which is 2.3% of the total jumbo build time and one of
the largest remaining non-thirdparty code blocks without jumbo support.

This saves about 7.5 CPU minutes in a jumbo build, which is
a bit over 1% of the total reference build time. It doesn't cover
thunk which is most of the remaining compile time. There are
too much generated code with reused symbol names in thunk for it
to be trivially supported right now.

Bug: 898475
Change-Id: I1ee592578ac765cbd58cb856fcd5f331d3dd8c50
Reviewed-on: https://chromium-review.googlesource.com/c/1297366
Reviewed-by: Antoine Labour <piman@chromium.org>
Reviewed-by: Bill Budge <bbudge@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#609687}
bratell
Update some documentation for the binary_size tool
The documentation didn't include the crucial information
that generate_linker_map has to be set to true in gn for the tool
to work in Linux.

Bug: 716209
Change-Id: I62919e26a80a0b5d592f6b8953762e35575142d2
Reviewed-on: https://chromium-review.googlesource.com/c/1338085
Reviewed-by: agrieve <agrieve@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#609686}
wdzierzanowski
Initialize TestNavigationObserver::last_navigation_type_ in ctor
With |TestNavigationObserver::last_navigation_type_| initialized properly, it's
possible to use TestNavigationObserver::last_navigation_type() to check whether
a navigation is still ongoing.

Change-Id: Ie814270d5e79bebb95e7ebea05c1ed7eb53bf88c
Reviewed-on: https://chromium-review.googlesource.com/c/1340813
Reviewed-by: Scott Violet <sky@chromium.org>
Commit-Queue: Wojciech Dzierżanowski <wdzierzanowski@opera.com>
Cr-Commit-Position: refs/heads/master@{#609462}
yorenault
[Mac] Fix cursor when dropping to desktop
Allow mouse cursor to be a green plus when dropping items to desktop

Bug: 905238
Change-Id: I90a6f7156e681271f577f1f604f1d75ada4beba2
Reviewed-on: https://chromium-review.googlesource.com/c/1334994
Reviewed-by: Avi Drissman <avi@chromium.org>
Commit-Queue: Avi Drissman <avi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#609410}
fs
Add test for viewport units in SVG-in-<img> context
Bug: 650147
Change-Id: I4a158f600acb733477d33ebbd6a504490a5b54a4
Reviewed-on: https://chromium-review.googlesource.com/c/1341836
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Philip Rogers <pdr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#609346}
bratell
[doc] Jumbo builds can't be considered experimental anymore
Change-Id: I88b641bf356044ca94552273081af22c0fde1795
Reviewed-on: https://chromium-review.googlesource.com/c/1341530
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#609218}
fs
Fix parsing of negative values for 'r', 'rx', 'ry' and 'stroke-width'
For all of these properties[1][2][3][4], a negative value is considered
illegal and should fail in the parser. (The value range is already
corectly specified for instance for animation, and also for the
corresponing presentation attributes.)

[1] https://svgwg.org/svg2-draft/geometry.html#R
[2] https://svgwg.org/svg2-draft/geometry.html#RX
[3] https://svgwg.org/svg2-draft/geometry.html#RY
[4] https://svgwg.org/svg2-draft/painting.html#StrokeWidthProperty

Bug: 902346
Change-Id: I4b073288b97151d7a9df4b1c2ce99341dca9c8ee
Reviewed-on: https://chromium-review.googlesource.com/c/1304561
Commit-Queue: Eric Willigers <ericwilligers@chromium.org>
Reviewed-by: Eric Willigers <ericwilligers@chromium.org>
Cr-Commit-Position: refs/heads/master@{#609077}
bratell
Drop jumbo support for .S asm files
We don't need it and it doesn't work. It's probably been ok up
until now because we have never had more than one S file per
build target.

See errors at
https://ci.chromium.org/p/chromium/builders/luci.chromium.ci/Jumbo%20Win%20x64/22538

R=fs@opera.com

Change-Id: Idde99aba83e01c0111e5a50590e319993e0effaa
Reviewed-on: https://chromium-review.googlesource.com/c/1340312
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#608826}
bratell
Have linux-jumbo-rel build with non-goma jumbo chunk size
Currently linux-jumbo-rel, the CQ bot, builds with the default
jumbo chunk size, and since it uses goma that is 8. Building
with relatively small chunks (8) means that it doesn't notice
symbol clashes that happen with larger chunks so it's better to
build with the non-goma default, 50.

This will slightly reduce parallelism of builds, and might trigger
more files to be recompiled for changes, but it will also bring
along with it the benefits of larger jumbo chunks (less CPU cycles
spent per compiled cc file, faster linking) so it's not obvious
how it will affect performance, if at all.

Bug: 905588
Change-Id: I950ef63093f60580e98891aa0f556fa57b5d6628
Reviewed-on: https://chromium-review.googlesource.com/c/1337496
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#608822}
fs
Fix serialization of computed style for 'paint-order'
We were always serializing as the completed (all keywords present) form,
which is not the shortest canonical form.

 https://svgwg.org/svg2-draft/painting.html#PaintOrder

Fold the ComputedStyleUtils helper into the PaintOrder CSSProperty
class, since this is very specific to this property.

Matches WebKit and almost Gecko (which seems to handle some "two
keyword" cases differently.)

Bug: 904898
Change-Id: Ib796a111e601485e339fdf2739a587fb5f893b8a
Reviewed-on: https://chromium-review.googlesource.com/c/1335579
Commit-Queue: Eric Willigers <ericwilligers@chromium.org>
Reviewed-by: Eric Willigers <ericwilligers@chromium.org>
Reviewed-by: Rune Lillesveen <futhark@chromium.org>
Cr-Commit-Position: refs/heads/master@{#608623}
bratell
Restore the nonull warning in chrome/browser/ui for everything but mac
-Wno-null has been disabled for clang in chrome/browser/ui since 2015
but it seems to be enough to disable that warning for mac (the only
platform that used clang by default in 2015).

Bug: 383820
Change-Id: Iadc03f761c120db91fb806369ecf6f3bd8459c1c
Reviewed-on: https://chromium-review.googlesource.com/c/982057
Commit-Queue: Nico Weber <thakis@chromium.org>
Reviewed-by: Nico Weber <thakis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#608368}
mharanczyk
[IWYU] Add missing include in scoped_generic_unittest.h for std::make_unique.
Change-Id: Ie5725cd32fff43807e6f4129d7234ecf1143e14b
Reviewed-on: https://chromium-review.googlesource.com/c/1335575
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Commit-Queue: Marek Haranczyk <mharanczyk@opera.com>
Cr-Commit-Position: refs/heads/master@{#608306}
bratell
Remove references from .gn to third_party/mesa
third_party/mesa is no longer part of Chromium, and having it
listed here enforces gn checks for any product that still
checks out mesa in third_party (i.e. Google Chrome) which is
a problem.

Bug: 873321
Change-Id: If1c28fb2c393f04c9b0fe0703204fd7225a1a483
Reviewed-on: https://chromium-review.googlesource.com/c/1333812
Commit-Queue: Scott Graham <scottmg@chromium.org>
Reviewed-by: Scott Graham <scottmg@chromium.org>
Cr-Commit-Position: refs/heads/master@{#607653}
fs
Fixes and tweaks to wpt/css/filter-effects/
filter-contrast-003.html

  Adjust the color from #400000 to #3f0000, since (0x40 / 255) is just
  over 0.25 and can after filtering and rounding end up above 0.
  (0x3f / 255) on the other hand is just below 0.25 and the result will
  be clamped to zero.

filter-external-001-test.html
filter-external-002-test.html

  Change the hue-rotate parameter in the external file from 120 to 150.
  Move the file to support/ and remove lint entry.
  Make both filters operate in sRGB to make computing the reference
  easier. Use rgb(...) notation with percentage values in reference.

fecolormatrix-type.html

  Add color-interpolation-filters=sRGB to the filter to make it easier
  to reason about what the result should be. Use rgba(...) notation in
  the ref using percentage notation.

filters-test-brightness-003.html

  Add 'filter: brightness(0)' before 'filter: brightness()' to properly
  test if the "no argument" notation is considered valid by the parser.

filter-grayscale-001.html
filter-grayscale-002.html
filter-grayscale-003.html
filter-grayscale-004.html
filter-grayscale-005.html

  Remove the " (and not blue)" text from the reference and update the
  001,004 and 005 tests accordingly.

css-filters-animation-saturate.html

  Interpolate the argument from 4900% rather than 5000% to end at the
  ref's 2500% (25).

css-filters-animation-hue-rotate.html

  Sample the animation at .5 to match the expectation.

css-filters-animation-drop-shadow.html

  Use explicit rgba(...) in the ref rather than the keyword 'gray'.
  We're interpolating the color of the drop-shadow from 'black'
  (rgba(0, 0, 0, 1)) to 'transparent' (rgba(0, 0, 0, 0)) here, so it's
  better and more accurate to describe the color as "semi-transparent
  black" (rgba(0, 0, 0, 0.5)).

css-filters-animation-combined-001.html

  Initial value for animation for 'opacity(...)' is '1' - not zero.
  Change test to interpolate from 0 -> 1 (rather than 1 -> 1)

Bug: 903383
Change-Id: I4d0113989414616494b98c22fbac817f007cd762
Reviewed-on: https://chromium-review.googlesource.com/c/1333816
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#607628}
fs
Slimmer SVG enumeration tables
This replaces a Vector<std::pair<..., ...>> with a new SVGEnumerationMap
class that wraps a list of entries (also "pairs".) The setup of the map
is however not done runtime but rather compile time, saving a bunch of
code footprint in the process.

Change-Id: If2c77f1ebcf15dcf8fc75d6a25cacebf42401287
Reviewed-on: https://chromium-review.googlesource.com/c/1329974
Reviewed-by: Philip Rogers <pdr@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#607620}
bratell
[jumbo] Avoid using kSymbolKey name in the blink scope
There is a kSymbolKey in the public API and due to the new
enum shadow warnings, jumbo builds might combine the code in
such an order that the public blink::WebInputEvent::kSymbolKey
shadows the blink::{anonymous namespace}::kSymbolKey.

Note, there is no bug, just an unfortunate false warning and one
that only appears in rare jumbo builds.

Change-Id: Id575b2aef3b3f1be46d3722ed79454212bcf650e
Reviewed-on: https://chromium-review.googlesource.com/c/1333649
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#607606}
bratell
[ppapi] Merged two identical interface_name
In jumbo build experiments, two cc files both defined
interface_name<PPB_InputEvent_1_0>() which clashed since in
jumbo builds many cc files are compiled in the same translation unit.

This moves the shared code to a shared file.

Bug: 898475
Change-Id: I9ce58e837d663cb5c15ba2596c22812a41def4c0
Reviewed-on: https://chromium-review.googlesource.com/c/1297148
Reviewed-by: Bill Budge <bbudge@chromium.org>
Reviewed-by: Antoine Labour <piman@chromium.org>
Reviewed-by: Sam Clegg <sbc@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#607601}
bratell
Let gn check verify that blink/public dependencies are sane
We can't have gn check look through all of blink because it's
a messy monolithic pile of internal dependencies, but the
public API layer has strict rules that should be enforced by
gn check.

Also removing a mojo header from a build target since it's supposedly
already in a mojo build target and listing it here as well
makes gn check unhappy.

Bug: 898837
Change-Id: Id46485ffa4ffeb0c897f6d22e684f6d45d4804e6
Reviewed-on: https://chromium-review.googlesource.com/c/1307373
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Scott Graham <scottmg@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Cr-Commit-Position: refs/heads/master@{#607283}
fs
Use a table for CSSSelectorParser's custom pseudo element use counter
This if cascade consumes both a fair bit of footprint while it makes the
switch slightly less readable.

Change-Id: Ia8cb0d14ec831ccfcf7f22154a12f16d44fbc9ad
Reviewed-on: https://chromium-review.googlesource.com/c/1329147
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Rune Lillesveen <futhark@chromium.org>
Cr-Commit-Position: refs/heads/master@{#607223}
bratell
Avoid -Wshadow warnings related to content::UNINITIALIZED
Due to a new clang, a couple of shadowing warnings
appeared in existing code, related to enum values INVALID,
UNINITIALIZED and RUNNING. This patch moves both clashing
enums into enum classes.

Full errors below:

In file included from ./../../content/browser/renderer_host/input/synthetic_gesture.cc:10:
../../content/browser/renderer_host/input/synthetic_pointer_action.h:30:23: error: declaration shadows a variable in namespace 'content::(anonymous)' [-Werror,-Wshadow]
  enum GestureState { UNINITIALIZED, RUNNING, INVALID, DONE };
                      ^
./../../content/browser/browser_thread_impl.cc:36:3: note: previous declaration is here
  UNINITIALIZED = 0,
  ^
In file included from gen/content/browser/browser_jumbo_1.cc:505:
In file included from ./../../content/browser/renderer_host/input/synthetic_gesture.cc:10:
../../content/browser/renderer_host/input/synthetic_pointer_action.h:30:38: error: declaration shadows a variable in namespace 'content::(anonymous)' [-Werror,-Wshadow]
  enum GestureState { UNINITIALIZED, RUNNING, INVALID, DONE };
                                     ^
./../../content/browser/browser_thread_impl.cc:38:3: note: previous declaration is here
  RUNNING,
  ^
In file included from gen/content/browser/browser_jumbo_1.cc:505:
In file included from ./../../content/browser/renderer_host/input/synthetic_gesture.cc:10:
../../content/browser/renderer_host/input/synthetic_pointer_action.h:30:47: error: declaration shadows a variable in namespace 'content::(anonymous)' [-Werror,-Wshadow]
  enum GestureState { UNINITIALIZED, RUNNING, INVALID, DONE };
                                              ^
./../../content/browser/frame_host/ancestor_throttle.cc:52:3: note: previous declaration is here
  INVALID = 6,
  ^

TBR=avi@chromium.org

Change-Id: I2877006171e318dc43fe66ed4c2bcd558f6233a8
Reviewed-on: https://chromium-review.googlesource.com/c/1326498
Reviewed-by: Daniel Bratell <bratell@opera.com>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#606536}
bratell
Avoid shadowing problems with TOTAL_KEYWORDS and others
gperf can generate symbols directly into the global namespace
(in this case wrapped in "blink") or into more tight scopes.
Most of the code generates into a tight scope but not
css_property_names.cc. In a new clang a shadowing warning appeared
in jumbo builds because of it. There seems to be no downside
to using a reduced scope.

In file included from gen/third_party/blink/renderer/core/core_generated_jumbo_1.cc:152:
./gen/third_party/blink/renderer/core/css_value_keywords.cc:3612:7: error: declaration shadows a variable in namespace 'blink' [-Werror,-Wshadow]
      TOTAL_KEYWORDS = 842,
      ^
./gen/third_party/blink/renderer/core/css_property_names.cc:55:5: note: previous declaration is here
    TOTAL_KEYWORDS = 554,
    ^
In file included from gen/third_party/blink/renderer/core/core_generated_jumbo_1.cc:152:
./gen/third_party/blink/renderer/core/css_value_keywords.cc:3613:7: error: declaration shadows a variable in namespace 'blink' [-Werror,-Wshadow]
      MIN_WORD_LENGTH = 1,
      ^
./gen/third_party/blink/renderer/core/css_property_names.cc:56:5: note: previous declaration is here
    MIN_WORD_LENGTH = 1,
    ^
In file included from gen/third_party/blink/renderer/core/core_generated_jumbo_1.cc:152:
./gen/third_party/blink/renderer/core/css_value_keywords.cc:3614:7: error: declaration shadows a variable in namespace 'blink' [-Werror,-Wshadow]
      MAX_WORD_LENGTH = 42,
      ^
./gen/third_party/blink/renderer/core/css_property_names.cc:57:5: note: previous declaration is here
    MAX_WORD_LENGTH = 34,
    ^
In file included from gen/third_party/blink/renderer/core/core_generated_jumbo_1.cc:152:
./gen/third_party/blink/renderer/core/css_value_keywords.cc:3615:7: error: declaration shadows a variable in namespace 'blink' [-Werror,-Wshadow]
      MIN_HASH_VALUE = 18,
      ^
./gen/third_party/blink/renderer/core/css_property_names.cc:58:5: note: previous declaration is here
    MIN_HASH_VALUE = 9,
    ^
In file included from gen/third_party/blink/renderer/core/core_generated_jumbo_1.cc:152:
./gen/third_party/blink/renderer/core/css_value_keywords.cc:3616:7: error: declaration shadows a variable in namespace 'blink' [-Werror,-Wshadow]
      MAX_HASH_VALUE = 6641
      ^
./gen/third_party/blink/renderer/core/css_property_names.cc:59:5: note: previous declaration is here
    MAX_HASH_VALUE = 3587
    ^
5 errors generated.

Change-Id: I03ffd31e0b6731b2e8bacb1e7222be5defce3ea4
Reviewed-on: https://chromium-review.googlesource.com/c/1326500
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#606535}
fs
Handle word-spacing for leading white space on SVG text
SVGTextLayoutEngineSpacing checking if the current and last characters
were non-nuls before attempting to apply word-spacing. This would mean
that we'd never add word-spacing at the beginning of a text box.
Remove the checks for non-nuls.

Bug: 902839
Change-Id: I751e1bd1317f7411960d137b7e55a3b83e8cb0df
Reviewed-on: https://chromium-review.googlesource.com/c/1326156
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#606528}
bratell
Put a bluetooth enum in an enum class to shadowing errors
A bluetooth enum was putting some common names like "SUCCESS",
"UNKNOWN" and "FAILED" in the content namespace. A recent
clang (I think) added new warnings when these got
got shadowed by other uses of the names. See full error below.

This enum was always intended to be in an enum class judging from
how it's used, so just use enum class to avoid further clashes.

This primarily affected jumbo builds but could happen to any build
which happened to include two conflicting headers in the same file.

../../content/browser/histogram_synchronizer.h:54:5: error: declaration shadows a variable in namespace 'content' [-Werror,-Wshadow]
    UNKNOWN,
    ^
../../content/browser/bluetooth/bluetooth_metrics.h:228:3: note: previous declaration is here
  UNKNOWN = 5,
  ^
In file included from gen/content/browser/browser_jumbo_1.cc:170:
In file included from ./../../content/browser/devtools/devtools_instrumentation.cc:16:
../../content/browser/frame_host/navigation_request.h:68:5: error: declaration shadows a variable in namespace 'content' [-Werror,-Wshadow]
    FAILED,
    ^
../../content/browser/bluetooth/bluetooth_metrics.h:229:3: note: previous declaration is here
  FAILED = 6,
  ^
In file included from gen/content/browser/browser_jumbo_1.cc:247:
In file included from ./../../content/browser/download/drag_download_file.cc:5:
../../content/browser/download/drag_download_file.h:53:37: error: declaration shadows a variable in namespace 'content' [-Werror,-Wshadow]
  enum State {INITIALIZED, STARTED, SUCCESS, FAILURE};
                                    ^
../../content/browser/bluetooth/bluetooth_metrics.h:223:3: note: previous declaration is here
  SUCCESS = 0,
  ^

TBR=jyasskin@chromium.org

Change-Id: I2f35c1c11262e4f071cf1d64348c9bc30c76351b
Reviewed-on: https://chromium-review.googlesource.com/c/1326507
Reviewed-by: Daniel Bratell <bratell@opera.com>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#606520}
bratell
Avoid shadowing UNKNOWN (defined in both quic and ftp)
If you include both net/ftp/ftp_directory_listing_parser.h and
net/quic/quic_chromium_client_session.h you get an error
about an UNKNOWN shadowing another UNKNOWN. I don't think this
is a new problem but something we got with a new clang version.

This renames the net::UNKNOWN to net::UNKNOWN_CAUSE so that
net::FtpDirectoryListingEntry::UNKNOWN and other unknown
UNKNOWNs can stay.

net/ftp/ftp_directory_listing_parser.h:21:5: error: declaration shadows a variable in namespace 'net' [-Werror,-Wshadow]
    UNKNOWN,
    ^
net/quic/quic_chromium_client_session.h:83:3: note: previous declaration is here
  UNKNOWN,
  ^
1 error generated.

TBR=zhongyi@chromium.org

Change-Id: I96c6c8ba3b923a691537debbfe468874c767b939
Reviewed-on: https://chromium-review.googlesource.com/c/1326494
Reviewed-by: Daniel Bratell <bratell@opera.com>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#606509}
bratell
Make it easier to surgically exclude targets from jumbo
Currently disabling jumbo for a build target in a local build means
that you also disable jumbo for all other targets with the same local
name, and giving a fully qualified label as name won't work at
all. This patch changes the matching to be more flexible so that you
can supply both a local name (as before) but also a full path or
qualified name like //third_party/blink/renderer/core/svg:svg

Bug: 825240
Change-Id: I706e4d7c3f863a7996e576d36ddd62ac81b8cb12
Reviewed-on: https://chromium-review.googlesource.com/c/1323110
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Wojciech Dzierżanowski <wdzierzanowski@opera.com>
Cr-Commit-Position: refs/heads/master@{#606433}
fs
Remove fast/hidpi/image-srcset-relative-svg-canvas{,-2x}.html expectations
Does not appear to be flaky anymore.

TBR=schenney@chromium.org

Bug: 306222
Change-Id: I4e381ca9d89e5495cb98286e0fd387b94d67c125
Reviewed-on: https://chromium-review.googlesource.com/c/1326008
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#606413}
bratell
Unleak blink's internals from web_graphics_context_3d_provider.h
A change included an internal blink header in the public api
layer which then leaked parts of blink's internal out into the
wild dangerous world outside. This is a quick fix to close that
leak. Might need some tuning.

Bug: 902022
Change-Id: I076f4c5d0a27cd4c3070d8fe8a5be97f2f65e1e0
Reviewed-on: https://chromium-review.googlesource.com/c/1323715
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: enne <enne@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#606409}
bratell
Remove using namespace from components/signin code
The using namespace construct is disallowed in the code style guide.
It also causes issues (compilation warnings turned into errors)
in jumbo builds since they will be in a "header context" there
which is explicitly blocked by our compiler settings.

This patch also has a bit of a feature creep to remove a number
of unnecessary static_casts that made the code hard to read,
especially with the namespaces.

Change-Id: Icaa4968695a6f033868aac681a9ebe08eee75c3e
Reviewed-on: https://chromium-review.googlesource.com/c/1320131
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Mihai Sardarescu <msarda@chromium.org>
Cr-Commit-Position: refs/heads/master@{#606113}
fs
Reenable fast/hidpi/image-srcset-relative-svg-canvas{,-2x}.html
Hopefully these tests are no longer flaky, but as a cautionary step,
mark them as Pass/Fail for now and keep an eye on them.

TBR=schenney@chromium.org

Bug: 306222
Change-Id: Ia0e87564e2113dfaa50cd723654786805026924d
Reviewed-on: https://chromium-review.googlesource.com/c/1322789
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#606010}
bratell
Jumbo build fix: Rename some test constants in peerconnection
In jumbo builds many cc files compile in the same translation
unit. That means that they also share the same anonymous namespace
(which is per translation unit, not per file which would have
been better). In https://chromium-review.googlesource.com/c/1316836
and https://chromium-review.googlesource.com/c/1315534 two
peerconnection tests each added a kWriteBufferSize and a
kDelegateReadBufferSize with different values which broke
some jumbo build configurations (unluckily not the one in CQ but
some in fyi builders).

This renames the variables to have more unique names.

TBR=shampson@chromium.org,hbos@chromium.org

Bug: 874296
Change-Id: Ifc8af2be440f7a959b948c05e18deaf55aeefad2
Reviewed-on: https://chromium-review.googlesource.com/c/1322709
Reviewed-by: Daniel Bratell <bratell@opera.com>
Reviewed-by: Henrik Boström <hbos@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#606002}
fs
Need to walk ancestors when text descendants of LayoutSVGText changes
In LayoutSVGText::InvalidatePositioningValues - which is called when a
number of different modifications to text is performed - we only flagged
the node itself for layout/paint invalidation. We also need to walk the
ancestor chain in case the text is a descendant of a resource.
(A <clipPath> in this specific case.)

Bug: 901851
Change-Id: Ia70860107616496e979c43a1d1a681def8b8c206
Reviewed-on: https://chromium-review.googlesource.com/c/1320069
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#605789}
bratell
Use not_needed() rather than asserts to avoid warnings in jumbo.gni
gn has a function not_needed() intended to avoid "Variable is not
used" errors in gni files. So far the code has used asserts for the
same purpose but it is better to use the function intended for the
purpose.

Change-Id: I5ec7e50c4089b265e104aaede24d0e4e50452cef
Reviewed-on: https://chromium-review.googlesource.com/c/1314588
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#605338}
fs
Remove Settings::is_shadow_page_ and its setter/getter
The referenced bug seems to be fixed, and nothing seems to read the
flag (anymore.)

Change-Id: I9975182364e9344e2dde88cb70211e78b10b69c1
Reviewed-on: https://chromium-review.googlesource.com/c/1314634
Reviewed-by: Luna Lu <loonybear@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#605222}
bratell
GetClassName is a Win32 macro, use a different name in AXVirtualView
In jumbo builds, AXVirtualView::GetClassName sometimes expanded to
AXVirtual::GetClassNameW (but not always). This caused build breakage.

Rather than carefully ensuring that ui/views/accessibility is compiled
with the same GetClassName macro every time (be it defined or
not defined), just rename it to get the build going.

If the undef method is to be used, it needs be in the header file, but
then it will also affect View::GetClassName and that is another can
of worms. It's possible GetClassName should be added to
base/win/windows_types.h which could be used everywhere, but that
is a larger fix than just getting the build working again.

TBR=nektar@chromium.org,dmazzoni@chromium.org

Bug: 811277
Change-Id: I8e5a8b71f21d57ef03a5c5e58bee84b5b99b2abd
Reviewed-on: https://chromium-review.googlesource.com/c/1314488
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#604892}
bratell
[jumbo][extensions] Give two kPrefsName unique names
In jumbo builds many cc files compile in the same translation unit
which also means that they share the same anonymous namespace. That
means that constant names need to be unique in the whole build
target even if they are in anonymous namespaces.

A service worker extension just introduced a second kPrefsName into
extensions/browser which broke some (but not all) jumbo build
configurations. This patch renames them both to prevent
confusion (from compiler or human).

TBR=lazyboy@chromium.org,rdevlin.cronin@chromium.org

Bug: 889687
Change-Id: I6d3d44d9941038cc8e2304bc3100c7e681ea18a9
Reviewed-on: https://chromium-review.googlesource.com/c/1314468
Reviewed-by: Daniel Bratell <bratell@opera.com>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#604882}
bratell
Do more gn check of third_party/*
More of third_party/* has been made gn check clean and this CL
enables it for another 14 directories. Most (but not all) of the
rest look non-trivial.

Bug: 898837
Change-Id: I95c7348d8c1fa0bf85e0345aaaa9228f971a300e
Reviewed-on: https://chromium-review.googlesource.com/c/1309743
Reviewed-by: Scott Graham <scottmg@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#604365}
bratell
[jumbo] Give two GetPromoStringSpecifier() functions unique names
In jumbo builds many cc files compile together in the same
translation unit and then they share the same anonymous namespace.
That means that within a (jumbo) build target, also symbols in
anonymous namespaces need (build target) unique names.

In a recent patch, two GetPromoStringSpecifier functions appeared.
They are almost identical but not quite, so this patch just
gives them unique names to make all jumbo build configurations
happy again. Most jumbo build configurations were already happy
because the relevant files did not easily end up in the same
jumbo chunk.

See https://chromium-review.googlesource.com/c/1298394

TBR=collinbaker@chromium.org,bsep@chromium.org,nyquist@chromium.org,robliao@chromium.org

Change-Id: I5f244fc6a4e5b2047f2fdb443d0e40565c8bc103
Reviewed-on: https://chromium-review.googlesource.com/c/1309739
Reviewed-by: Daniel Bratell <bratell@opera.com>
Reviewed-by: Robert Liao <robliao@chromium.org>
Commit-Queue: Robert Liao <robliao@chromium.org>
Cr-Commit-Position: refs/heads/master@{#604284}
fs
Fix ancestor bounding box for "disabled" <foreignObject> and <image>
Per:

 "A value of zero for either width or height disables rendering of the
  element and its embedded content."

 (https://svgwg.org/svg2-draft/embedded.html#Placement)

and:

 "For each descendant graphics element child of parent:
  * If child is not rendered then continue to the next descendant
    graphics element."

 (https://svgwg.org/svg2-draft/coords.html#BoundingBoxes)

<foreignObject> / <image> with 'width' or 'height' zero should not
contribute to an ancestor container's bounding box.

Bug: 643493
Change-Id: I097d9d28faaa52fc793dab251f22bc7b2610d6ad
Reviewed-on: https://chromium-review.googlesource.com/c/1309773
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#604276}
bratell
[zlib] Make build system pass gn check
There are some circular include dependencies in the zlib
build system because some parts are extracted into their
own targets. To make gn check understand that, those targets
need to be added to the allow_circular_includes_from list.

Bug: 898837
Change-Id: Ic94c5f5ac88e10792b458f4d734c4ad0487023c2
Reviewed-on: https://chromium-review.googlesource.com/c/1299135
Reviewed-by: Chris Blume <cblume@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#604210}
bratell
Move cacheinvalidation testing file to a testing build target
This allows third_party/cache_invalidation to be checked
with gn check (as soon as it's enabled in //.gn).

Bug: 898837
Change-Id: Ica669d8a7277178878d630b54879e1439350f566
Reviewed-on: https://chromium-review.googlesource.com/c/1307496
Reviewed-by: Nicolas Zea <zea@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#604196}
bratell
Correct abseil dependencies to make it possible to run gn check
//third_party/abseil-cpp is currently excluded from
gn check because of a couple of dependency fails. This patch
tries to fix those.

Most complicated is the dependency to gmock. The code does
include "gmock/gmock.h" which gn will see as a dependency on
//third_party/googletest:gmock.

Bug: 898837
Change-Id: I2c1d33935511e790e1343cb59db11908cf4fab15
Reviewed-on: https://chromium-review.googlesource.com/c/1307497
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Patrik Höglund <phoglund@chromium.org>
Cr-Commit-Position: refs/heads/master@{#603976}
bratell
Removing dependency from blink/public to media/base
There is no reasonable target to depend on to get access
to media/base/video_rotation (depending on all of //media
seems to be the only way) so to clean up dependencies from
blink/public, forward declare the enum.

Better solutions are welcome.

Bug: 800764

Change-Id: Ic5079fbb11c6be189a3fc658ea9d10764c0149e5
Reviewed-on: https://chromium-review.googlesource.com/c/1301521
Reviewed-by: Dale Curtis <dalecurtis@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#603854}
bratell
Moving common_export.h to blink's public folder
common_export.h was kept out of public since it was not to be
directly included by users of blink's public API but that made
dependency tracking unnecessarily complicated and it was included
indirectly anyway since many public headers included it.

This patch moves the header to blink's public/common. It's still
not to be include by external blink API users, but there is also
no reason for them to do it. This allows us to remove the dependency
hacks and makes dependency checks easier.

Bug: 800764

Change-Id: I834f389f9c1871a5e1e66b2fa69477b7eb40e0a0
Reviewed-on: https://chromium-review.googlesource.com/c/1301467
Commit-Queue: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#603654}
fs
Use clampTo<int> in SVGInteger::CalculateAnimatedValue
Matches what we do in SVGIntegerOptionalInteger::CalculateAnimatedValue,
and avoids undefined overflow.

Bug: 899445
Change-Id: I1250a05482713780f707301ed29e015fd81e65f2
Reviewed-on: https://chromium-review.googlesource.com/c/1304483
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#603548}
bratell
Remove non-existing headers from openh264 sources list
openh264 sources lists referred to two non-existing headers which
prevented gn check from successfully working on that code. This
patch removes those headers from the sources list. One of them
(utils.h) does exist but with another path, and it's already included
with that path,

Change-Id: Ie0a1e7e0b48295a28e9a89651e07800a70a36154
Reviewed-on: https://chromium-review.googlesource.com/c/1298956
Reviewed-by: Henrik Boström <hbos@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#603483}
fs
Add use counter for SVG geometry properties unitless values
Add the kSVGGeometryPropertyHasNonZeroUnitlessValue use counter for
non-zero unitless (<number> / "user units") values in the 'x', 'y', 'r',
'rx', 'ry', 'cx' and 'cy' properties.

Bug: 899074
Change-Id: I1a7e6cdce018a75ed46745ec245dabcaed5ea954
Reviewed-on: https://chromium-review.googlesource.com/c/1301597
Reviewed-by: Rune Lillesveen <futhark@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#603454}
bratell
[jumbo] resolve ::switches / ::extensions::switches confusion
There is both a top level namespace ::switches and a sub
namespace ::extensions::switches so inside extensions,
if both namespaces are known to the compiler, you need to
clarify which one you want. This is the reason the code
style guide prohibits sub namespaces with the same name as
common top level namespaces.

This is a quick fix to make some jumbo builds happy. I am not sure
exactly what commit triggered this, but it can easily happen just
by adding an include somewhere.

TBR=hubbe@chromium.org

Change-Id: I22d742aa1645aa1b37317524e9b1aa18e91d2fd3
Reviewed-on: https://chromium-review.googlesource.com/c/1303362
Reviewed-by: Daniel Bratell <bratell@opera.com>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#603452}
bratell
Remove s2.h from s2cellid sources lists
Not all sources lists have been kept up to date with code
movement/removal and it seems to make some isolate steps in
cq sad for some CLs (mine).

Change-Id: I656a0a2f3aeaded7cace52ebc39cf80e1907163b
Reviewed-on: https://chromium-review.googlesource.com/c/1288872
Reviewed-by: Jia Meng <jiameng@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#603437}
bratell
Delete unused WebCanonicalCookie::BuildCookieLine()
The BuildCookieLine() function violated layering by using
internal blink types in the blink public API but since it
wasn't used anyway it can just be deleted.

Also hide the export include from gn since it's an ugly
exception, just for debug component builds.

Bug: 800764

Change-Id: I7381e68f801e6037667d254d690faa376461e9da
Reviewed-on: https://chromium-review.googlesource.com/c/1301469
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#603371}
bratell
Remove dependency from blink/public to webrtc/p2p
As part of making blink/public's dependencies automatically
checked by gn, this is one dependency that was unintended and
unnecessary. Moving the dependency into platform/export makes
for a cleaner API.

Bug: 800764

Change-Id: I4e5f2095bddc4e51de08ed16db51c248884dfd5f
Reviewed-on: https://chromium-review.googlesource.com/c/1301468
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#603370}
bratell
Remove WebThread code violating dependency rules from blink/public
blink/public can't depend on internal blink code but luckily
the code that was violating this was unused so it could just be
deleted.

Bug: 800764

Change-Id: Id487e43362931677e93e15d736e7e74922103be0
Reviewed-on: https://chromium-review.googlesource.com/c/1301522
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#603369}
bratell
Updated the .gn check_targets list to include all* of third_party/*
gn check by default only works on those targets that are listed in
check_targets, and since we can't whitelist all of //third_party,
every sub-folder has to be individually listed. Some were listed
before but this adds another two hundred.

5-10% of the folders are still excluded because they have one or
more internal check problems. Specifically third_party/blink is
not included yet. Working on it.

Bug: 898837
Change-Id: Ia2a2cc14c00ecfdb956eb553664efe46356dedc3
Reviewed-on: https://chromium-review.googlesource.com/c/1299086
Reviewed-by: Scott Graham <scottmg@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#603156}
bratell
Making it (almost) possible to gn check blink/public/*
Mostly it's about marking includes inside INSIDE_BLINK as
// nogncheck

Also some added dependencies on for instance //media to cover
an include of "media/base/video_rotation.h" and on various
mojo headers.

There are five errors left which look like real layer violations.

Bug: 800764
Change-Id: Ie63283def2dadc6c0b5933175551e9addb9da5ec
Reviewed-on: https://chromium-review.googlesource.com/c/1299142
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#603072}
fs
Remove 'using' directives in web_idb_cursor_impl_unittest.cc
All of the 'blink::*' directives should be unnecessary (now that the code
is within Blink.) Remove the testing::StrictMock 'using' too, and just
"expand" it at its single usage point.

Change-Id: I3171d05f41364fa134c2ee781e93178d831d4eab
Reviewed-on: https://chromium-review.googlesource.com/c/1301458
Commit-Queue: Victor Costan <pwnall@chromium.org>
Reviewed-by: Victor Costan <pwnall@chromium.org>
Cr-Commit-Position: refs/heads/master@{#603049}
fs
[jumbo] Remove 'using' declaration for mojom::blink::IDBCursor
The lone 'IDBCursor' can collide with the blink::IDBCursor. Remove the
'using' and specify the namespace instead.

TBR=pwnall@chromium.org

Bug: 717812
Change-Id: I092b6d3c30931f45d13fd5c35af24539884fa686
Reviewed-on: https://chromium-review.googlesource.com/c/1301434
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#603039}
bratell
Correct the spelling of a file in libxslt's sources list
Not all sources lists have been kept up to date with code
movement/removal and it seems to make some isolate steps in
cq sad for some CLs (mine).

Change-Id: I1bef29f477965e254e955970b1ab2471eb956f66
Reviewed-on: https://chromium-review.googlesource.com/c/1288870
Commit-Queue: Scott Graham <scottmg@chromium.org>
Reviewed-by: Scott Graham <scottmg@chromium.org>
Cr-Commit-Position: refs/heads/master@{#602810}
bratell
[ppapi] undef MemoryBarrier on Windows to avoid atomicops clash
MemoryBarrier is a macro in some versions of the Win32 API and it's
also a name in the base/atomicops.h API. If windows.h is included
after atomicops.h, further use of the atomicops API will fail
unless MemoryBarrier is undefined. See base/atomicops.h for more info.

Bug: 898475
Change-Id: I4a4be93d534f54a5758dc09d1b1e52c1f2bee79c
Reviewed-on: https://chromium-review.googlesource.com/c/1299139
Reviewed-by: Antoine Labour <piman@chromium.org>
Reviewed-by: Bill Budge <bbudge@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#602793}
bratell
Correct a header path for sync.h in libsync
Not all sources lists have been kept up to date with code
movement/removal and it seems to make some isolate steps in
cq sad for some CLs (mine).

Change-Id: I37b2cff42454a5f4c49eb947289c279701639868
Reviewed-on: https://chromium-review.googlesource.com/c/1288972
Reviewed-by: Antoine Labour <piman@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#602773}
bratell
[flatbuffers] Make build system pass gn check
There were some broken dependencies that gn check reported
errors for which were easily fixed by moving relevant headers
to :flatbuffers. The other targets depend on :flatbuffers so
they can still use those headers.

Bug: 898837
Change-Id: I259a7e5d781ea17e667b6e6469a1133e875ec7b8
Reviewed-on: https://chromium-review.googlesource.com/c/1299137
Reviewed-by: Balazs Engedy <engedy@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#602753}
bratell
[libaddressinput] Make build system pass gn check
There were some missing headers that gn check found in
third_party/ced instead (string_util.h is a common name) and
then complained that libaddressinput can't include files from
third_party/ced. This adds those headers and some more.

It doesn't add the public headers since those have no natural
position in the dependency tree (used externally, and by util).

Bug: 898837
Change-Id: Iec0d622c0da861d149f86267eebafa63221d3906
Reviewed-on: https://chromium-review.googlesource.com/c/1299000
Reviewed-by: Mathieu Perreault <mathp@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#602712}
fs
Insert an error message block when parsing was stopped after an error
The <parsererror> element was not being added to the parsed document in
certain cases involving attribute parsing. For example, if an undeclared
namespace prefix was used in the document, then parsing would stop, but
a <parsererror> element would not be inserted into the document to
indicate that a parsing error occurred.

When XMLDocumentParser::StopParsing() is called to stop parsing, call
InsertErrorMessageBlock() to insert the <parsererror> element if an
error occurred.

Based on https://codereview.chromium.org/771493002/ by dtrebbien@gmail.com

Bug: 295809, 898775
Change-Id: Ic67a3ab885fae4b01ca92f6d927b3f523f7423ed
Reviewed-on: https://chromium-review.googlesource.com/c/1224791
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Cr-Commit-Position: refs/heads/master@{#602674}
bratell
[ppapi] Renamed two global variables and types in ppapi/proxy
In jumbo build experiments, the different
InstanceToDispatcherMap types and g_instance_to_dispatcher
globals ended up in the same translation unit and thus the same
anonymous namespace where the symbols clashed. This just renames
them as Dispatcher -> PluginDispatcher/HostDispatcher.

Bug: 898475
Change-Id: Ieae4310fdbe7ea27954011964d2bb6fa4d83e338
Reviewed-on: https://chromium-review.googlesource.com/c/1297145
Reviewed-by: Antoine Labour <piman@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#602647}
bratell
[ppapi] Merged three RunCallback methods doing the same thing
In jumbo build experiments, the different RunCallback functions
ended up in the same translation unit and thus the same
anonymous namespace where the symbols clashed. Since they,
and VideoDecoderResource::RunCallbackWithError had the same
implementation, this merges the functions into a shared
SafeRunCallback.

Bug: 898475
Change-Id: I3ee20972794d3c6ef73e49882e1ceba24c487e19
Reviewed-on: https://chromium-review.googlesource.com/c/1297427
Reviewed-by: Antoine Labour <piman@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#602646}
bratell
[jumbo] Change how jumbo.gni handles headers in sources
Up until now headers were removed from |sources| and then
reinserted. Cleaner/easier is to never remove them from the start.

Change-Id: I8f7560ef96f409880647e2924c2f71317f519468
Reviewed-on: https://chromium-review.googlesource.com/c/1290969
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#602363}
bratell
Adding bratell@opera.com as owner of build/config/*jumbo*
Original developer and main maintainer.

Change-Id: Ia7eacd431f2d83c30ffb5231745b8fcfab8ebd21
Reviewed-on: https://chromium-review.googlesource.com/c/1297135
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#602362}
bratell
[jumbo] Rename one of the OnNetworkServiceCrashed methods.
In jumbo builds, many cc files compile in the same translation
unit which means that they also share the same anonymous namespace.
This makes it necessary for constants and global scope functions
to have names that are unique in the build target.

This particular error only happens in extreme jumbo (many files
compiled at once) and not the more modest jumbo configurations
(8-50 files compiled at once) I think.

Change-Id: I86d15bcfd5c55db9592cb9423943d2e46b8f2e5c
Reviewed-on: https://chromium-review.googlesource.com/c/1297361
Reviewed-by: Łukasz Anforowicz <lukasza@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#602359}
fs
Update isPointInFill/isPointInStroke to match spec adjustments
Rather than using the value of the 'pointer-events' property (and
indirectly, the 'visibility' property and potentially others not
explicitly listed in the spec), pass 'fill' and 'stroke' respectively to
better match spec [1].

Use AsPath() in isPointIn{Fill,Stroke} instead of going to the
LayoutSVGShape, to hopefully allow the LayoutSVGShape to be stricter
about invariants.

[1] https://svgwg.org/svg2-draft/types.html#InterfaceSVGGeometryElement

Bug: 896638
Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I4f8ef5ae4e84d29187e68ca243e3344a9a27544c
Reviewed-on: https://chromium-review.googlesource.com/c/1288574
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Philip Rogers <pdr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#602018}
bratell
Fix spelling of crazy_linker_system.h in a sources lists
Not all sources lists have been kept up to date with code
movement/removal and it seems to make some isolate steps in
cq sad for some CLs (mine).

Change-Id: I030e6068e857de2957b4e20a3e53fc26af3017a8
Reviewed-on: https://chromium-review.googlesource.com/c/1288873
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#601909}
fs
An <img> with no 'src', no 'alt' but 'srcset' represents nothing
Based on [1], it would seem that we should treat the case where we have
no image candidate as representing nothing - this apparently also
matches what other UAs do.

Simplify the NoImageSourceSpecified helper function a bit. (IsNull
implies IsEmpty and !hasAttribute.)

[1] https://html.spec.whatwg.org/multipage/embedded-content.html#the-img-element:the-img-element-5

Bug: 897033
Change-Id: I37ecad8faea2b929e8cf35ce7c746313b2d3b915
Reviewed-on: https://chromium-review.googlesource.com/c/1293574
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#601648}
bratell
Remove duplicate plugin header in sources list
pepper/fullscreen_container.h sometimes appeared twice in
the sources list. This confused some other tools so it seems
like a good idea to only have it there once.

Change-Id: I02d88c68c6581eadb171ca5a5d72f75281c52717
Reviewed-on: https://chromium-review.googlesource.com/c/1293455
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#601550}
fs
Plumb HitTestLocation further in LayoutSVG*
Plumb HitTestLocation into clip-path handling and
LayoutSVGShape::*Contains.

Change-Id: Ibd4e433e868ac427e637f906ff3d778fd33e1a80
Reviewed-on: https://chromium-review.googlesource.com/c/1291409
Reviewed-by: Philip Rogers <pdr@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#601413}
bratell
Remove duplicate header wtf/test/string_statics.h from sources list
A header appeared twice in the sources list which confused some
other tool. Seems like better to have it there only once.

Change-Id: If713c5a241fab6e8fb30705240bc534e0598f704
Reviewed-on: https://chromium-review.googlesource.com/c/1290909
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#601331}
bratell
Remove deleted file ssl_validity_checker_android.h from build system
The file payments/android/ssl_validity_checker_android.h was
removed when the JNI registration code changed but it remained
in the sources list, where it ended up causing some unrelated
problems so here it goes.

Bug: 683256
Change-Id: I7e57af91ad5848c73d814fc4b89712d106ecf358
Reviewed-on: https://chromium-review.googlesource.com/c/1290271
Reviewed-by: Sergey Ulanov <sergeyu@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#601328}
bratell
For ios, only compile the necessary parts of //ipc.
Until recently ios didn't use //ipc but //services/network
needs some small parts of them. Some of the rest of the ipc
code won't even link in ios since ios has no
discarding some unused object files before noticing they referenced
non-existing symbols.

base: :WaitableEventWatcher. It's built so far thanks to the linker
Change-Id: Ieaf3749e1b4f0d8f46f652248b839ae9e8650282
Reviewed-on: https://chromium-review.googlesource.com/c/1273498
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#601218}
bratell
Remove headers in mojo and data_decoder sources list
Some headers appeared twice in some sources list. This confused
some other tools so it seems like a good idea
to only have them there once.

Change-Id: Ifa0c7b2e0fbb8b7ec401bad2737384cffa3d940a
Reviewed-on: https://chromium-review.googlesource.com/c/1290949
Reviewed-by: Jay Civelli <jcivelli@chromium.org>
Reviewed-by: Scott Violet <sky@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#601177}
bratell
Remove duplicate headers from base sources list
allocator/allocator_shim.h and base/base_paths_posix.h were
in base's |sources| list twice each in some configuration.
This removes the duplicates since that confused some tools.

Change-Id: I0dfbf796a73ce28fd66352afe0651e61058506eb
Reviewed-on: https://chromium-review.googlesource.com/c/1290910
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#601139}
bratell
Fixed misspelled references to browser_switcher headers
Some isolate step errors in trybots mentioned these non-existing
headers so hoping the trybots will be happier, this patch removes
and changes the names to point to existing files.

Bug: 881589
Change-Id: I6c7728110a9ce162293c57606824140cdacd8d38
Reviewed-on: https://chromium-review.googlesource.com/c/1286660
Reviewed-by: Julian Pastarmov <pastarmovj@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#601133}
bratell
Headers in :make_core_generated_css_value_id_mappings appeared twice
The target :make_core_generated_css_value_id_mappings was listed
twice which made its output be twice in some sources lists. This
confused some tools. Seems better to only have it there once.

R=fs@opera.com

Change-Id: I1da2cfbda7021fa5262d0c0a74b894989fc200de
Reviewed-on: https://chromium-review.googlesource.com/c/1290929
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#601105}
fs
Add TransformedHitTestLocation helper
This moves code for transforming a HitTestLocation using with an
AffineTransform from the helper function
SVGLayoutSupport::TransformToUserSpaceAndCheckClipping into a helper
class TransformedHitTestLocation.

Calls to SVGLayoutSupport::IntersectsClipPath are hoisted into callers
and SVGLayoutSupport::TransformToUserSpaceAndCheckClipping is removed.

Change-Id: I52f95ba2480df86a509285c2ec2edea776517bc6
Reviewed-on: https://chromium-review.googlesource.com/c/1282930
Reviewed-by: Chris Harrelson <chrishtr@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#601099}
bratell
Remove aes_via_ace.h from the the minizip sources lists
Not all sources lists have been kept up to date with code
movement/removal and it seems to make some isolate steps in
cq sad for some CLs (mine).

Change-Id: I5db5e075cf4d01783fb44660ee008ea0fa9a26c6
Reviewed-on: https://chromium-review.googlesource.com/c/1288871
Reviewed-by: Yuki Awano <yawano@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#601091}
bratell
Clean some harfbuzz-ng sources lists from headers that are gone
Not all sources lists have been kept up to date with code
movement/removal and it seems to make some isolate steps in
cq sad for some CLs (mine).

This is mostly that harfbuzz-ng has stopped using the suffix
"-private" on headers.

Change-Id: I6f3bd45378b011c8ea33fa98053c507fbdc68ed2
Reviewed-on: https://chromium-review.googlesource.com/c/1288791
Reviewed-by: Dominik Röttsches <drott@chromium.org>
Commit-Queue: Dominik Röttsches <drott@chromium.org>
Cr-Commit-Position: refs/heads/master@{#601089}
fs
Generalize computation of stroke bounds for LayoutSVGShape
Store the (stroke) geometry class in the LayoutSVGShape. This allows us
to compute stroke bounds in a slightly less "context-aware" way. This is
a step on the way to break up UpdateShapeFromElement into several steps.

We can also get rid of LayoutSVGPath::HitTestStrokeBoundingBox since we
now carry the information it provided in the geometry class.

The geometry class also replaces the LayoutSVGShape::affected_by_miter_
so it is removed, and replaced with a new kNoMiters class type.

Bug: 435097, 493888
Change-Id: I422b72451c6cea8045dea547a500984863e83a8d
Reviewed-on: https://chromium-review.googlesource.com/c/1288359
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Morten Stenshorne <mstensho@chromium.org>
Cr-Commit-Position: refs/heads/master@{#601081}
bratell
Remove references from blink/public to non-existing headers
An android specific block in BUILD.gn kept some references to
files that no longer existed after a cleanup in
https://chromium-review.googlesource.com/896839

This caused some local issues with trybots so it was time to
clean up the build files. Bye unnecessary code block.

Bug: 808221
Change-Id: I29ff4fc149fe408bd2a97517fbc338b408d13e7d
Reviewed-on: https://chromium-review.googlesource.com/c/1290272
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#601073}
bratell
Remove discard_reason.h from chrome sources lists
The file discard_reason.h was deleted when its content
moved into a mojom file in
https://chromium-review.googlesource.com/1176267 but
it was not removed from the sources lists. This caused
some local problems with trybot servers so here it goes.

Change-Id: I873bc5e643c87f83197b4f0512d2859371c1e005
Reviewed-on: https://chromium-review.googlesource.com/c/1288794
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Avi Drissman <avi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#601065}
bratell
Correct the path of some woff2 headers in sources lists
Not all sources lists have been kept up to date with code
movement/removal and it seems to make some isolate steps in
cq sad for some CLs (mine).

Change-Id: Ie643b34a044b927021ce8ad2774568973c328a3c
Reviewed-on: https://chromium-review.googlesource.com/c/1288793
Reviewed-by: Kunihiko Sakamoto <ksakamoto@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#601061}
bratell
Correct spelling of a crc32c header in BUILD.gn.
Not all sources lists have been kept up to date with code
movement/removal and it seems to make some isolate steps in
cq sad for some CLs (mine).

Change-Id: I5bfe35139a41ab5d88aca564b1f7a2ded5ebab06
Reviewed-on: https://chromium-review.googlesource.com/c/1288971
Commit-Queue: Daniel Bratell <bratell@opera.com>
Commit-Queue: Victor Costan <pwnall@chromium.org>
Reviewed-by: Victor Costan <pwnall@chromium.org>
Cr-Commit-Position: refs/heads/master@{#600818}
bratell
Clean some blink sources lists from headers that are gone
Not all sources lists have been kept up to date with code
movement/removal and it seems to make some isolate steps in
cq sad for some CLs (mine).

R=haraken@chromium.org

Change-Id: I2657e05f5df6079f4b493ea9a7df8ee6bbdbf544
Reviewed-on: https://chromium-review.googlesource.com/c/1288970
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#600817}
fs
Refactor computation of stroke bounds in LayoutSVGShape
Move all stroke bounds related computations into the
CalculateStrokeBoundingBox() method in LayoutSVGShape. Add a new enum
StrokeGeometryClass, and pass that as an argument to the method.
Currently all callsites use a constant argument value. This will be
modified in a future CL.

Split out computation of the bounds for non-scaling-stroke into a new
method CalculateNonScalingStrokeBoundingBox().

Also fold LayoutSVGShape::CalculateObjectBoundingBox() since it only has
a single caller.

Bug: 435097
Change-Id: I538b31f98dc7f0777e2538ef74b5e3553b435a7f
Reviewed-on: https://chromium-review.googlesource.com/c/1276770
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Philip Rogers <pdr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#600733}
fs
Remove ImageObserver::AnimationAdvanced
This is only called from test-code, and thus is dead in practice.
Replace uses in test-code with the the Changed() method.

Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I9cdf92314140e65c30bc2a901d34345bf128392d
Reviewed-on: https://chromium-review.googlesource.com/c/1286813
Reviewed-by: Khushal <khushalsagar@chromium.org>
Reviewed-by: Philip Rogers <pdr@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#600538}
bratell
Removed webdatabase/BUILD.gn references to deleted headers.
In February a number of obsolete header files were deleted but
some of them were still listed in sources lists. That might have
caused isolate step errors in trybots.

Bug: 778580
Change-Id: Ica026a5d157c64f07465f520a15ed2ffab92c234
Reviewed-on: https://chromium-review.googlesource.com/c/1286428
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#600492}
fs
Split out HitTestFragments from SVGInlineTextBox::NodeAtPoint
We can only ever hit the same Node in this loop, so even if the query
is penetrating/list-based we won't add more to the result if we would
happen to hit multiple fragments.

It's also easier to read and maybe slightly faster in some cases.

Change-Id: I3ce41ce58ef4a188d948690b1840d66e20ac0631
Reviewed-on: https://chromium-review.googlesource.com/c/1277792
Reviewed-by: Philip Rogers <pdr@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#600479}
bratell
Removed reference to deleted scheduler/util/thread_type.h
scheduler/util/thread_type.h was deleted in January but the
reference to it in BUILD.gn remained. Now that seems to make
the isolate step in trybots sad.

Bug: 776416
Change-Id: Iff685c54def879a8c5a53c9893f1c7eef4c9c13c
Reviewed-on: https://chromium-review.googlesource.com/c/1286851
Commit-Queue: Daniel Bratell <bratell@opera.com>
Commit-Queue: Alexander Timin <altimin@chromium.org>
Reviewed-by: Alexander Timin <altimin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#600455}
bratell
Removed reference to deleted speech_recognition_client.h
In chasing isolate step errors in trybots, this is removing some
dangling references from a BUILD.gn file (though it seems to be
a never-ending sequence of problems so whatever started generating
the isolate step errors should probably be reverted).

Bug: 781655
Change-Id: I09f530fa4a1e1cf3e1c0f15125eb8d9886f1038b
Reviewed-on: https://chromium-review.googlesource.com/c/1286818
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Adithya Srinivasan <adithyas@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#600448}
bratell
Create a windowsx_shim.h for windowsx.h patching
Despite existing undefs, windowsx.h macros cause troubles with
some jumbo builds. We can add more undefs, or we can change
approach to this, a windowsx_shim.h that solves the same
problem at one place instead of many.

The macros that have caused the most problems are IsMaximized,
IsMinimized and IsRestored which are common names to use in
code that manages windows.

Change-Id: Ib5f429aaeca4c35962c17a9973274e486b510c2f
Reviewed-on: https://chromium-review.googlesource.com/c/1280429
Reviewed-by: Scott Violet <sky@chromium.org>
Reviewed-by: Bruce Dawson <brucedawson@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#600422}
bratell
Removed BUILD.gn reference to non-existing void_callback.h
The file void_callback.h has never existed but there was
a VoidCallback.h in third_party/WebKit until February this year
when it was deleted in a cleanup.

This might have triggered isolate step errors on trybots.

Bug: 778580

Change-Id: I659c7ec456a8c21a274d1743d701061c798c7ace
Reviewed-on: https://chromium-review.googlesource.com/c/1286811
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#600418}
tmoniuszko
Add missing include to chrome_authenticator_request_delegate.cc
ListPrefUpdate is used in this file. It fails to compile with some build
configurations.

Change-Id: Icebb5b6f0ab59d4fad05ce3c1d2b6b64225f77ea
Reviewed-on: https://chromium-review.googlesource.com/c/1286467
Reviewed-by: Balazs Engedy <engedy@chromium.org>
Commit-Queue: Balazs Engedy <engedy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#600367}
bratell
[jumbo] Merge two identical kFaviconsPerCategoryImage constants
In some jumbo build experiments (not official) there was an
identical constant in two explore_sites files. In jumbo builds
many cc files are merged into one translation unit for much
faster compilation.

This moves the constant to a header where it can be reused.

Change-Id: Id460645a39d69999bf2227c25651d1149f1a6d6c
Reviewed-on: https://chromium-review.googlesource.com/c/1275895
Commit-Queue: Justin DeWitt <dewittj@chromium.org>
Reviewed-by: Justin DeWitt <dewittj@chromium.org>
Cr-Commit-Position: refs/heads/master@{#600172}
fs
Remove redundant hit-testing result handling in LayoutSVG{Container,Root}
The children/leaves (LayoutSVGShape et al) will handle this.
Cf. LayoutBox::HitTestChildren.

Move the code to SVGLayoutSupport::HitTestChildren, and share that
between the two users.

Change-Id: Ibad76d35d90b2738cc3b840e0762147ef5098b4d
Reviewed-on: https://chromium-review.googlesource.com/c/1278401
Reviewed-by: Chris Harrelson <chrishtr@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#599832}
fs
Path2D.addPath should throw if DOMMatrix validation fails
Step two of [1], invokes [2], whose step 1 invokes [3], which says to
throw a TypeError if the dictionary is not "well-formed".

Also remove some dead code in DOMMatrix/DOMMatrixReadOnly and remove few
unused includes of svg_matrix_tear_off.h.

[1] https://html.spec.whatwg.org/multipage/canvas.html#dom-path2d-addpath
[2] https://drafts.fxtf.org/geometry/#create-a-dommatrix-from-the-2d-dictionary
[3] https://drafts.fxtf.org/geometry/#matrix-validate-and-fixup-2d

Bug: 895244
Change-Id: Icd3f7058ce945d761ab7128e294ccc2e3fd3a879
Reviewed-on: https://chromium-review.googlesource.com/c/1278789
Reviewed-by: Fernando Serboncini <fserb@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#599723}
fs
Replace ShapeValue::IsImageValid with StyleImage::CanRender
The former looks like an open-coded version of the latter. Using the
latter will be more consistent (and future-safe.)

Change-Id: I3353d0181201df681779575d78fe0df22065a9e4
Reviewed-on: https://chromium-review.googlesource.com/c/1280447
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#599691}
bratell
Unduplicate GetHitTestQuery helper method.
Quickfix to resolve some jumbo build problems after a duplicate
instance of the GetHitTestQuery function was added.

Change-Id: I924ff8254e59d00a92170d09664c20328209103a
Reviewed-on: https://chromium-review.googlesource.com/c/1256688
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org>
Cr-Commit-Position: refs/heads/master@{#599628}
fs
Rename SVGLayoutSupport::PointInClippingArea to IntersectsClipPath
This function specifically checks only the shape(s) defined by the
'clip-path' property. It will also learn to handle more than just points
in the near future.

Change-Id: Icae665ff000ed5da2f7b0c5fad77411c856d176b
Reviewed-on: https://chromium-review.googlesource.com/c/1278402
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#599627}
bratell
Prepending switches by :: to not clash with safe_browsing::switches
There is both a ::safe_browsing::switches namespace and a ::switches
namespace. If you inside the safe_browsing namespace write |switches|
it will map to ::safe_browsing::switches if that namespace is known to
exist. In some jumbo builds where many cc files are compiled together
the compiler knows about that namespace and chooses it wrongly.

There is a style guide instruction to not use sub namespace names that
are identical to top level namespace names, probably for this reason,
so maybe all sub namespaces named |switches| should be given new
names, the same way that has already happened to some |features|
namespaces.

This patch is a small trivial fix, add a :: prefix to |switches| to
make it clear which |switches| namespace is intended.

Change-Id: I2f39ca26b2174455b94eeadd8b6cfb756248a6c9
Reviewed-on: https://chromium-review.googlesource.com/c/1278729
Reviewed-by: Varun Khaneja <vakh@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#599595}
bratell
Adding a const to a static char array
When a different static char broke the build (for unrelated
reasons), I looked through the tree for other static chars without
const. This was the only other one outside third_party and tests.

It's possible the generated machine code is the same, or it might
become better this way. Depends on the compiler/linker/OS.

Change-Id: I11a75cda4de25d468357f36e1afb23c79460ace8
Reviewed-on: https://chromium-review.googlesource.com/c/1278730
Commit-Queue: Victor Costan <pwnall@chromium.org>
Reviewed-by: Victor Costan <pwnall@chromium.org>
Cr-Commit-Position: refs/heads/master@{#599241}
ckulakowski
Set proper permissions for package's framework directory.
Bug: 893616
Change-Id: I09d5d906c3cb2e075e142a36b3ebe9b6532eb11f
Reviewed-on: https://chromium-review.googlesource.com/c/1271001
Reviewed-by: Robert Sesek <rsesek@chromium.org>
Commit-Queue: Robert Sesek <rsesek@chromium.org>
Cr-Commit-Position: refs/heads/master@{#599218}
fs
Enable ZoomAndPan in an "SVG document" without an <svg> document element
Disabling zoom and pan in this (odd special-)case leads to some weird
behavior, so just enable it instead to avoid confusion.

This takes care of one of the testcases mentioned in the referenced bug,
but does not address the real issue in any way.

Bug: 222786
Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I25d9cbf9cd10c1631d64fddcd133014b9602bcba
Reviewed-on: https://chromium-review.googlesource.com/c/1275886
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#598756}
bratell
[jumbo] Give two kNodeNumberLimit constants unique names
In jumbo builds many cc files compile together in the same
translation unit, and thus share the same anonymous namespace.
That means that constants need to have unique names in the
whole build target, and not just unique in the file.

This renames two constants, one that was just added/copied and
one that already existed to give them more descriptive, and
unique, names.

TBR=maxlg@chromium.org,skobes@chromium.org

Bug: 893068
Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I45ec9852370fb5572fd53e21136a21f1dd14e220
Reviewed-on: https://chromium-review.googlesource.com/c/1275891
Reviewed-by: Daniel Bratell <bratell@opera.com>
Reviewed-by: Steve Kobes <skobes@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#598730}
bratell
Remove impossible mojo/public/cpp/system file from nacl build
file_data_pipe_producer.cc refers to the base::File::File(path, flags)
constructor which does not exist (dangling symbol) in nacl builds. It
can work anyway if the whole object file is unused and gets ignored
by the linker. That didn't happen in jumbo build experiments where
file_data_pipe_producer.cc was combined with other files before being
compiled.

So let's not compile dead code that would not be possible to link anyway.

Change-Id: I39de768fb241bee2111bd29a516c5973951cdbd0
Reviewed-on: https://chromium-review.googlesource.com/c/1268320
Reviewed-by: Ken Rockot <rockot@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#598357}
bratell
Prevent X509_NAME collisions between Win32 and OpenSSL
Both OpenSSL/BoringSSL and some Windows headers define X509_NAME and
to avoid problems, we have wrapped wincrypt.h in crypto/wincrypt_shim.h.

The Win32 header xpsprint.h turned out to indirectly include wincrypt.h
so it too needed special treatment to not cause clashes with OpenSSL/
BoringSSL. This occurred when compiling chrome/service/cloud_printing with
jumbo, where OpenSSL and printing/backend/win_helper.h ended up in
the same translation unit.

Change-Id: I0dab33a4692b76817bc51ed355dad48e7ebe829b
Reviewed-on: https://chromium-review.googlesource.com/c/1258163
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Lei Zhang <thestig@chromium.org>
Cr-Commit-Position: refs/heads/master@{#598290}
bratell
net test_support uses Mac Security functions so link against those
keychain_test_util_mac.cc uses for instance SecKeychainCreate
which is a platform function. If that usage survives all the way
to the linker and nobody else links against Security.framework,
there will be a linker error.

This patch adds a lib dependency so that the function will always
be found. Normally this works anyway because usage of
for instance SecKeychainCrete will be removed before the linking
step thanks to dead object file removal.

Change-Id: I80bb38a2d2d79a7df525ab8c8ab90fcfeb12761f
Reviewed-on: https://chromium-review.googlesource.com/c/1268242
Reviewed-by: David Benjamin <davidben@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#597982}
bratell
Add a comment to generic_stop.icon to explain why it's not stop.icon
The file was added as stop.icon which broke some builds, was
renamed generic_stop.icon to unbreak those builds.
See https://chromium-review.googlesource.com/c/chromium/src/+/1261042

R=estade@chromium.org

Bug: 877702
Change-Id: If90932dac4868053748e25f2d0f0dd15876087cc
Reviewed-on: https://chromium-review.googlesource.com/c/1269730
Reviewed-by: Evan Stade <estade@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#597928}
bratell
Renamed some duplicate symbols in Blink paint timing code
image_paint_timing_detector.cc and text_paint_timing_detector.cc
are similar and had identically named helper functions. This
broke some jumbo builds. This patch renames the helper functions
to have unique names.

Bug: 869924
Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I0a42ef4f647ea0b5bfb80bf9dc363a0650424efd
Reviewed-on: https://chromium-review.googlesource.com/c/1268135
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#597517}
bratell
Move crypto/wincrypt_shim.h to remove build dependency on crypto
The DEPS system and gn will enforce some kind of dependency on
//crypto if code needs to use crypto/wincrypt_shim.h. Now, that
header file will not in itself indicate a dependency on actual
code in //crypto so the dependency becomes a bit unexpected. By
moving it to base/win, code can avoid depending on //crypto just
to use that header file.

This became an issue when //printing needed to use wincrypt_shim.h

Change-Id: I68a3b8263da0d4307907a0b242444402675072a4
Reviewed-on: https://chromium-review.googlesource.com/c/1261024
Reviewed-by: Bruce Dawson <brucedawson@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Reviewed-by: David Benjamin <davidben@chromium.org>
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#597256}
bratell
Break up dependency cycle between search_engines and omnibox
In 2015 a dependency from search_engines to omnibox was created
and it's created a cycle that causes linking problems in some
ios+jumbo configurations. It works without jumbo because the cycle
will be part of a dead .o file which will be ignored by the linker.
With jumbo the .o file is not 100% dead anymore since dead and live
code will be mixed in it.

Bug: 488901
Change-Id: I4b36a1b4e9f46a2814d9562f288e55dadc63d9dd
Reviewed-on: https://chromium-review.googlesource.com/c/1254082
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Mark Pearson <mpearson@chromium.org>
Reviewed-by: Vasilii Sukhanov <vasilii@chromium.org>
Cr-Commit-Position: refs/heads/master@{#597093}
fs
Avoid resolving the URL twice when initiating image loads
Rather than resolving the URL again during Task::Create, pass the KURL
resolved by ImageLoader::UpdateFromElement through.
Also move the resolution before the |loading_image_document_| special-
case.

Bug: 889183
Change-Id: I52ea65d1af96a5919e128f0623fa6bd9026850f7
Reviewed-on: https://chromium-review.googlesource.com/c/1254266
Reviewed-by: Hiroshige Hayashizaki <hiroshige@chromium.org>
Reviewed-by: Takashi Toyoshima <toyoshim@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#597071}
bratell
Avoid creating a local mojom namespace that confuses symbol lookup
A local mojom namespace meant that it became ambigious inside the
content namespace whether "mojom" meant "::mojom" or
"::content::mojom". This problem surfaced in jumbo build experiments
where the compiler knew about the ::content::mojom namespace. In
most builds the compiler only knows about ::mojom and then it
compiles.

Bug: 746953
Change-Id: Ifec37f45009693d7e41eb393ca9bbea136f884b2
Reviewed-on: https://chromium-review.googlesource.com/c/1256926
Reviewed-by: Camille Lamy <clamy@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#596665}
fs
Replace WebStringToGURL with KURL::operator GURL in NetworkUtils
This allows reusing the data from the KURL - i.e does not require
performing canonicalization again.

Bug: 889183
Change-Id: I10e5f9b3725a0fb25594bc6dbe61791bb3826fe9
Reviewed-on: https://chromium-review.googlesource.com/c/1257927
Reviewed-by: Jochen Eisinger <jochen@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#596663}
fs
Perform a cycle check on the <use> target up front
Rather than deferring the check until ExpandUseElementsInShadowTree
(which will fail if the initial target is an ancestor of the <use>),
just check for cycles directly in BuildShadowAndInstanceTree(), and
don't build the initial shadow tree if the cycle check fails.
Stop cleaning up the partial tree after ExpandUseElementsInShadowTree(),
and adjust HasCycleUseReferencing such that it detects cycles earlier
(not requiring a clone into the shadow tree before a cycle can be
noticed.)

Behavior-wise this means that we now don't clone a target subtree if it
will create a cycle. We will however abort cloning of nested <use> after
a cycle is detected.

Bug: 397525
Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I1b2c22bacb63d788509ec7984ac35357b84a3020
Reviewed-on: https://chromium-review.googlesource.com/c/1258065
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Philip Rogers <pdr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#596652}
bratell
Rename some newly added k...Key constants that broke jumbo builds
The new extensions_internals_source.cc code used the same constants
as extension_basic_info.cc, and since in some jumbo builds those
files compile in the same translation unit, those clashed.

This is a quick rename to give the clashing variables unique names
to make builds happy again. An alternative solution would be to
reuse the variables if they have the same value (the linker will
(probably?) merge them anyway so probably no wasted binary size).

TBR=dbertoni@chromium.org,rdevlin.cronin@chromium.org

Bug: 891788
Change-Id: Ia7342f249c9bb0cdb6697e8be00413879b26d284
Reviewed-on: https://chromium-review.googlesource.com/c/1261104
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#596572}
bratell
kStopIcon is a constant in the OSX APIs so rename kGenericStopIcon
Jumbo Mac fyi builder broke when a kStopIcon was introduced in
https://chromium-review.googlesource.com/c/chromium/src/+/1239010
because the OSX API has a kStopIcon in
.../MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/System/Library/Frameworks/Carbon.framework/Frameworks/HIToolbox.framework/Headers/Dialogs.h

This renames it to kGenericStopIcon to make the builds go again.

TBR=jrw@chromium.org,estade@chromium.org

Bug: 877702
Change-Id: Id6c675b539f8e3161ef322bf008174ec2911d4be
Reviewed-on: https://chromium-review.googlesource.com/c/1261042
Reviewed-by: Daniel Bratell <bratell@opera.com>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#596571}
fs
Avoid UTF-8->UTF-16 conversion in HashAndUTF8CharactersTranslator
The Translate() function can use the same check as Equal() to determine
if the string is ASCII-only. Saving a conversion from UTF-8 to UTF-16.

Bug: 889183
Change-Id: Ieffab05f34a1e4a2ef725e298e7f15e7ff14a3f8
Reviewed-on: https://chromium-review.googlesource.com/c/1257928
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Yuta Kitamura <yutak@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#596556}
bratell
Removing unused private field from Windows NSSDecryptor
Coding standard and compiler do not like unused private fields, but
sometimes they slip between the cracks until they trigger something:

In file included from gen/chrome/utility/utility_jumbo_1.cc:12:
In file included from .\../../chrome/utility/importer/firefox_importer.cc:26:
In file included from ../..\chrome/utility/importer/nss_decryptor.h:13:
../..\chrome/utility/importer/nss_decryptor_win.h(169,29):  error: private field 'PK11_CheckUserPassword' is not used [-Werror,-Wunused-private-field]
  PK11CheckUserPasswordFunc PK11_CheckUserPassword;
                            ^
1 error generated.

This removes the unsued field. Also removing an "explicit" to get past
presubmit checks.

Running presubmit upload checks ...

L: \src\clean_chromium\src\chrome\utility\importer\nss_decryptor_win.cc:18:  Zero-parameter constructors should not be marked explicit.  [runtime/explicit] [5]
Change-Id: Id310c0f65a406c1a47ec29312472580d15dfd1ce
Reviewed-on: https://chromium-review.googlesource.com/c/1259018
Commit-Queue: Ilya Sherman <isherman@chromium.org>
Reviewed-by: Ilya Sherman <isherman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#596375}
mharanczyk
Override manifest handler registry in ManifestHandlerPerfTest.
MANUAL_CommonMeasureFinalization and MANUAL_CommonInitialize tests
reseted global registry on exit without initializing it again causing
random test flakes on tests that operated on manifests that happen to
run after those two tests (they passed on retry).

Change-Id: I2b4297d33441c72d9cdd099106abad68921c2f6a
Reviewed-on: https://chromium-review.googlesource.com/1259046
Commit-Queue: Marek Haranczyk <mharanczyk@opera.com>
Reviewed-by: Devlin <rdevlin.cronin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#596271}
fs
Restructure cycle checking in SVGUseElement
Hoist call to ResolveTargetElement() out of HasCycleUseReferencing(),
leaving the latter only checking for cycles.
Drop the InUseShadowTree() check from BuildShadowAndInstanceTree since
its single caller checks it already.
Use ToSVGElementOrNull to simplify the code a bit.

Bug: 397525
Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: Idb6cbd9e155d6217db77ef97299e77fa57cd0d8d
Reviewed-on: https://chromium-review.googlesource.com/c/1257918
Reviewed-by: Philip Rogers <pdr@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#596202}
fs
Use StringUTF8Adaptor in KURL::operator GURL
This can save a conversion to UTF-8 (and copy to CString) for ASCII-only
URLs.

Bug: 889183
Change-Id: Ie5edad4a95da70bac0acd27b01d6e03cd1315bbd
Reviewed-on: https://chromium-review.googlesource.com/c/1257926
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#596192}
bratell
Removing safe_browsing::features to not clash with ::features
According to the coding style guide a sub-namespace should not
have the same name as a common top level namespace. That still
happens with many "features" namespaces which causes problems
whenever the compiler knows about the root ::features namespace.

This patch removes the namespace completely and lets the
constants live in the safe_browsing namespace directly, making
the code a little shorter.

Another option would have been to rename the namespace from
::safe_browsing::features to ::safe_browsing_features like was
recently done to some other features namespaces, for instance app_list_features.

Change-Id: I3655cca7fb56b45a03118a80a957599bd5f316b3
Reviewed-on: https://chromium-review.googlesource.com/c/1251604
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Varun Khaneja <vakh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#596179}
bratell
Remove unused OptionMenuModel from components/translate
It was linked into some jumbo build experiments where it triggered
link errors.

If you include an object file, for instance options_menu_model.o, in
an archive, for instance libtranslate.a, and nothing references that
object file, then the linker won't care if options_menu_model.o is
referencing all kinds of undefined symbols. It's a feature or quirk
depending on who you asks.

With jumbo compilation this options_menu_model.o would be combined
with 7+ other .o files into translate_jumbo_1.o and since the .o file
is no longer completely unused, the linker will get upset about the
dangling references.

So something that used to be "just" dead code compilation with
dangling references becomes a linking error when compiling with jumbo.

Change-Id: Id15f7e15804efe2fdf959c4db7fdade061477102
Reviewed-on: https://chromium-review.googlesource.com/c/1256685
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Takashi Toyoshima <toyoshim@chromium.org>
Cr-Commit-Position: refs/heads/master@{#596168}
fs
Fix wpt/css/css-masking/mask-svg-content/mask-text-001.svg
The test has fixed dimensions of 100x100 pixels - the reference does
not. Add same fixed dimensions to the reference to get the same clipping
behavior.

Bug: 890755
Change-Id: Ib3d12ad1f7ace05027b81b9c683158490ae116ab
Reviewed-on: https://chromium-review.googlesource.com/1256568
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#595936}
bratell
Include .h file instead of .cc file, fixing linking problem
In some builds there were duplicate symbols because a cc file
was compiled twice and linked with itself. This happened because
some code accidentally included the cc file instead of the header.

Change-Id: Ifa145ce13190a9fa855e06986ca60605005aa9fc
Reviewed-on: https://chromium-review.googlesource.com/1255824
Commit-Queue: Nektarios Paisios <nektar@chromium.org>
Reviewed-by: Nektarios Paisios <nektar@chromium.org>
Cr-Commit-Position: refs/heads/master@{#595853}
bratell
Rename a header so that it has the .h suffix
input_predictor_unittest.cc is used purely as a header file so
it should have the .h suffix. Now it looks like some .cc files
are trying to include another .cc file.

The class was too large to have an implicit inline
constructor/destructor so those remain in a cc file. This presubmit
check didn't work before because the file was named *.cc.

Change-Id: I67740f4181ea60d02cd3149ce57b0d4e8c36aaf2
Reviewed-on: https://chromium-review.googlesource.com/1255638
Reviewed-by: Dave Tapuska <dtapuska@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#595838}
bratell
Resolve conflicts between Win32 headers and OpenSSL
Both some Win32 headers and OpenSSL/BoringSSL defines some
constant macros like X509_NAME. To avoid that clash we have
a wrapper for <wincrypt.h>, crypto/wincrypt_shim.h Use that
one in chrome/chrome_cleaner/os/system_util.h too since
that header might be used close to OpenSSL code.

Change-Id: I678b5aa1658e8436eed4b431e6c2950ce7acfb3b
Reviewed-on: https://chromium-review.googlesource.com/1255825
Reviewed-by: Joe Mason <joenotcharles@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#595820}
bratell
Avoid having two global GetInfo() methods in the same module
In jumbo builds a whole build target can compile together
and share the same anonymous namespace. Then two methods with
the same name and arguments will clash which happens in
chrome/common.

This resolves that clash twice over by giving one GetInfo a
longer name and inlining the other one since it was only used
once in a one line function.

Bug: 890323
Change-Id: Icbb1d768bdf9c1385f35bebd54d0d008e4be49d9
Reviewed-on: https://chromium-review.googlesource.com/1251603
Reviewed-by: Istiaque Ahmed <lazyboy@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#595765}
fs
Adjust SVGImageElement::InsertedInto to match HTMLImageElement
This does the same edit to SVGImageElement::InsertedInto as
https://chromium-review.googlesource.com/1141121 did to HTMLImageElement.

Bug: 864306
Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I74696c16c27eba363e4965d996f3ae688ef27c91
Reviewed-on: https://chromium-review.googlesource.com/1254265
Reviewed-by: vmpstr <vmpstr@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#595507}
bratell
Resolve Windows conflict between zlib and angle
Windows normally defines macros so that FAR expands to far, and
far expands to nothing.

Angle undefs far, leaving the FAR macro hanging, expanding to far
which is not a legal keyword anymore. zlib already tries to handle
that someone/something has undefined FAR but it doesn't handle
that someone/something has undefined far. This patch changes that.

This problem appeared in some jumbo builds in
gpu/command_buffer/service which uses both angle and zlib.

Bug: 889429
Change-Id: Ia3b10a9a82fc51b302c67b24a19f30a73bdda489
Reviewed-on: https://chromium-review.googlesource.com/1245723
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Chris Blume <cblume@chromium.org>
Cr-Commit-Position: refs/heads/master@{#595425}
fs
Include CSSPropertyID HashTraits in renderer/core/svg/svg_element.cc
SVGElement::CssPropertyIdForSVGAttributeName has a:

  HashMap<StringImpl*, CSSPropertyID>

which will require traits for the value (CSSPropertyID). Without Jumbo
this usually works out by using the default traits.

Bug: 890434
Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I6ff50a0648106057dad898d1fe6d79e9a53a1bd2
Reviewed-on: https://chromium-review.googlesource.com/1253662
Reviewed-by: Daniel Bratell <bratell@opera.com>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#595414}
fs
Fix WebP sniff pattern
The current pattern wouldn't be able to sniff the 'lossless' and
'extended' WebP formats.

Adjust the pattern to match the one described by [1].

[1] https://mimesniff.spec.whatwg.org/#matching-an-image-type-pattern

Bug: 889420
Change-Id: I4b5a73d4d9477502d58df7460b9494e6540a59f3
Reviewed-on: https://chromium-review.googlesource.com/1248782
Reviewed-by: Asanka Herath <asanka@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#595273}
bratell
Give two g_lazy_tls global variables unique names
In content/child there were two g_lazy_tls global variables
in two different anonymous namespaces. In jumbo build experiments,
where many files compile together and share anonymous namespace,
those globals collided. This patch gives them more distinct names.

Bug: 746953
Change-Id: Icac936f2092d1c8b1bc5de38d443d71cb8955045
Reviewed-on: https://chromium-review.googlesource.com/1251605
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#595100}
bratell
[jumbo] One kInvalidId constant should be enough.
Jumbo compilation in components/sync broke when a kInvalidId
clone appeared with the same name. This build unbreaking patch
renames it to kInvalidNodeId. A longer term fix is probably to
move the constant to modules/sync/base or another shared location.

Regression from https://chromium-review.googlesource.com/c/chromium/src/+/1164742

TBR=mastiz@chromium.org,treib@chromium.org

Bug: 870624
Change-Id: Ie300cf3338c8ffb93a2a0b3b656838bdbf10248a
Reviewed-on: https://chromium-review.googlesource.com/1250965
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Mikel Astiz <mastiz@chromium.org>
Reviewed-by: Marc Treib <treib@chromium.org>
Reviewed-by: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#595052}
fs
Use LayoutRect for frame rect in HitTestResultInFrame
This is consistent with how the frame rect is treated in other cases of
hit-testing (such as LayoutView::HitTestNoLifecycleUpdate). It also
eliminates the need for HitTestLocation::Intersects(const FloatRect&).
(The other "use" of this method is removed since it isn't used.)

Bug: 823796
Change-Id: I7532f0e685e9960d8afd16f9b41d699ae27bfd11
Reviewed-on: https://chromium-review.googlesource.com/1249142
Commit-Queue: Chris Harrelson <chrishtr@chromium.org>
Reviewed-by: Chris Harrelson <chrishtr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#594795}
bratell
Removing unused field in DXVAVideoDecodeAccelerator
Some jumbo build configurations would not compile because of
the unused field. The are not allowed by the build system but
sometimes only jumbo builds notice such things since they
have access to more source code.

Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Change-Id: I079412fc98e5812f709b6566d02de9d91a5a8706
Reviewed-on: https://chromium-review.googlesource.com/1249485
Reviewed-by: Frank Liberato <liberato@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#594759}
bratell
[net] Don't compile RemoteTestServer for iOS since it's unused
Noticed because RemoteTestServer refers to BaseServer which
is not included in ios builds.

Change-Id: I006a32ca751dd8d9e3c3d6be6ece93f30e0bc992
Reviewed-on: https://chromium-review.googlesource.com/1244841
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Asanka Herath <asanka@chromium.org>
Cr-Commit-Position: refs/heads/master@{#594639}
fs
Remove marker handling from SVGResources::RemoveClientFromCache
Markers don't actually have any per-client caches, so all this code does
is trigger a call to SetNeedsBoundariesUpdate - but if a marker was
changed this flag would already be set. Hence worst case we may end up
updating more than need (update the shape when only the transform
changed for instance.) Not generally a huge deal, but also not good.

Bug: 225808, 534817
Change-Id: I4d958cbc700c101a471c4ced1d79591cd1f2ebc9
Reviewed-on: https://chromium-review.googlesource.com/1245709
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#594376}
bratell
[ios] Fix typo: include header instead of mm file.
This caused a link error, duplicate symbols, in a jumbo build
experiment. How it ever worked in normal builds we'll never know.

Cq-Include-Trybots: luci.chromium.try:ios-simulator-cronet;luci.chromium.try:ios-simulator-full-configs
Change-Id: I4136a153aa989f2187d745f291658ac4e05fa6db
Reviewed-on: https://chromium-review.googlesource.com/1244461
Reviewed-by: Moe Ahmadi <mahmadi@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#594357}
fs
Pass oBB to SVGLayoutSupport::AdjustVisualRectWithResources
Most callsites have easy (even trivial) access to the object bounding
box (oBB), so just pass it as a parameter.

Change-Id: I2ec67dbea178356a3130bcef27204875143cf26c
Reviewed-on: https://chromium-review.googlesource.com/1245444
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#594300}
bratell
Add declaration for a newly defined highlight path property
A missing declaration broke some jumbo builds because in those
builds an implicit instantiation was seen before an explicit
specialization. This is illegal in C++. A forward declaration
solves the problem.

TBR=pbos@chromium.org,tapted@chromium.org

Bug: 861975,888204
Change-Id: Iecf736bcf9748d3c68265c21f9351c56d9a23dd8
Reviewed-on: https://chromium-review.googlesource.com/1245785
Reviewed-by: Daniel Bratell <bratell@opera.com>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#594289}
fs
Make LayoutSVGResource*::ResourceBoundingBox uniform
The LayoutSVGResourceFilter and LayoutSVGResourceMasker versions was
taking const LayoutObject* while the one on LayoutSVGResourceClipper
took a const FloatRect&. Align the two former with the later - thus
eliminating unnecessary dependencies on the client.

Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I26dcfb5ba9d164e4c5f97b9063cac8b6281cd6e6
Reviewed-on: https://chromium-review.googlesource.com/1243193
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Cr-Commit-Position: refs/heads/master@{#594051}
fs
Remove dead code in SVGResources::RemoveClientFromCache
This method is never called for a LayoutObject which has a "linked"
resource (<pattern>), so remove the handling of |linked_resource_|.

Change-Id: I8c57804ecb58f4b7e286e427f0b7de84909286b8
Reviewed-on: https://chromium-review.googlesource.com/1243807
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#594041}
fs
Uninline unit-accessors in LayoutSVGResource{Clipper,Masker}
This uninlines MaskUnits() and MaskContentUnits() in
LayoutSVGResourceMasker as well as ClipPathUnits() in
LayoutSVGResourceClipper - reducing unnecessary includes/dependencies.
Also streamline LayoutSVGResourceFilter::ResourceBoundingBox a bit by
using the FilterUnits() accessor, and remove the redundant null-check on
the element.

Change-Id: I658b7626627ac38fc8b43bfd54630adb778233e8
Reviewed-on: https://chromium-review.googlesource.com/1243117
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#594040}
fs
Hoist SetNeedsPaintPropertyUpdate calls in SVGResourcesCache
We don't want/need to call SetNeedsPaintPropertyUpdate in the
TemporaryStyleScope helper.
Hoist the calls to SetNeedsPaintPropertyUpdate out of
AddResourcesFromLayoutObject/RemoveResourcesFromLayoutObject.
Also add a new UpdateResourcesFromLayoutObject function that wraps the
common Remove+Add sequence.

Bug: 866487
Change-Id: I8f8a82802be0e16807e04eead0e409562ecbdb77
Reviewed-on: https://chromium-review.googlesource.com/1243244
Reviewed-by: Philip Rogers <pdr@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#593943}
fs
Remove visual rect check from SVGMaskPainter::PrepareEffect
This just adds an (additional) dependency on the LayoutObject, while
likely not giving much in terms of gain nowadays.

Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I0b44312f82002d5fc5b510f9eb51b9cd0caf95a2
Reviewed-on: https://chromium-review.googlesource.com/1243303
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Reviewed-by: Philip Rogers <pdr@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#593940}
fs
Update expectations for wpt/svg/pservers/reftests/meshgradient-*
TBR=schenney@chromium.org

Bug: 367760, 888869
Change-Id: I3a128e57f7a12d2fdd0e885bc1104ace39b64b06
Reviewed-on: https://chromium-review.googlesource.com/1243071
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#593923}
bratell
Support jumbo compilation for content/shell (-11 CPU minutes)
Compiling content/shell does in tests consume 13.5 CPU minutes which
is brought down to 2 CPU minutes with jumbo compilation. Jumbo
compilation works by combining many cc files in a single translation
unit, thereby avoiding recompilations of headers and re-instantiation
of templates, as well as by reducing the amount of work needed by the
linker.

Unfortunately IPC message generators can not be combined with other
code since they use some headers under very special circumstances.

Bug: 886902
Change-Id: I4ceee107ea64b774c9f540047182dbcfcf3c487f
Reviewed-on: https://chromium-review.googlesource.com/1238413
Reviewed-by: Peter Beverloo <peter@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#593905}
bratell
Remove references to gyp from DEPS and docs
Bug: 826218
Change-Id: I176e1aeb0b24b21c6b4e5ee40910dce2bce52c95
Reviewed-on: https://chromium-review.googlesource.com/1239461
Reviewed-by: Nico Weber <thakis@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#593522}
fs
Use StyleColor for the flood-color and lighting-color properties
This changes the _interface_ to these properties in ComputedStyle
(and SVGComputedStyle) to use StyleColor - storage is changed to
a <Color, bool> (separated) pair. Usage is updated accordingly.
This is needed in order to support "better" tainting on 'feFlood'
and other filter primitive elements to which these properties apply.
The actual tainting functions will be updated in a follow-up CL.

Bug: 792518
Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I705ee38219615c4c691e4a5fbc73799a72b604da
Reviewed-on: https://chromium-review.googlesource.com/797271
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Rune Lillesveen <futhark@chromium.org>
Cr-Commit-Position: refs/heads/master@{#593438}
fs
Revert "[Sherrif] Disable worklet-animation-responsive-to-zoom.html"
This reverts commit 1f654b07812cf771043806cdb4b5e1c0aa7cda64.

Reason for revert:

This test was reverted by https://chromium-review.googlesource.com/c/chromium/src/+/1239773 causing presubmits to fail.

Original change's description:
> [Sherrif] Disable worklet-animation-responsive-to-zoom.html
> 
> It wasn't included in TestExpectations by
> 
> https://chromium-review.googlesource.com/c/chromium/src/+/1237235
> 
> but it looks like it failed all the same.
> 
> NOTRY=true
> TBR=majidvp@chromium.org
> 
> Bug: 887659
> Change-Id: Iabb8204a4b4b05515838cf20378e61d07062ea51
> Reviewed-on: https://chromium-review.googlesource.com/1239446
> Reviewed-by: Frank Liberato <liberato@chromium.org>
> Commit-Queue: Frank Liberato <liberato@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#593345}

TBR=majidvp@chromium.org,liberato@chromium.org

Change-Id: I6bb03b3d8d78f3c7c66132656f00f32ee36e9a21
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 887659
Reviewed-on: https://chromium-review.googlesource.com/1238916
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#593437}
fs
Fix scrollIntoView(...) for SVG elements
AbsoluteBoundingBoxRectForScrollIntoView and associated helpers did not
compute the correct bounding box for SVG shapes (or anything but the SVG
root.)
Compute the bounding rect using the stroke bounding box.

Bug: 803440
Change-Id: If25ca98b686f17a0db699e569460cb4c276f06a0
Reviewed-on: https://chromium-review.googlesource.com/1238458
Reviewed-by: David Bokan <bokan@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#593306}
bratell
Bring back gn.el for the Emacs GN mode
gn.el used to be in the chromium source tree until gn moved
elsewhere. Now it lives somewhere else,
https://gn.googlesource.com/gn/+/master/tools/gn/misc/emacs/gn-mode.el
which makes it less useful.

This is a copy of that file as of today. The file is not updated
often, and when it is, it's just to add more keywords so
nothing critical.

Bug: 887937
Change-Id: I39335815a2cc8ecfe2b0e1728443f6abe84a85fa
Reviewed-on: https://chromium-review.googlesource.com/1238462
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#593217}
bratell
Support jumbo in //headless (-12 CPU minutes)
Jumbo is a unity build system for Chromium where many files are
compiled together. Since so much code is in headers and templates
this is much more efficient, and depending on your hardware, can
significantly speed up builds.

The headless module needs 26 CPU minutes to compile without jumbo.
With jumbo for everything, it needs 3.1 CPU minutes. Half of that
is already on master through the jumbo support in mojo. This patch
adds jumbo support for the rest, changing the compilation effort
from 15 CPU minutes to 3.

In real world time, this saves about 1.5 minutes on a full build on an
8 thread machine.

Bug: 883727
Change-Id: I3ede4805064344574c314d03904208110fdcb462
Reviewed-on: https://chromium-review.googlesource.com/1225702
Reviewed-by: Andrey Kosyakov <caseq@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#593216}
bratell
Give two ClampBufferSize functions distinct names
In some jumbo build configurations, two ClampBufferSize functions
in services/network ended up in the same translation unit which
caused compilation errors.

Cq-Include-Trybots: luci.chromium.try:linux_mojo
Change-Id: I6b7ea9c226b114a10d59fa9891e67f83537c5ec6
Reviewed-on: https://chromium-review.googlesource.com/1238219
Reviewed-by: Matt Menke <mmenke@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#593215}
bratell
Gave some content_shell constants unique names and better docs
content_shell wants to replicate a chome constant at several
places which caused collisions in jumbo build experiments. This
give the replicas unique names and fixes the documentation which
was a bit outdated.

Bug: 886902
Change-Id: Ibf65de50bb2f938392fcecc910d70a4c4182c87d
Reviewed-on: https://chromium-review.googlesource.com/1233715
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Dmitry Gozman <dgozman@chromium.org>
Reviewed-by: Peter Beverloo <peter@chromium.org>
Cr-Commit-Position: refs/heads/master@{#593143}
bratell
[jumbo] Resolve symbol clashes in content/shell
Rename two TestServiceImpl to not clash in jumbo build experiments,
and change a kIllegalString constant to be shared.

Bug: 886902
Change-Id: I513e0641834476bb198cf24d71ef088634458313
Reviewed-on: https://chromium-review.googlesource.com/1233709
Reviewed-by: Peter Beverloo <peter@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#593125}
bratell
Retire ToValueImpl and rely on ToValue for headless devtools
The previous ToValue -> ToValueImpl implementation caused
template resolution complexities and prevented jumbo support
by having a clone of the same template in every domain_types_cc
file.

Bug: 883727
Change-Id: Iec49d7bde93515fe180f26073cea59db3cf4be82
Reviewed-on: https://chromium-review.googlesource.com/1236355
Reviewed-by: Sami Kyöstilä <skyostil@chromium.org>
Reviewed-by: Andrey Kosyakov <caseq@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#593104}
bratell
Give content_shell message headers include guards
This is in preparation for jumbo compiling content/shell.

IPC headers generate code by being included multiple times with
different macros. This requires careful juggling of inclusions
and jumbo is not careful with when headers are included. In most
of the code this has already been solved by adding include guards
but not in content/shell until this patch.

Bug: 886902
Change-Id: I84644fba628a827dfd7825d97844aacca3a9cd8e
Reviewed-on: https://chromium-review.googlesource.com/1233743
Commit-Queue: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Peter Beverloo <peter@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Cr-Commit-Position: refs/heads/master@{#592905}
fs
Return const char* from CSS*Property::GetJSPropertyName
This makes callsites slightly slower (requiring calls to strlen()), but
the result is cached for the primary user of this, so the difference
from that is likely negligible. Each indiviual method however no longer
need to instantiate a WTF::String, yielding a perhaps modest, but not
insignificant, reduction in binary size (-1568 bytes according to
the android-binary-size bot.)

Change-Id: Ib9ecc17cbe3e745bc2c33e1b4d9dcbd40190e026
Reviewed-on: https://chromium-review.googlesource.com/1233710
Reviewed-by: Anders Ruud <andruud@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#592728}
bratell
Remove "using namespace" from content_shell code
"using namespace" is not allowed per the Code Style Guide, but
worse, much much much worse, it won't work in jumbo builds because
they will be in a different context where a compiler error
will be triggered.

Bug: 886902
Change-Id: I635ceb8ec5d65a9d599ecd38bf0c150c90edf056
Reviewed-on: https://chromium-review.googlesource.com/1233837
Reviewed-by: Peter Beverloo <peter@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#592717}
fs
Add bug component for blink_perf.svg
Change-Id: I78b9172711cad010a754ad4d524758df39af5e61
Reviewed-on: https://chromium-review.googlesource.com/1233337
Commit-Queue: Ned Nguyen <nednguyen@google.com>
Reviewed-by: Ned Nguyen <nednguyen@google.com>
Cr-Commit-Position: refs/heads/master@{#592388}
fs
Use DEFINE_STATIC_LOCAL in CSSProperty::GetPropertyNameAtomicString
This avoids having a destructor being run when terminating the process.
These destructor could have ordering issues wrt to the destruction of
the AtomicStringTable. Using DEFINE_STATIC_LOCAL also shrinks the binary
a bit. (The android-binary-size bot says -16375 bytes.)

Remove some redundant '\0' characters for some additional (but minor)
savings.

Change-Id: I4f5c19fceb9b668e74d3ef9bad58b104182ddb86
Reviewed-on: https://chromium-review.googlesource.com/1233700
Reviewed-by: Anders Ruud <andruud@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#592383}
fs
Remove unneeded static empty_string in GetNameForFeature
This gets rid of a non-trivial (exit-time-)destructor.

Previously a (null) String was returned, but it seems that returning an
empty ("") String is more appropriate (if this is reached at all.)

Change-Id: Iba329053ea463883b41000ccb9970b3025da1ae7
Reviewed-on: https://chromium-review.googlesource.com/1230736
Reviewed-by: Ian Clelland <iclelland@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#592351}
fs
Use DEFINE_STATIC_LOCAL for StorageNamespace::local_storage_namespace
This eliminates an exit-time destructor.

Change-Id: I18e3d7a9bd965c6898ba31c110b993258503a2d4
Reviewed-on: https://chromium-review.googlesource.com/1230737
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Marijn Kruisselbrink <mek@chromium.org>
Cr-Commit-Position: refs/heads/master@{#592336}
fs
Use DEFINE_STATIC_LOCAL for ParkableStringManager::instance
Change-Id: Ibb54621a413f1928a04498dae65a1ae5f3e48361
Reviewed-on: https://chromium-review.googlesource.com/1230716
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#592335}
fs
Merge fast/masking into css3/masking
These two cover the same specification (CSS Masking), so merge the
smaller corpus into the larger one (also preferring non-fast over fast.)

The following tests are converted to testharness.js:

  css3/masking/clip-path-selection.html
  css3/masking/parsing-clip-path-shape.html
  css3/masking/parsing-mask-source-type.html
  css3/masking/parsing-mask.html

and additionally css3/masking/clip-path-selection.html is converted
away from using eventSender.

Bug: 885137
Change-Id: I36607239ec37c69095632fe409f8a315ceb3e31e
Reviewed-on: https://chromium-review.googlesource.com/1230027
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Reviewed-by: Xianzhu Wang <wangxianzhu@chromium.org>
Commit-Queue: Xianzhu Wang <wangxianzhu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#592063}
fs
Ship CSS gradient color stop double-position syntax
Intent-to-Ship thread:

 https://groups.google.com/a/chromium.org/forum/#!msg/blink-dev/8B9FbeTBIK0/DNkC2pz-AAAJ

Also removing the actual feature and corresponding check, because it's
only used in a single spot, so if the feature should need to be
unshipped it ought to be a fairly trivial revert.

Bug: 707047, 880733
Change-Id: Ie854d7fd9f7a22e9c6144668a37f694dd1c508ee
Reviewed-on: https://chromium-review.googlesource.com/1230018
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#592028}
pkalinowski
Do not try to look up non-standard URLs in auth cache
Auth cache uses URL's origin as a key, and non-standard URLs don't have
it, so it only results in an attempt to use an invalid key, trigerring a
DCHECK on the way, too.

This can happen if page uses a data URL as a source for an HTML5 video.

Bug: 882842
Change-Id: I0a1861d27152d4d84f3a7692fd94af6222ca027c
Reviewed-on: https://chromium-review.googlesource.com/1219607
Reviewed-by: Min Qin <qinmin@chromium.org>
Commit-Queue: Piotr Kalinowski <pkalinowski@opera.com>
Cr-Commit-Position: refs/heads/master@{#592005}
bratell
Windows build fix: Only depend on views_bridge_mac in mac builds
views_bridge_mac now uses a function called CreateWindow which happens
to be a macro in Win32 APIs. If a Windows builds sees that function
and knows about the macro, the build breaks, as just happened in
jumbo builds after
https://chromium-review.googlesource.com/c/chromium/src/+/1226251

TBR=ellyjones@chromium.org

Bug: 859152
Change-Id: Ia2314b7697aa75f8df60310cc504848b86c3ed05
Reviewed-on: https://chromium-review.googlesource.com/1229675
Reviewed-by: Daniel Bratell <bratell@opera.com>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#591986}
fs
Improve EOF handling in the headless REPL
When the REPL encounters an EOF, it can start spinning on just
generating a lot of empty ("") expressions.
Instead quit if an EOF is received and there's an empty expression. If
the expression is not empty it will still be evaluated. This helps
certain non-interactive use-cases.

Bug: 748419
Change-Id: Ica91f2164361bd6891f71e25fbdba0773c6c9941
Reviewed-on: https://chromium-review.googlesource.com/1225764
Reviewed-by: Eric Seckler <eseckler@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#591979}
fs
Add basic tests for multiple position gradient stops
Tests rendering for the the case where <color-stop-length> or
(or <color-stop-angle>) is two <length-percentage> (or
<angle-percentage>.)

Spec:
 https://drafts.csswg.org/css-images-4/#color-stop-syntax

Bug: 707047, 880733
Change-Id: I56bc9b43858b37c003e081ea0ef8588f3da78627
Reviewed-on: https://chromium-review.googlesource.com/1228120
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
Cr-Commit-Position: refs/heads/master@{#591717}
bratell
[headless] Avoid compiling files that will not be used
In component builds headless_shell_lib compiled
lib/browser/headless_content_browser_client.cc which referred to
a lot of other code that was not compiled. Thanks to a linker
feature/quirk, the whole object file was ignored and nothing
bad happened. In jumbo build experiments the linker couldn't
do dead object file removal and the result was a lot of linkage
errors.

Bug: 883727
Change-Id: I3ef9f69cbf61ddccdb55d0929963ad33a6fb442b
Reviewed-on: https://chromium-review.googlesource.com/1226615
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Sami Kyöstilä <skyostil@chromium.org>
Cr-Commit-Position: refs/heads/master@{#591683}
bratell
One copy of headless shell switches should be enough
Many different parts of headless use the headless command
line switches, and compiled them into their lib/binary. This
caused build failures due to duplicate symbols in jumbo
build experiment. It seems the code depends on the dead object
file removal feature in the linker. Better is to just compile
and link the code once and export it from there.

Bug: 883727
Change-Id: I47ff0c86e56f2f86fbdaef6f5f7589ac82d16c66
Reviewed-on: https://chromium-review.googlesource.com/1225761
Reviewed-by: Sami Kyöstilä <skyostil@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#591663}
bratell
Reorganize headless printing support slightly
Including rendererer only code in the library "headless" that will be
used in the browser process only works if that code is dead and is
packaged in an unused object file inside a static library and linked
with a linker that ignores such object files. That is why including
"lib/renderer/headless_print_render_frame_helper_delegate.cc" kind of
worked but in jumbo build experiments it didn't.

This patch moves the renderer only printing code to libheadless.so
build code and to headless_renderer code.

Bug: 883727
Change-Id: I2ff6edfbf8c1cd79c84973933dd34a9de8fd3632
Reviewed-on: https://chromium-review.googlesource.com/1227937
Reviewed-by: Sami Kyöstilä <skyostil@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#591659}
fs
Update expectation for hittesting/image-with-clip-path.html
This test has not been flaking since it was re-enabled over a week ago.

TBR=schenney@chromium.org

Bug: 805292
Change-Id: I27fed5ac7e66b937d63adfec6f11f320e2ab7437
Reviewed-on: https://chromium-review.googlesource.com/1225986
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#591632}
fs
Change serialization for SVG resource url(...)'s
For non-local URLs, serialize the absolute form.

Reduce the AtomicString <-> String impedance while at it.

Bug: 842665
Change-Id: Ibc7804eeb6436d32202915e20e612b7bb5cf6b94
Reviewed-on: https://chromium-review.googlesource.com/1213175
Reviewed-by: Eric Willigers <ericwilligers@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#591627}
tmoniuszko
Remove duplicated devtools_frontend_host.h from browser_sources
Change-Id: Ibaff557837b56061a0efbb2b82c673585963deb8
Reviewed-on: https://chromium-review.googlesource.com/1204132
Reviewed-by: Antoine Labour <piman@chromium.org>
Commit-Queue: Tomasz Moniuszko <tmoniuszko@opera.com>
Cr-Commit-Position: refs/heads/master@{#591618}
fs
Trigger paint invalidation for <detail> on 'color' changes
Much like a list marker, the details marker needs be added to the
"color changed" special case/optimization.

Bug: 883711
Change-Id: Ib2237bd13887f4b5ff7fd2270bae6cb8654e0cd3
Reviewed-on: https://chromium-review.googlesource.com/1225875
Commit-Queue: Xianzhu Wang <wangxianzhu@chromium.org>
Reviewed-by: Xianzhu Wang <wangxianzhu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#591354}
bratell
Remove unused object field that broke some builds
It's not allowed to have unused object fields but the compiler
can't always know if a field is unused. In jumbo builds it will
know more so sometimes those detect cases that normal compilation
won't see. In this case a field only used in ChromeOS builds.

In file included from gen/chrome/browser/browser_jumbo_1.cc:80:
In file included from ./../../chrome/browser/chrome_content_browser_client.cc:428:
In file included from ../../chrome/browser/speech/extension_api/tts_engine_delegate_factory_impl.h:10:
../../chrome/browser/speech/extension_api/tts_engine_delegate_impl.h:35:28: error: private field 'browser_context_' is not used [-Werror,-Wunused-private-field]

  content::BrowserContext* browser_context_;
                           ^

TBR=dmazzoni@chromium.org

Bug: 862710
Change-Id: I4eca7b940ad49fb44ec61ec513ba54db55f4914c
Reviewed-on: https://chromium-review.googlesource.com/1225759
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Daniel Bratell <bratell@opera.com>
Reviewed-by: Jinho Bang <jinho.bang@samsung.com>
Cr-Commit-Position: refs/heads/master@{#591337}
bratell
[headless] Specify namespace in cases where it might be ambiguous
There are sub-namespaces to ::headless named storage and
switches and those will be chosen by the compiler instead of
::storage or ::switches if the compiler knows about them.

This problem appeared in jumbo builds where the compiler knew
more about all the namespaces. Fix is to either rename/remove
the sub-namespaces or to do what this patch does, prefix
storage with :: (so ::storage and ::switches) to clarify what
namespace is intended.

Bug: 883727
Change-Id: I1f6e428926f0a959787c2205f92505280d96b831
Reviewed-on: https://chromium-review.googlesource.com/1225792
Reviewed-by: Sami Kyöstilä <skyostil@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#591336}
tmoniuszko
Add double-click protection to bubbles
Potentially dangerous situation is possible when user is performing
double-click on UI element. If bubble is being shown as a result of
the first click, the control under the mouse cursor (button on
the bubble) can be activated with the second click. This wasn't
the intention of the user as the time between clicks was too short
to read the contents in the bubble that appeared. For example, user
can accidentally click "Accept" button on the permission prompt
bubble.

This CL adds protection against such unintended clicks. Mouse and
touch events are ignored for a short period of time after bubble
has been shown.

Bug: 864530
Change-Id: I54d229bf39dd000079b9eabd8de1cfba5103a022
Reviewed-on: https://chromium-review.googlesource.com/1140307
Commit-Queue: Tomasz Moniuszko <tmoniuszko@opera.com>
Reviewed-by: Michael Wasserman <msw@chromium.org>
Cr-Commit-Position: refs/heads/master@{#591324}
bratell
Add support for jumbo in services/network (-7 CPU minutes)
This adds support for jumbo compilation of services/network. Jumbo
is a unity build implementation where many files are compiled
together in the same translation unit. That is usually much faster,
and more efficient, than compiling one file at a time, but it requires
the code to be compatible with such treatment.

In services/network there were two problems, one duplicated function
which this patch unduplicates, and the IPC/ParamTraits system which
is sensitive to include header ordering.

In total, on the build time reference test, this saves 7 CPU minutes
(from 12 to 4), or roughly 1 minute on an 8 core machine.

Cq-Include-Trybots: luci.chromium.try:linux_mojo
Change-Id: I997cc61159ccf9f23eb22f3b954b888b498e3862
Reviewed-on: https://chromium-review.googlesource.com/1221946
Reviewed-by: Yutaka Hirano <yhirano@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#591300}
fs
Replace void* with ViewportDescription& in HTMLMetaElement
bbc7c4cca93dbfe2513b4288ff7ecf10878ebcf3 removed the old callback-driven
interface to the 'content' attribute parser - where "void* data" was the
callback closure/user data. Clean up to the type-safer way.

Change-Id: I2d9fffee65d7d38f226586be1b24d1c0ba9e8859
Reviewed-on: https://chromium-review.googlesource.com/1224394
Reviewed-by: Daniel Bratell <bratell@opera.com>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#591024}
bratell
[jumbo] A global enum ResourceType appeared so rename a local one
In https://chromium-review.googlesource.com/1214980 a more visible
blink::ResourceType was introduced and when jumbo compiling that
will clash with a local one inse canvas_resource_provider.cc.

This renames that enum to CanvasResourceType just to avoid the clash.

TBR=tkent@chromium.org

Bug: 242216
Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I71a9a306f7763728ae6800c78be225fd1e965bb9
Reviewed-on: https://chromium-review.googlesource.com/1224012
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Kent Tamura <tkent@chromium.org>
Reviewed-by: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#590973}
fs
Remove StyleImage::SetIsLazyloadPossiblyDeferred
The only time when this is used is to set the value to true on a
StylePendingImage. The StylePendingImage is never read from or used
except for getting the underlying CSSValue though, making the store dead
and the method unused.
Also remove the cast from StyleImage to StyleFetchedImage, which is
unnecessary because the flag lives in the base class (StyleImage) and
is only set by the subclass constructors.

Change-Id: Idc899bc050ae3a7266df311279378e932194189d
Reviewed-on: https://chromium-review.googlesource.com/1213147
Reviewed-by: rajendrant <rajendrant@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#590971}
bratell
Support jumbo builds in components/viz
Jumbo is a unity build system for Chromium. By combining many cc files
in the same translation unit, the compiler doesn't have to repeat all
the work triggered by shared header. This normally makes building 5-20
times faster.

The downside to jumbo is that code intended to be local to one cc file
suddenly becomes more exposed and might clash with other code.

Jumbo support in components/viz currently saves about 5 CPU minutes of effort,
about 1% of the total reference build effort.

Bug: viz bug
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Change-Id: I7bff566b96b2caeac66aa8e6fb67495231206d51
Reviewed-on: https://chromium-review.googlesource.com/951791
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: danakj <danakj@chromium.org>
Cr-Commit-Position: refs/heads/master@{#590954}
fs
Implement step 1 of "look up a custom element definition"
Per [1], elements with a non-HTML namespace should cause a null
custom element definition to be returned.

Implement this step.

[1] https://html.spec.whatwg.org/multipage/custom-elements.html#look-up-a-custom-element-definition

Bug: 882773
Change-Id: Idc8f4c61b94af848e13acf4ff06da2c5f6842454
Reviewed-on: https://chromium-review.googlesource.com/1221325
Reviewed-by: Kent Tamura <tkent@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#590949}
bratell
Support jumbo in the //gpu code
Jumbo is a unity build system for Chromium. By compiling many
cc files as one unit, the compile time is drastically reduced. This
patch adds support for jumbo compiling //gpu.

The expected effect is about 6 CPU minutes (~1 wall clock minute on a
normal computer) or 1% of the total reference jumbo compilation time.

Bug: 864986
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Change-Id: I096335ba283f9b03cf4dcde554e7b19620f08834
Reviewed-on: https://chromium-review.googlesource.com/1151323
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#590626}
bratell
[jumbo] Give two GetDelegate/GetDelegateWrapper methods unique names
In jumbo builds whole chunks of the code is compiled in the same
translation unit, using the same anonymous namespace. If two
files use the same symbol names they will then clash and that
happened in chrome/browser/extensions between
active_tab_permission_granter.cc and extension_tab_util.cc.

This patch renames GetDelegate() and GetDelegateWrapper to include
the more exact names of the Delegate type, making them unique.

Bug: 865947
Change-Id: I46426e8dee715d57acaa3d2385e6dd5b6ac38cf1
Reviewed-on: https://chromium-review.googlesource.com/1219246
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Devlin <rdevlin.cronin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#590327}
bratell
[jumbo] Make it one GetIdMap() instead of two.
A commit just introduced two GetIdMap functions in ui/views/cocoa,
which broke jumbo builds because in jumbo builds they end up in
the same translation unit. This patch renames them
GetIdToWidgetImplMap and GetIdToWidgetHostImplMap

Bug: 859152

TBR=ccameron@chromium.org,ellyjones@chromium.org

Change-Id: I55b4a48d3d4f97c30450fd89bb8f52f46c2cedd7
Reviewed-on: https://chromium-review.googlesource.com/1219127
Reviewed-by: Daniel Bratell <bratell@opera.com>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#590257}
fs
Redirect WPT clip-path path() tests
TBR=schenney@chromium.org

Bug: 880983, 882649
Change-Id: I5d75f448106ad20adf8e9e02ab33883b7eaa54a8
Reviewed-on: https://chromium-review.googlesource.com/1219247
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#590256}
bratell
[jumbo] Specify which features namespace is intended
There are more than one namespace named features, and specifically
there are both ::printing::features and ::features. When the
compiler knows about both and is inside namespace printing,
referring to "features" will resolve to ::printing::features even
if ::features was intended.

This happens in jumbo builds in some configurations. The fix is
to clarify what features namespace is intended by using a ::
prefix. An alternative fix would be to remove ::printing::features
to ::printing::printing_features.

Change-Id: I0499ed98c3ad699e89dce8f1141c327937ba0a87
Reviewed-on: https://chromium-review.googlesource.com/1213167
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#589868}
bratell
Remove some dead and duplicate code that broke some jumbo builds
Some test code was compiled into chrome which in jumbo builds
broke the linking. In non-jumbo builds the code was probably
eliminated by the implicit dead-code-removal in the linker
(an .o file that is completely unused is ignored).

Also changing an #include "foo.cpp" to #include "foo.h" since that
caused similar linking errors related to duplicate code.

Change-Id: I6c39314fadc3a82f48135755cc7de1a540006ae5
Reviewed-on: https://chromium-review.googlesource.com/1213166
Reviewed-by: James MacLean <wjmaclean@chromium.org>
Reviewed-by: Jialiu Lin <jialiul@chromium.org>
Reviewed-by: Fady Samuel <fsamuel@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#589863}
fs
Serialize the path() function with double quotes
Per https://drafts.csswg.org/cssom/#serialize-a-string double quotes
should be used when serializing strings.

Bug: 873527
Change-Id: I3b7a3c6425c6a5d0d6f96399663f5ae8b3929a59
Reviewed-on: https://chromium-review.googlesource.com/1213171
Commit-Queue: Eric Willigers <ericwilligers@chromium.org>
Reviewed-by: Eric Willigers <ericwilligers@chromium.org>
Cr-Commit-Position: refs/heads/master@{#589652}
fs
Fix svg/parser/whitespace-{integer,length}.html
Integers should be parsed per the <integer> production, and thus should
not accept units.

In whitespace-length.html there was a bug in the test-setup that made
some tests fail that ought to pass (incorrect parameter.)

Also take the opportunity to clean up the tests a bit.

Change-Id: Id7b8964ec52f484dad424b0a1b7be6d70d062eb6
Reviewed-on: https://chromium-review.googlesource.com/1213149
Reviewed-by: Philip Rogers <pdr@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#589606}
fs
Invalidate clipPath clients after mutating 'transform'
When the 'transform' presentation attribute (or CSS property) was
mutated on a <clipPath>, its clients were not notified. Make sure they
are.

Bug: 881700
Change-Id: Id42aedf814472d8156804a955e6bbf2aa2792ec2
Reviewed-on: https://chromium-review.googlesource.com/1213142
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#589511}
bratell
Add support for jumbo compilations to the rest of //ui
Jumbo is the Chromium implementation of a Unity build system aimed at
dramatically lowering the compilation times, especially for those
without access to goma.

In reference testing, this patch reduces the effort to compile
content_shell+chrome+blink_tests by about 9 CPU minutes, 1-2% of the
total effort. Earlier patches saved more so the total build effort
reduction in //ui is about 41 CPU minutes.

There is still some code in ui that doesn't use jumbo. Specifically
most of the tests.

Bug: 773275
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Change-Id: Ie59fec4b67fc1e3d6855d04a4b9a1088e0a08768
Reviewed-on: https://chromium-review.googlesource.com/834348
Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#589473}
fs
Pass a float height to Font::SelectionRectForText
Rather than converting an int argument to a float in the function (that
return a FloatRect), pass a float argument and let the caller handle a
conversion (if needed.)

Bug: 881188
Change-Id: If3083fc19c866f003b0d60e10246b3088463dcdd
Reviewed-on: https://chromium-review.googlesource.com/1209923
Reviewed-by: Dominik Röttsches <drott@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#589471}
bratell
[jumbo] Make it one g_id_map instead of two.
A commit just introduced a second g_id_map in ui/views/cocoa,
which broke jumbo builds. This renames the g_id_map
globals to the longer names g_id_to_impl_map and
g_id_to_host_impl_map.

Bug: 859152

TBR=ccameron@chromium.org,ellyjones@chromium.org

Change-Id: Id30d71b67f4bfb7c3ddc3ec8d03c759b5b7df14f
Reviewed-on: https://chromium-review.googlesource.com/1212862
Reviewed-by: Daniel Bratell <bratell@opera.com>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#589465}
fs
SVGAnimatedInteger initial values
This implements initial values for SVGAnimatedInteger properties (which
includes SVGAnimatedIntegerOptionalInteger since it is a reverse proxy
for the former.)

Bug: 225807
Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I0563b6cfe4dc22b08ed04ab508faf4fb9491b5b4
Reviewed-on: https://chromium-review.googlesource.com/1209743
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Philip Rogers <pdr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#589463}
fs
SVGAnimatedNumber initial values
This implements initial values for SVGAnimatedNumber properties (which
includes SVGAnimatedNumberOptionalNumber since it is a reverse proxy to
the former.)

Bug: 225807
Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: Icb62d7383cacf7df122fc56af0977015b5adf9b7
Reviewed-on: https://chromium-review.googlesource.com/1209705
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Philip Rogers <pdr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#589219}
fs
SVGAnimatedEnumeration initial values
This implements initial values for SVGAnimatedEnumeration properties.

Bug: 225807, 523685
Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I857dd5d6a52b2e3c4e866c2b589be3373449fc24
Reviewed-on: https://chromium-review.googlesource.com/1209683
Reviewed-by: Philip Rogers <pdr@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#589217}
fs
Don't include local_frame.h in page.h
Shrinks expanded page.h size by ~2.1M.

Change-Id: I20c304f7c2a47e86a14dfecd792f0b9b4da35531
Reviewed-on: https://chromium-review.googlesource.com/1204131
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#589191}
wdzierzanowski
Add missing MappedHostResolver overrides
Save for remapping hosts according to the rules, MappedHostResolver
should be a transparent wrapper around the "real" resolver.  Thus, it
must forward all HostResolver methods to the real resolver.

Change-Id: I34deed523b3cb690d450599c89bfd7f2184e843d
Reviewed-on: https://chromium-review.googlesource.com/1209402
Commit-Queue: Wojciech Dzierżanowski <wdzierzanowski@opera.com>
Reviewed-by: Matt Menke <mmenke@chromium.org>
Cr-Commit-Position: refs/heads/master@{#589150}
bratell
[jumbo] Unduplicate duplicated IsShuttingDown
Quick fix to unbreak jumbo builds. In
https://chromium-review.googlesource.com/c/chromium/src/+/1205976
a copy of IsShuttingDown was added and this patch changes the code
to instead use the original version.

TBR=kinuko@chromium.org,nhiroki@chromium.org

Bug: 715632
Change-Id: I2451fcaa009ec6403827cdb05cd3b47112c4681b
Reviewed-on: https://chromium-review.googlesource.com/1209703
Reviewed-by: Daniel Bratell <bratell@opera.com>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#589148}
fs
Unskip hittesting/image-with-clip-path.html
To have a chance of seeing what might be problem here (if it still
exists) we need some historical data, since there appear to be no
obvious issues with the test as such.

Bug: 805292
Change-Id: Iccbb92e2a324533858ee42802eaa2fa7ebc2240c
Reviewed-on: https://chromium-review.googlesource.com/1209363
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#589139}
fs
Rework StyleImage equality determination
StyleFetchedImage and StyleFetchedImageSet needs to take the URL into
consideration because it can contain a fragment that will require the
image to change.

Bug: 643716
Change-Id: If87d3583df0fcb37f872c1423a88f4bd33e8c38f
Reviewed-on: https://chromium-review.googlesource.com/1207390
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#589128}
fs
Update bug# for wpt/css/css-masking/clip-path/clip-path-path-00{1,2}.html
TBR=schenney@chromium.org

Bug: 880983
Change-Id: Ic31f977a104c95d1896ec4855c7be2c37e1e68d1
Reviewed-on: https://chromium-review.googlesource.com/1209342
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#589127}
fs
SVGAnimatedAngle initial values
This CL implements correct initial values for all SVGAnimatedAngle properties
(which is only one: 'orient' on <marker>.)

Bug: 225807, 589856
Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I61c50162a98a47d0da23f3a7d0830440b8c7aa25
Reviewed-on: https://chromium-review.googlesource.com/1207331
Reviewed-by: Philip Rogers <pdr@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#588942}
fs
Fold Page::NonFastScrollableRectsForTesting
Fold Page::NonFastScrollableRectsForTesting into the only user
Internals::nonFastScrollableRects. The former method does not even touch
the Page object.

Change-Id: I3d8bec815dbcbb45cb01e2a77a1d87885d7d94f9
Reviewed-on: https://chromium-review.googlesource.com/1206590
Reviewed-by: Philip Rogers <pdr@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#588939}
fs
SVG property initial value mechanism and support for SVGAnimatedLength
This CL introduces a mechanism for handling "initial values" for SVG
properties. The initial value is stored in a new
|initial_value_storage_| field in SVGAnimatedPropertyBase. Subclasses
that need to store an initial value - for many cases a default
initialized object is sufficient - define what is stored in the allotted
number of bits (and thus indirectly how many bits that are required.)

The SetInitial method needs to be overloaded on the SVGPropertyBase
subclasses that the SVGAnimatedProperty holds, and is responsible for
resetting the value of the property (after "decoding" the value.)

This CL adds an implementation of the above for SVGAnimatedLength. For
this type, the initial value is stored as an index into a table of
values.

The 'fx' and 'fy' properties on SVGRadialGradientElement are updated to
have their initial values be 50% (matches Gecko.)

Bug: 225807, 474523
Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: Ida144d6bed2d1946186e8fb3b3a0b9695ca81789
Reviewed-on: https://chromium-review.googlesource.com/1193822
Reviewed-by: Philip Rogers <pdr@chromium.org>
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#588797}
fs
[jumbo] Fix symbol clashes in components/rapport unittests
Follow up to ad2c0dc8c2bca1b767007ac3cacdb8652b566907.

TestLogUploader is defined as both rappor::TestLogUploader and
rappor::(unnamed namespace)::TestLogUploader and could thus be ambiguous
if being present in the same jumbo unit. Add rappor:: qualification in
TestRapporServiceImpl to combat this.

The kTestRapporParameters structure is defined in sampler_unittest.cc
and rappor_metric_unittest.cc. Give these slightly more unique name
(reflecting the test they are for) to avoid this.

Change-Id: I1292c643316291420f24755241a9533d89a3e45a
Reviewed-on: https://chromium-review.googlesource.com/1204018
Reviewed-by: Alexei Svitkine <asvitkine@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#588604}
fs
Resolve :root and table-cell currentcolor using background box's style
In BackgroundImageGeometry::ImageStyle we'd always return the computed
style for |box_| (the box for which we're painting), and thus use that
to resolve currentcolor, although in some cases (for :root and table-
cells that get their backgrounds from the row or column) we ought be
using the style from the element that the background originated from.

Bug: 848860
Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I9113957889a3f091d3fe71830c0805a4064734b5
Reviewed-on: https://chromium-review.googlesource.com/1203373
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#588536}
fs
Forward declare DocumentLoader in deprecation.h
Shrinks page.h by ~1.1M.

Cq-Include-Trybots: luci.chromium.try:win_optional_gpu_tests_rel
Change-Id: Ie71224313e0a1c26319854707b14e62e65dc46a3
Reviewed-on: https://chromium-review.googlesource.com/1203911
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Reviewed-by: Morten Stenshorne <mstensho@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#588504}
fs
Get rid of include of page_overlay.h in page.h
Shrink page.h from ~9.16M to ~7.01M.

Change-Id: If7516a607c481637ec12872edd33641df8e5ad95
Reviewed-on: https://chromium-review.googlesource.com/1203835
Reviewed-by: Kent Tamura <tkent@chromium.org>
Reviewed-by: Morten Stenshorne <mstensho@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#588484}
fs
Redirect css-masking expectations to crbug.com/432153
These tests are all about 'mask-image' (the unprefixed property.)

TBR=schenney@chromium.org

Bug: 432153, 880183
Change-Id: I399ea4dd6a3dd48ee464a12279caa2a4fdd9f3a2
Reviewed-on: https://chromium-review.googlesource.com/1203891
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#588478}
bratell
[jumbo] Give two kForcedInvocationDeadline constants unique names
In certain jumbo configurations, the two constants names
kForcedInvocationDeadline could end up in the same translation
unit and then clash. This patch changes the names to
kTextFinderTestTimeout and kIdleSpellcheckTestTimeout.

Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_layout_ng
Change-Id: I76e030b98bead46fa0aff7f3e0ce1f264d754ef9
Reviewed-on: https://chromium-review.googlesource.com/1202064
Commit-Queue: Kent Tamura <tkent@chromium.org>
Reviewed-by: Kent Tamura <tkent@chromium.org>
Cr-Commit-Position: refs/heads/master@{#588441}
fs
Use Element::LocalNameForSelectorMatching in InvalidationSet
To match ElementRuleCollector et al. We will lower-case tag names on
(selector) parsing in HTML documents, and thus need to give the same
treatment to the local name extracted from the element.

Bug: 856368
Change-Id: I07e726864de048f5948cb27fa7e5dd6eaad9b0ef
Reviewed-on: https://chromium-review.googlesource.com/1202206
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Rune Lillesveen <futhark@chromium.org>
Cr-Commit-Position: refs/heads/master@{#588427}
oscarj
Enable jumbo support in storage/browser
//storage/browser takes around 6.2 CPU minutes to
build without jumbo. With jumbo the build time is
reduced by around 83 %.

This commit enables jumbo support in storage/browser.

Bug: 871163
Change-Id: I51254087ea584d64fc599aa232ab2b73027791ec
Reviewed-on: https://chromium-review.googlesource.com/1170691
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Commit-Queue: Oscar Johansson <oscarj@opera.com>
Cr-Commit-Position: refs/heads/master@{#588365}
fs
Distribute widths evenly among code points in SynthesizeGraphemeWidths
Previously we did not consider the possibility of a typographic unit
containing multiple surrogate pairs, and could as an effect "lose" part
of the width.

Distribute the width evenly among code points instead to at least get
some sort of consistency.

Bug: 879361
Change-Id: I51a4e6c574926215a087b0bc824ac90d580ff169
Reviewed-on: https://chromium-review.googlesource.com/1199423
Reviewed-by: Philip Rogers <pdr@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#588183}
fs
Simplify candidate selection in HTMLImageElement::SelectSourceURL
Rather than using the |found_url| local, recognize that it is equivalent
to !candidate.IsEmpty(), and use regular control flow instead.

Change-Id: I5f28a4099bc4252ec9ea5b9ed616116f64b97ace
Reviewed-on: https://chromium-review.googlesource.com/1196383
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#588048}
fs
Handle non-image backgrounds in BoxModelObjectPainter::PaintTextClipMask
When we paint a background color for a line, we don't adjust the paint
offset based on the logical offset on the "virtual line", so we mustn't
try to undo the adjustment in BoxModelObjectPainter::PaintTextClipMask
when we're generating the mask for "(-webkit-)background-clip: text".

Check the |object_has_multiple_boxes| and don't undo the adjustment if
it is false.

Bug: 879292
Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I9ec9c5cdfeb675803e54407f2e98e39b2dc1bc6b
Reviewed-on: https://chromium-review.googlesource.com/1199343
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#588038}
fs
Handle degenerate curve segments for marker orientation
When a cubic or quadratic curve have a point that coincide with another
of its point such that either the start or end tangent vector is
degenerate, the orientation in that point will be 0. In such cases try
to use the next/previous non-degenerate tangent vector (if any) instead.

Bug: 450368
Change-Id: I35db404b3f82cf61b10427678feecc2157eeeb26
Reviewed-on: https://chromium-review.googlesource.com/1196503
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#587743}
fs
Fix SVG systemLanguage conditional processing
The algorithm that performs the test between browser language preference
and the systemLanguage value has been modified
to implement a language-tag match based on the prefix,
making it consistent with BCP 47's basic filter operation and
as specified in the SVG 1.1 spec.

The previous behavior was:

- Tests whether the value of the attribute (e.g., "en-us") is a prefix
of the user preferred language (e.g., "en")
(which would evaluate to false)

The test was modified to compare in the opposite manner,
now user preferred language must be a prefix of the value.

- If the language tag length was not 2, the language tag
was not matched, (e.g. It did not match "en-us" to "en-us").
This check has been removed.

- The algorithm did not check for a trailing hyphen ("-").
We do not want langtag "it" matching langtag "ita",
but it is ok for "it" to match "it-it".
Now it does.

------------

The algorithm that performs the test between browser language preference
and the systemLanguage value has been modified
to implement a case insensitive language-tag match:

"en" matches "EN".

The previous behavior was case sensitive.

------------

Add Luca Di Domenico to AUTHORS

------------

Bug: 872378, 869440
Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: Ibe767644b5a92e8d79ffe4b7777f5f51851b3883
Reviewed-on: https://chromium-review.googlesource.com/1188314
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#587592}
fs
Update expectation for fast/dom/HTMLImageElement/image-srcset-w-onerror.html
Re-routing to newer bug which contains more analysis of the issue.

TBR=schenney@chromium.org

Bug: 636207, 876732
Change-Id: Ic857feff265217a0244fd0bd25999d0db354b0b2
Reviewed-on: https://chromium-review.googlesource.com/1196343
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#587507}
tmoniuszko
Fix views_mus_unittests dependency on views test support
Bug: 878384
Change-Id: I9105fbf1d4dcd52037b2ab6a56a42f5c7124c380
Reviewed-on: https://chromium-review.googlesource.com/1194026
Reviewed-by: Scott Violet <sky@chromium.org>
Commit-Queue: Tomasz Moniuszko <tmoniuszko@opera.com>
Cr-Commit-Position: refs/heads/master@{#587486}
fs
Force layout and paint when 'filter' changes on SVG elements
Because of how filters interact with layout and paint (bounds dependency
and filter caching et.c), we need to trigger layout (for bounds) and
paint (for caching) when 'filter' changes. (A 'none' <=> <something>
transition will trigger layout in general, but not a change from one
filter to another.)

Bug: 878591
Change-Id: I8bfad033f962bdfcb5000052ee07db7771428e3d
Reviewed-on: https://chromium-review.googlesource.com/1195485
Reviewed-by: Chris Harrelson <chrishtr@chromium.org>
Reviewed-by: Philip Rogers <pdr@chromium.org>
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#587272}
fs
Refactor SVGMarkerData
This CL reworks the core of SVGMarkerData so that it first extracts the
"features" of the current segment/PathElement, and then uses those
features to determine the orientation.

The state of SVGMarkerData is also changed from two pairs of points to
two vectors, since this is the representation that's actually used by
CurrentAngle(). It should also be a better representation when handling
of degenerate curves is added.

CurrentAngle() is changed to return a 'double', and the clamping
previously done in the method is now done by the callers. Additionally
The code that computes the bisected angle is split out to a separate
function.

Bug: 450368
Change-Id: Ic9561cab3bbf9c3f5cbc9f3607cfc9bfe90fea05
Reviewed-on: https://chromium-review.googlesource.com/1193847
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#587220}
fs
Call CommitChange after a SVG*List.clear() operation
The SVGListPropertyTearOffHelper did not call CommitChange(), meaning
that the element wasn't notified of the change, and wouldn't invalidate
et.c as needed. It also could've failed to synchronize the attribute
properly.

Bug: 843901
Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: Iad581027c3748e3e90cf6fe3d944273b207fef0f
Reviewed-on: https://chromium-review.googlesource.com/1189882
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Philip Rogers <pdr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#586625}
fs
Empty SVG*List should serialize to the null String
When synchronizing an empty list, the result should be that the
attribute is removed. However, since StringBuilder::ToString for an
"empty" StringBuilder returns the empty string we end up setting an
empty attribute. Add a special case to handle empty lists, and return
the null String there instead. The null String will translate to an
attribute removal.

All the SVG*List types that inherit from SVGListPropertyHelper are
changed call a new shared implementation (SerializeList) in that class.

Bug: 843901
Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I9442268196aaa605886fd4d6d31d66ae075f901d
Reviewed-on: https://chromium-review.googlesource.com/1189862
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#586251}
fs
Clear SVG property synchronization flag on attribute update
When an SVGAnimatedProperty has its associated attribute updated, we can
cancel any pending attribute synchronization.
This prevents overwriting the new value with the old in some cases.

Bug: 843901
Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I3654ad616fd6e6ef82a1933ec034bc9cf0097d56
Reviewed-on: https://chromium-review.googlesource.com/1189842
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#586246}
fs
Align HitTestClippedOutByClipPath coordinate space with paint
In the paint code (ClipPathClipper), the reference box used is the one
computed by LocalReferenceBox(), and the coordinate space is adjusted
for that. In the hit-testing code however, the reference box is adjusted
instead, leading to incorrect results when the reference box is
subjected to an additional transform (a 'transform' on a <clipPath>.)

Instead, set up the reference box and coordinate space in the hit-
testing code in the same way as for paint, by translating to the correct
local coordinate space before performing the actual hit-test.

Bug: 876390
Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I60acd616964a942893f0e256766aca728d14b494
Reviewed-on: https://chromium-review.googlesource.com/1188302
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#586028}
fs
Make baseVal attribute synchronization explicit
This moves the |base_value_updated_| flag from the "primitive type"
version of SVGAnimatedProperty to SVGAnimatedPropertyBase, and sets it
in BaseValueChanged. The flag is cleared in SynchronizeAttribute.
This allows some code to be simplified. It also avoids synchronizations
triggered by just having created the tear-off object like in the bug.

Bug: 873470
Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I59f30dd69286dc0799a583eb6a52c41022b0af91
Reviewed-on: https://chromium-review.googlesource.com/1188305
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Philip Rogers <pdr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#585852}
fs
Remove some unneeded includes of svg_element.h
Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I989622cb82e8135d387f5807723eaf0704e2bbb3
Reviewed-on: https://chromium-review.googlesource.com/1188306
Reviewed-by: Philip Rogers <pdr@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#585842}
fs
Rename SVGAnimatedPropertyBase::SetBaseValueAsString
Rename SVGAnimatedPropertyBase::SetBaseValueAsString to
AttributeChanged, to reflect how it interacts with the system in general
(sets a new value based on an updated attribute string) - the counter-
part to this notifier being BaseValueChanged.

Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I55b42d7662c744d4d4d39b8ea0545d0318bcbeab
Reviewed-on: https://chromium-review.googlesource.com/1184844
Reviewed-by: Philip Rogers <pdr@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#585077}
mpawlowski
Fix PrefHashFilter's behavior when clearing a tracked pref
When a tracked pref is cleared, it will no longer be present in the
DictionaryValue that represents the pref store contents, but
FilterUpdate() and FilterSerializeData() will still be called. Make
the code handle nullptr Values safely.

Bug: 867337
Change-Id: I1840c3f60bd815145a0f765adf5907a35bca1c87
Reviewed-on: https://chromium-review.googlesource.com/1150034
Reviewed-by: Gabriel Charette <gab@chromium.org>
Reviewed-by: proberge <proberge@chromium.org>
Commit-Queue: proberge <proberge@chromium.org>
Cr-Commit-Position: refs/heads/master@{#585055}
fs
Rework SVG*TearOff types back-referencing
In preparation for making base-val <-> attribute synchronization,
refactor the SVG*TearOff hierarchy so that "mutation notifications" are
funneled through the SVGAnimatedProperty(Base) if the tear-off is
associated with an attribute.

Rather than storing a SVGElement* and QualifiedName, store a reference
to the underlying SVGAnimatedProperty(Base) instead of the latter. This
is then used to send notification through.

BUG=873470

Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: Ib6e5c25cf97b806ff613a39478dc4f10f85dcaf5
Reviewed-on: https://chromium-review.googlesource.com/1181342
Reviewed-by: Philip Rogers <pdr@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#584888}
ggacek
Fix possible use-after-free when menu is closed by its item.
Fix use-after-free which occured when a menu contained an item closing
it on a mouse press event. In such case MenuController object was freed
during a call of its OnMousePressed() but it continued to modify its
member variables.

Bug: 871205
Change-Id: Ic2a5dd3a745da6b0c1ef7a87f2cb498cc1a97234
Reviewed-on: https://chromium-review.googlesource.com/1163617
Reviewed-by: Trent Apted <tapted@chromium.org>
Commit-Queue: Trent Apted <tapted@chromium.org>
Cr-Commit-Position: refs/heads/master@{#584706}
mpawlowski
Don't re-initialize mojo::core in gaia unittests
mojo::core::Init() should be called once per process, not once per test.
run_all_unittests.cc happens to already define a test launcher that
calls mojo::core::Init(), so if we use that instead of the base
launcher, we can get rid of re-initialization in test fixtures.

Bug: 869281
Change-Id: Ieb96cbe580f5f1750d7f61693c288bb578cb63b0
Reviewed-on: https://chromium-review.googlesource.com/1155595
Commit-Queue: Nico Weber <thakis@chromium.org>
Reviewed-by: Nico Weber <thakis@chromium.org>
Reviewed-by: Roger Tawa <rogerta@chromium.org>
Reviewed-by: Mihai Sardarescu <msarda@chromium.org>
Reviewed-by: Ken Rockot <rockot@chromium.org>
Cr-Commit-Position: refs/heads/master@{#584501}
fs
Fix naming of SVG{AnimatedProperty,PropertyTearOff}Base::contextElement
contextElement -> ContextElement

Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: If22cc5a0624cfaf9e1e448198c891de3030bc889
Reviewed-on: https://chromium-review.googlesource.com/1181058
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#584435}
fs
Update bugref for a bunch of tests in wpt/svg/text/reftests/
TBR=schenney@chromium.org
BUG=875411

Change-Id: I83c6386435a1d519359e41b9a38bb37d8c646900
Reviewed-on: https://chromium-review.googlesource.com/1180890
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#584388}
fs
Simplify SVGElement::ParseAttribute
There's no real reason to give 'tabindex' preferential treatment (not
anymore at least.) Just let it be handled by the common fall-through
code-path and flatten the structure of the code a bit.

Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I96e6c265aeb384fe1acc0b61378078bb3d06051c
Reviewed-on: https://chromium-review.googlesource.com/1179886
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Philip Rogers <pdr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#584218}
fs
Remove dead code in SVGListPropertyHelper<...>::ReplaceItem
If |values_| does not contain any entries, then CheckIndexBound will
fail, so the 'values_.IsEmpty()' condition can never be true here.

Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I3c96b6b198a8d9f345a08a436101d803384d11e2
Reviewed-on: https://chromium-review.googlesource.com/1179834
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#584174}
fs
Remove dead code in SVGElement::ParseAttribute
The 'params.name == HTMLNames::classAttr' condition will never be true,
because the if-block just above it will catch that case. The
|class_name_| SVGAnimatedProperty object is registered in the attribute
map. Retain and update the comment about the somewhat special handling
of the 'class' attribute.

Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I9928fb6f9c29d5db961b7f937fe4b1c0fb3fde82
Reviewed-on: https://chromium-review.googlesource.com/1179749
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#584067}
fs
Remove SVGDocumentExtensions::IsSVGRootWithRelativeLengthDescendents
It's not used.

Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: If6630b2e404108044833ea5512151facdfe7e59d
Reviewed-on: https://chromium-review.googlesource.com/1179760
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#584061}
fs
Avoid recursing in the FragmentData destructor
Too deep recursions can cause stack overflows.

Bug: 874759
Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: Ie532e28bceee4e7f1c3ab501b80c0e2f14be083a
Reviewed-on: https://chromium-review.googlesource.com/1106378
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#583657}
fs
external/wpt/svg/render/reftests/blending-00[12].svg now pass
TBR=schenney@chromium.org
BUG=866928

Change-Id: I3d228b5596e2c644399882f0c5c697ff0d882b6e
Reviewed-on: https://chromium-review.googlesource.com/1177383
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#583586}
fs
Tweak cover blending in wpt/svg/render/reftests/blending-00[12].svg
Set 'mix-blend-mode' to 'normal' on the stroked rects that make up the
"edge cover". Hopefully this avoids aliasing artifacts on the edge cover
itself.

In blending-002.svg, localize the use of (non-auto) isolation to the
content of the test.

BUG=866928

Change-Id: I269e01a4d814f7fd8e202ffdf71c1a1d5dc48347
Reviewed-on: https://chromium-review.googlesource.com/1175825
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#583277}
fs
wpt/svg/painting/reftests/markers-orient-001.svg now pass
TBR=schenney@chromium.org
BUG=872697

Change-Id: Ib925da7763c4091feacfd489bce1c82c752309ef
Reviewed-on: https://chromium-review.googlesource.com/1175796
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#583226}
fs
Fix element creation in wpt/svg/idlharness.window.js
Adjust casing for 'desc', 'switch' and 'mpath'. Remove a duplicate
'animateColor'.

BUG=868861

Change-Id: I19256547abea3028791de402e354c47eee8ce949
Reviewed-on: https://chromium-review.googlesource.com/1174261
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Cr-Commit-Position: refs/heads/master@{#582955}
fs
Fix ref for external/wpt/svg/painting/reftests/paint-order-001.svg
The property:

  paint-order: stroke markers

is equivalent to:

  paint-order: stroke markers fill

(Spec: "If any of the three keywords are omitted, they are painted last,
 in the order they would be painted with paint-order: normal."
 @ https://svgwg.org/svg2-draft/painting.html#PaintOrder )

So the fill should be painted last. Add 'marker:none' to the appropriate
element in the ref.

Disable stroke and marker in a few cases to avoid "overdraw" and thus
"incorrect" edge rendering in some cases.

BUG=872972

Change-Id: I835a6980fa069825ed2a2e920862018faec6d93c
Reviewed-on: https://chromium-review.googlesource.com/1172778
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#582914}
mharanczyk
Add target to mojom template that generates all bindings headers.
The change should address random build failures of missing mojo
bindings generated headers on targets that cannot depend on bindings
code directly but need to use it.

Extra: Add missing deps to blink scheduler test_support target.

Bug: 852558
Change-Id: Ib0e3be23093dcda6629f6f8d0149d9d5a57bac07
Reviewed-on: https://chromium-review.googlesource.com/1151301
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Reviewed-by: Marijn Kruisselbrink <mek@chromium.org>
Reviewed-by: Ken Rockot <rockot@chromium.org>
Reviewed-by: Alexander Timin <altimin@chromium.org>
Commit-Queue: Marek Haranczyk <mharanczyk@opera.com>
Cr-Commit-Position: refs/heads/master@{#582874}
fs
Disable 'visual aid' in wpt/svg/painting/reftests/markers-orient-001.svg
The test has a red version of the reference painted under the actual
test content. Because of how alpha/coverage often work (at least in
software rasterizers), this can lead to the read bleeding through and
thus affecting the comparison with the reference image.
Disable the red reference shapes by adding a CSS rule. This way, if
someone feels it's useful for debugging they can easily re-enable it.

BUG=872697

Change-Id: Id47757c9dd112ead0db9c2dcd1adc74d5a52e55d
Reviewed-on: https://chromium-review.googlesource.com/1172622
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#582598}
fs
Update bugrefs for SVG WPT tests from crbug.com/872697
external/wpt/svg/text/reftests/text-multiline-001.svg
external/wpt/svg/text/reftests/text-multiline-002.svg
external/wpt/svg/text/reftests/text-multiline-003.svg

 => crbug.com/366558

external/wpt/svg/text/reftests/text-inline-size-001.svg
external/wpt/svg/text/reftests/text-inline-size-002.svg
external/wpt/svg/text/reftests/text-inline-size-003.svg
external/wpt/svg/text/reftests/text-inline-size-005.svg
external/wpt/svg/text/reftests/text-inline-size-006.svg
external/wpt/svg/text/reftests/text-inline-size-007.svg
external/wpt/svg/text/reftests/text-inline-size-101.svg
external/wpt/svg/text/reftests/text-inline-size-201.svg

 => crbug.com/366553

external/wpt/svg/painting/reftests/markers-orient-001.svg

 => crbug.com/872697 (pending testfix)

TBR=schenney@chromium.org
BUG=366553,366558,872697

Change-Id: Ib75f5c0cda767108745618ab508a6a8730e3b1b1
Reviewed-on: https://chromium-review.googlesource.com/1172430
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#582576}
fs
Update bugref for external/wpt/svg/shapes/reftests/pathlength-002.svg
TBR=schenney@chromium.org
BUG=863355

Change-Id: Ib58518bb68af39fb5e106cb0da0f08df5e6a832a
Reviewed-on: https://chromium-review.googlesource.com/1172361
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#582565}
fs
Update bug references for some failing SVG WPT tests
These tests fail because of lack of support for references to general
shapes from <textPath> and the 'side' attribute in <textPath>.
crbug.com/366559 is the bug for supporting thos features, so redirect to
it.

Tests:

  external/wpt/svg/shapes/reftests/pathlength-003.svg
  external/wpt/svg/text/reftests/textpath-side-001.svg
  external/wpt/svg/text/reftests/textpath-shape-001.svg

TBR=schenney@chromium.org
BUG=366559,863355

Change-Id: Ia2fc56704fafd3ace0af949fceeaf2799f960fe7
Reviewed-on: https://chromium-review.googlesource.com/1172298
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#582542}
oscarj
Enable jumbo support in components/password_manager/
Without jumbo, password_manager takes around 3.6 CPU
minutes to build. With jumbo and chunk size 50,
password_manager takes around 11 seconds to build,
a decrease by around 94 %.

This commit enables jumbo support in
components/password_manager.

Bug: 869381
Change-Id: Icce9d9800a01d452d63ba137c52c2a0495359da8
Reviewed-on: https://chromium-review.googlesource.com/1166963
Commit-Queue: Oscar Johansson <oscarj@opera.com>
Reviewed-by: Vadym Doroshenko <dvadym@chromium.org>
Cr-Commit-Position: refs/heads/master@{#582109}
oscarj
Enable jumbo support in components/autofill
//components/autofill takes 6.6 CPU minutes to compile.
With jumbo and chunk size = 50 the build time is reduced
by around 54 %.

This commit enables jumbo support in components/autofill.

Bug: 869381
Change-Id: Iba405b8c2199f68c11a13ee0872bfaae87943d7f
Reviewed-on: https://chromium-review.googlesource.com/1170689
Reviewed-by: Vadym Doroshenko <dvadym@chromium.org>
Commit-Queue: Oscar Johansson <oscarj@opera.com>
Cr-Commit-Position: refs/heads/master@{#582105}
oscarj
Replace operator with lambda (content/browser)
When building with jumbo the compiler sees two
operator==, declared in the files:
content/common/media/media_devices.h
content/browser/indexed_db/scopes/scopes_lock_manager.cc

Therefore, it throws an error. This commit solves the
issue by replacing the operator with a lamdba doing
the same operation.

Change-Id: I285a95a77ac55d2502d146316da12339de277fc9
Reviewed-on: https://chromium-review.googlesource.com/1169468
Commit-Queue: Oscar Johansson <oscarj@opera.com>
Reviewed-by: Ken Buchanan <kenrb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#582086}
oscarj
Make function names unique (components/autofill)
When building using jumbo, files gets merged and
functions with the same name may end up in the
same namespace and conflict. This happens for
functions in:
components/autofill/core/browser/webdata/autofill_wallet_syncable_service.cc
components/autofill/core/browser/webdata/autofill_sync_bridge_util.cc

The functions are very similar but not identical. Therefore,
the functions in
components/autofill/core/browser/webdata/autofill_wallet_syncable_service.cc
are renamed to be something more file specific.

Bug: 869381
Change-Id: I8b26857cfa9fd80b42d9ff79de4b49753c824b54
Reviewed-on: https://chromium-review.googlesource.com/1169018
Reviewed-by: Vadym Doroshenko <dvadym@chromium.org>
Commit-Queue: Oscar Johansson <oscarj@opera.com>
Cr-Commit-Position: refs/heads/master@{#581867}
oscarj
Move TruncateUTF8 to util (components/autofill)
When building using jumbo, files gets merged and
functions with the same name may end up in the
same namespace and conflict. This happens for
the function TruncateUTF8.

This commit solves the issue by moving the function
to a shared util file.

Bug: 869381
Change-Id: Ia9f754138fb18aa9af575f7cd2f92bca4e8ea0c2
Reviewed-on: https://chromium-review.googlesource.com/1168497
Reviewed-by: Vadym Doroshenko <dvadym@chromium.org>
Commit-Queue: Oscar Johansson <oscarj@opera.com>
Cr-Commit-Position: refs/heads/master@{#581866}
oscarj
Specify autofill::AddressField (component/autofill)
When building using jumbo, files gets merged and
the compiler gets a larger scope. AddressField is
defined in both autofill::AddressField and
::i18n::addressinput::AddressField and the
reference is ambiguous. That is the reason
the namespace autofill:: needs to be specified
even though the call is made within that namespace.

Bug: 869381
Change-Id: I3ac8813403e04b37b7936397e617aab436214056
Reviewed-on: https://chromium-review.googlesource.com/1169012
Reviewed-by: Vadym Doroshenko <dvadym@chromium.org>
Commit-Queue: Oscar Johansson <oscarj@opera.com>
Cr-Commit-Position: refs/heads/master@{#581864}
oscarj
jumbo build: Rename constants to be unique (storage/browser)
When building using jumbo, files gets merged and
constants with the same name may end up in the same
namespace/scope and conflict.

This commit solves the issue by renaming the constants
to something more file specific.

Bug: 871163
Change-Id: Ic4973b976597dbc097897406951ae8c2cbdf6430
Reviewed-on: https://chromium-review.googlesource.com/1163505
Commit-Queue: Oscar Johansson <oscarj@opera.com>
Reviewed-by: Victor Costan <pwnall@chromium.org>
Cr-Commit-Position: refs/heads/master@{#581535}
oscarj
Forward declare operator overload (components/)
When building using jumbo, files get merged and more options
are presented for the compiler. When using the operator overload <<
in PasswordRequirementsSpec, the compiler gets too many
options and will fail before reaching the correct operator overload.

The issue solved by forward declaring the operator overload in the files
that uses it.

Bug: 869381
Change-Id: I3d0226c9e12b1e64b3359a1efb2f9948a24e61b6
Reviewed-on: https://chromium-review.googlesource.com/1160228
Reviewed-by: Vadym Doroshenko <dvadym@chromium.org>
Commit-Queue: Oscar Johansson <oscarj@opera.com>
Cr-Commit-Position: refs/heads/master@{#581526}
oscarj
Move macro to util file (storage/browser)
When building using jumbo, files gets merged
together and macros with the same name may
end up in the same namspace and conflict. This
happens for the macro UMA_HISTOGRAM_MBYTES.

This commit solves the issue by moving
the macro to a shared util file.

Bug: 871163
Change-Id: If3af541913a6add55ce739eb43f5a747cf4afd9a
Reviewed-on: https://chromium-review.googlesource.com/1163602
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Commit-Queue: Oscar Johansson <oscarj@opera.com>
Cr-Commit-Position: refs/heads/master@{#581192}
oscarj
Enable jumbo support in //chrome/renderer
Without jumbo, chrome/renderer takes around
7 CPU minutes, which is around 1.2 % of the
total build time.

This commit will enable jumbo support for
this target, reducing build time when using
jumbo.

Bug: 870617
Change-Id: I4b35b6fc69e30c61dc1f24082bbaa338ad96b4ef
Reviewed-on: https://chromium-review.googlesource.com/1161804
Reviewed-by: Scott Violet <sky@chromium.org>
Commit-Queue: Oscar Johansson <oscarj@opera.com>
Cr-Commit-Position: refs/heads/master@{#580827}
oscarj
Rename constants to be unique (chrome/renderer)
When building using jumbo, files gets merged and
constants with the same name may end up in the
same namespace and conflict. This happens for:
chrome/renderer/chrome_content_renderer_client.cc
chrome/renderer/extensions/extension_hooks_delegate.cc
chrome/renderer/extensions/tabs_hooks_delegate.cc

This commit solves the issue by renaming the constants
to something more file specific.

Bug: 870617
Change-Id: I3ded3625b3851724362d496191c5bd25dda081f6
Reviewed-on: https://chromium-review.googlesource.com/1161803
Reviewed-by: Scott Violet <sky@chromium.org>
Commit-Queue: Oscar Johansson <oscarj@opera.com>
Cr-Commit-Position: refs/heads/master@{#580821}
oscarj
Move function to util (components/password_manager/)
When building using jumbo, files gets merged and
functions with the same name may end up in the same
namespace/scope and conflict. This happens for the
function UpdateMetadataForUsage.

This commit solves the issue by moving the function
to a shared util file.

Bug: 869381
Change-Id: I57b8f9c96c785a3bbfc8250f0edbe7690c3b3ff7
Reviewed-on: https://chromium-review.googlesource.com/1160482
Commit-Queue: Oscar Johansson <oscarj@opera.com>
Reviewed-by: Vadym Doroshenko <dvadym@chromium.org>
Cr-Commit-Position: refs/heads/master@{#580514}
oscarj
Rename UserDataKey to be unique (components/autofill)
When building using jumbo, files gets merged and
functions with the same name may end up in the same
namespace/scope and conflict. This happens for
the function UserDataKey. Since the function relies
on that the static int is unique this function could
not be moved to a shared util file. Instead, the issue
was solved by renaming the function.

Bug: 869381
Change-Id: Ifd67ac865e9d0bad272cc51ef1af8c3a5b382893
Reviewed-on: https://chromium-review.googlesource.com/1160487
Reviewed-by: Vadym Doroshenko <dvadym@chromium.org>
Commit-Queue: Oscar Johansson <oscarj@opera.com>
Cr-Commit-Position: refs/heads/master@{#580483}
oscarj
Rename LoginTableColumns (components/password_manager)
When building using jumbo, files gets merged and enums
with the same name may end up in the same namespace and
conflict. This happens for he enum LoginTableColumns.

This commit solves the issue by renaming one instance
of LoginTableColumns to something more file specific.

Bug: 869381
Change-Id: I9a0b95dcddee3bbc9f1b8969142aa683e11025a0
Reviewed-on: https://chromium-review.googlesource.com/1160496
Reviewed-by: Vadym Doroshenko <dvadym@chromium.org>
Commit-Queue: Oscar Johansson <oscarj@opera.com>
Cr-Commit-Position: refs/heads/master@{#580482}
oscarj
Move variable to util (components/autofill/)
When building using jumbo, files get merged and
variables with the same name may
end up in the same namespace and conflict.

This happens for the constant kLocalGuidSize in autofill/core/browser.
The variable is moved to a util file in
common.

Bug: 869381
Change-Id: I038ef40acd5617f9d9d1e18c81a2fcce55cab8eb
Reviewed-on: https://chromium-review.googlesource.com/1158544
Reviewed-by: Vadym Doroshenko <dvadym@chromium.org>
Commit-Queue: Oscar Johansson <oscarj@opera.com>
Cr-Commit-Position: refs/heads/master@{#580142}
oscarj
Enable jumbo support for //components/omnibox
Without jumbo, omnibox takes around 3 CPU minutes to build
which is around 0.5 % of the total build time.

This commit enables jumbo support in components/omnibox.

Bug: 869381
Change-Id: Ifb51dab5a6b034a384c6bf07ee2f5b8c17b952a7
Reviewed-on: https://chromium-review.googlesource.com/1156593
Reviewed-by: Tommy Li <tommycli@chromium.org>
Commit-Queue: Oscar Johansson <oscarj@opera.com>
Cr-Commit-Position: refs/heads/master@{#580114}
oscarj
Move CreditCard function to util (/autofill)
When buidling using jumbo, files gets merged and functions
with the same name may end up in the same namespace and
conflict. This happens for the function IsCreditCardExporationType
in:
components/autofill/core/browser/form_structure.cc
components/autofill/core/browser/autofill_manager.cc

Since the functions are identical they are moved to a shared
util file. Since the function needs
components/autofill/core/browser/field_types.h it cannot be
moved to components/autofill/core/common.

Bug: 869381
Change-Id: I69492fbc8af0ed9289504cb6aba3e745acb17b24
Reviewed-on: https://chromium-review.googlesource.com/1158364
Commit-Queue: Oscar Johansson <oscarj@opera.com>
Reviewed-by: Vadym Doroshenko <dvadym@chromium.org>
Cr-Commit-Position: refs/heads/master@{#579778}
oscarj
Renaming conflicting variables names (components/autofill)
When building using jumbo, files get merged and variables
and functions with the same name may end up in the same
namespace/scope and conflict.

This commit solves the issues in components/autofill
by renaming the conflicting functions and variables to
something more file specific.

Bug: 869381
Change-Id: Ifccae861ca7379346fb0939113ac227b770f9640
Reviewed-on: https://chromium-review.googlesource.com/1158235
Reviewed-by: Vadym Doroshenko <dvadym@chromium.org>
Commit-Queue: Oscar Johansson <oscarj@opera.com>
Cr-Commit-Position: refs/heads/master@{#579768}
oscarj
Resolve namespace scope issue (components/autofill)
When building using jumbo, files get merged. This
results in a conflict with the namespace i18n.
This commit solves the issue bu specifying that the
global namespace should be used, by addind the
"::" prefix.

Bug: 869381
Change-Id: I3432251c5f91fbb1f35df6ef5a9c70337df5e21f
Reviewed-on: https://chromium-review.googlesource.com/1156601
Reviewed-by: Vadym Doroshenko <dvadym@chromium.org>
Commit-Queue: Oscar Johansson <oscarj@opera.com>
Cr-Commit-Position: refs/heads/master@{#579765}
oscarj
Enable jumbo for media/capture
Building //media takes around 23 CPU minutes. A experimental
branch showed that this could be reduced, by using jumbo,
to around 9 CPU minutes. media/capture is the fifth largest part
of media and takes around 2 CPU minutes to compile without
jumbo.

This commit enables jumbo for media/capture.

Bug: 867350
Change-Id: Ib53497ecde8a096b4436b4c60069e9e24e482a68
Reviewed-on: https://chromium-review.googlesource.com/1154922
Reviewed-by: Chrome Cunningham (In Paris) <chcunningham@chromium.org>
Commit-Queue: Chrome Cunningham (In Paris) <chcunningham@chromium.org>
Cr-Commit-Position: refs/heads/master@{#579745}
oscarj
Remove "using namespace" (jumbo, media/capture)
When building using jumbo, files get merged and
the usage of "using namespace..." results in the
error:
using namespace directive in global context in header

This commit solves the issue by removing
"using namespace" and instead write the complete
name when it is used.

Bug: 867350
Change-Id: Iba570fbb737819ed515dc686ba65f9e7f9b47653
Reviewed-on: https://chromium-review.googlesource.com/1154538
Commit-Queue: Chrome Cunningham (In Paris) <chcunningham@chromium.org>
Reviewed-by: Chrome Cunningham (In Paris) <chcunningham@chromium.org>
Cr-Commit-Position: refs/heads/master@{#579380}
bratell
Avoid the name "interface" since it's a macro in Windows
In Win32 some headers defines "interface" to mean struct which
makes it unsuitable to cross platform code. This instance was
hit in a jumbo experimental build where apparently enough
win32 headers were included in the translation unit.

Bug: 864986
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Change-Id: I1e906a46620378be2ded6a4a4868e2034cc1868b
Reviewed-on: https://chromium-review.googlesource.com/1152735
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#578715}
oscarj
Enable jumbo for media/cast
Building //media takes around 23 CPU minutes. A experimental
branch showed that this could be reduced, by using jumbo,
to around 9 CPU minutes. media/cast is the fourth largest part
of media and takes around 2 CPU minutes to compile without
jumbo.

This commit enables jumbo for media/cast.

Bug: 867350
Change-Id: Iaefb6e7ac95c1c7fab78478f879a8ba542f329d9
Reviewed-on: https://chromium-review.googlesource.com/1152807
Reviewed-by: Chrome Cunningham (In Paris) <chcunningham@chromium.org>
Commit-Queue: Chrome Cunningham (In Paris) <chcunningham@chromium.org>
Cr-Commit-Position: refs/heads/master@{#578609}
oscarj
Enable jumbo for media/filters
Building //media takes around 23 CPU minutes. A experimental
branch showed that this could be reduced, by using jumbo,
to around 9 CPU minutes. media/filters is the third largest part
of media and takes around 2 CPU minutes to compile without
jumbo.

This commit enables jumbo for media/filters.

Bug: 867350
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Change-Id: I01fe34fb39b35bf1a95e893916c2fc49e59a6d9e
Reviewed-on: https://chromium-review.googlesource.com/1152808
Reviewed-by: Chrome Cunningham (In Paris) <chcunningham@chromium.org>
Commit-Queue: Chrome Cunningham (In Paris) <chcunningham@chromium.org>
Cr-Commit-Position: refs/heads/master@{#578608}
oscarj
Move transport functions and variables to util (media/cast)
When building using jumbo, files get merged and functions and
variables with the same name may end up in the same namespace
and conflict. This happens in:
media/cast/net/cast_transport_impl.cc
media/cast/net/udp_transport_impl.cc

Since the functions and variables are identical they are
moved to a common util file.

Bug: 867350
Change-Id: I08747781d56b78e9a8783bfec870c7084183062a
Reviewed-on: https://chromium-review.googlesource.com/1152738
Commit-Queue: Chrome Cunningham (In Paris) <chcunningham@chromium.org>
Reviewed-by: Chrome Cunningham (In Paris) <chcunningham@chromium.org>
Cr-Commit-Position: refs/heads/master@{#578596}
oscarj
Rename InProgressFrameEncode to be unique (media/cast)
When building using jumbo, files get merged and functions
with the same name may end up in the same namespace. This
happens with the functions InProgressFrameEncode defined in:
media/cast/sender/external_video_encoder.cc
media/cast/sender/h264_vt_encoder.cc

This commit solves the issue by renaming the functions
to something more file specific.

Bug: 86750
Change-Id: I8f6fb84783539dcec4aae824bb971e982b4db5c2
Reviewed-on: https://chromium-review.googlesource.com/1152745
Commit-Queue: Chrome Cunningham (In Paris) <chcunningham@chromium.org>
Reviewed-by: Chrome Cunningham (In Paris) <chcunningham@chromium.org>
Cr-Commit-Position: refs/heads/master@{#578594}
oscarj
Resolve jumbo conflict in video decoders (media/filters)
When building using jumbo, files gets merged. Files and
variables with the same name may merge into the same
namespace or scope and conflict. This happens in the files:
media/filters/aom_video_decoder.cc
media/filters/ffmpeg_video_decoder.cc
media/filters/vpx_video_decoder.cc

This commit solves the issue by renaming the function
GetThreadCount to something more file specific. It also
moves some constants to that function.

Bug: 867350
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Change-Id: Id57aa6cc6ac10acd0073eee032d0d04592ba87e4
Reviewed-on: https://chromium-review.googlesource.com/1151311
Commit-Queue: Chrome Cunningham (In Paris) <chcunningham@chromium.org>
Reviewed-by: Chrome Cunningham (In Paris) <chcunningham@chromium.org>
Cr-Commit-Position: refs/heads/master@{#578593}
oscarj
Resolve function name conflict (media/filters)
When building using jumbo, files merged and functions with
the same name may end up in the same namespace/scope. This
happens for the function OnError() that gets called by Bind().
OnError() is defined in:
media/filters/audio_video_metadata_extractor.cc
media/filters/media_file_checker.cc

This commit solves the issue by renaming one of the functions
to something more file specific.

Bug: 867350
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Change-Id: I1b762e4f1c4b11751df2302874af53106889d085
Reviewed-on: https://chromium-review.googlesource.com/1151316
Commit-Queue: Chrome Cunningham (In Paris) <chcunningham@chromium.org>
Reviewed-by: Chrome Cunningham (In Paris) <chcunningham@chromium.org>
Cr-Commit-Position: refs/heads/master@{#578592}
oscarj
Forward declare template specialization (media/filters)
In jumbo builds the compiler complain about not
knowing about the template specialization of the
function OnStartOfCodedFrameGroup, that is defined
in source_buffer_stream.cc. To solve this issue
a fordward declaration is done before usage.

Bug: 867350
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Change-Id: If090b848bc2ae78121620aba2349eac4c63d8a65
Reviewed-on: https://chromium-review.googlesource.com/1151313
Commit-Queue: Chrome Cunningham (In Paris) <chcunningham@chromium.org>
Reviewed-by: Chrome Cunningham (In Paris) <chcunningham@chromium.org>
Cr-Commit-Position: refs/heads/master@{#578591}
bratell
Split osmesa code into its own build target
Some osmesa code uses the "real" OSMesa API headers and those are
not 100% compatible with the wrapper API headers normally used.
That incompatibility means that they cannot compile in the same
translation unit (jumbo builds). This splits the osmesa files
into their own build target to avoid potential conflicts.

Also changes the code to be consistent with how osmesa.h is included.

Bug: 864986
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Change-Id: Ifc96cf25f7b69f23f293e297ab59ce5192f1cd20
Reviewed-on: https://chromium-review.googlesource.com/1149874
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#578588}
bratell
Change variable names in gpu info tables to be jumbo compatible
In jumbo compilation many cc files compile in the same translation
unit and if they use the same local variable names, there will
be compilation clashes. That happened in the automatically generated
code with info about various problems in gpu drivers or the like.

This patch makes sure necessary variables have unique names by
adding a unique keyword for each set of data.

Bug: 864986
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Change-Id: Ief86248f2d17f123602c7e641c286d0550a85d89
Reviewed-on: https://chromium-review.googlesource.com/1151314
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Antoine Labour <piman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#578587}
bratell
Don't use Khronos headers from gpu code
Switching from Khronos headers to more approprite headers
primarily to avoid jumbo compilation problems but also
because it was wrong.

Bug: 864986
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Change-Id: I9a7c33acfcc72133638c47ae370020331c445ac9
Reviewed-on: https://chromium-review.googlesource.com/1151630
Reviewed-by: Antoine Labour <piman@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#578402}
mboc
Allow values with dot delimiters as split mac dictionary keys.
Using e.g. URLs as hash split keys is not possible ATM. Change this by
deliberately not expanding the dictionary tree on settings split hashes.

Change-Id: Ifbc09aedd546f2f7e774807e091caa2069e1d0a6
Reviewed-on: https://chromium-review.googlesource.com/1144880
Commit-Queue: Gabriel Charette <gab@chromium.org>
Reviewed-by: Bernhard Bauer <bauerb@chromium.org>
Reviewed-by: Gabriel Charette <gab@chromium.org>
Cr-Commit-Position: refs/heads/master@{#578378}
oscarj
Enable jumbo support in media/base
Building //media takes around 23 CPU minutes. A experimental
branch showed that this could be reduced, by using jumbo,
to around 9 CPU minutes. media/base is the second largest part
of media and takes around 3.1 CPU minutes to compile without
jumbo.

This commit enables jumbo for media/base.

Bug: 867350
Change-Id: Ie2dae0a65bfc596b30339712a39cab321e293f48
Reviewed-on: https://chromium-review.googlesource.com/1150037
Reviewed-by: Chrome Cunningham (In Paris) <chcunningham@chromium.org>
Commit-Queue: Oscar Johansson <oscarj@opera.com>
Cr-Commit-Position: refs/heads/master@{#578305}
oscarj
Move operator to namespace "media" (media/base)
When building using jumbo, the call:
s << " decrypt=" << (*decrypt_config_);
in media/base/decoder_buffer.cc does not
find the operator overload in:
media/base/decrypt_config.h
since it is not located within the same
namspace as DecryptConfig.

This commit solves the problem by moving
the operator overload to the namespace.

Bug: 867350
Change-Id: I92073b73cc52ac0bacc7446ce3d1389fef5f6c13
Reviewed-on: https://chromium-review.googlesource.com/1150164
Reviewed-by: Chrome Cunningham (In Paris) <chcunningham@chromium.org>
Commit-Queue: Oscar Johansson <oscarj@opera.com>
Cr-Commit-Position: refs/heads/master@{#578246}
bratell
[jumbo] Refactor and deduplicate some command_buffer constants
A couple of constants in the command_buffer code were duplicated
which caused symbol clashes in jumbo build experiments. This patch
tries to ensure each constant is only in the code once.

To make it possible to deduplicate kS3TCBlockWidth, ASTCBlockArray
and kASTCBlockArray, some validation code had to move from
gles2_cmd_decoder.cc to gl_utils.cc where there already were some
validators.

Bug: 864986
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Change-Id: I4ffb28630a1900a9400f29690cfb802497550077
Reviewed-on: https://chromium-review.googlesource.com/1145308
Reviewed-by: Antoine Labour <piman@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#578244}
oscarj
Enable jumbo for media/mojo
Building //media takes around 23 CPU minutes. A experimental
branch showed that this could be reduced, by using jumbo,
to around 9 CPU minutes. media/mojo is the largest part
of media and takes around 5 CPU minutes to compile without
jumbo.

This commit enables jumbo for media/mojo.

Bug: 867350
Change-Id: Iad7e5957cc7f01110c4163c9d368f1f04496630a
Reviewed-on: https://chromium-review.googlesource.com/1149863
Reviewed-by: Dale Curtis <dalecurtis@chromium.org>
Commit-Queue: Oscar Johansson <oscarj@opera.com>
Cr-Commit-Position: refs/heads/master@{#578232}
bratell
[jumbo] Declare a template specialization before using it
A quirk in C++ is that you can't specialize a template after it
has been "used" unspecialized in a translation unit. This would
happen in jumbo builds with
ApiResourceManager<EasyUnlockPrivateConnection>::GetFactoryInstance()
which is defined in easy_unlock_private_connection.cc but used
undeclared in easy_unlock_private_api.cc.

The fix is simple, just declare the specialization before it's used
and this patch adds that declaration to
easy_unlock_private_connection.h.

Bug: 850484
Change-Id: If5c12b67c92889a5c986b6a571d9895dea03cb6e
Reviewed-on: https://chromium-review.googlesource.com/1149860
Reviewed-by: Toni Barzic <tbarzic@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#578061}
bratell
Fix link error for ViewProperties for Mac (!aura)
TBR=sky@chromium.org

Bug: 854704

Change-Id: I58fded8d7ad7c764e55ac435940ff0656a1d2aa5
Reviewed-on: https://chromium-review.googlesource.com/1150235
Reviewed-by: Daniel Bratell <bratell@opera.com>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#578006}
bratell
constexpr all the blink geometry types
With constexpr you make it slightly easier for the compiler to
optimize code, though the effect will be small.

Also, with constexpr types the compiler becomes better at telling
us when a variable is unused. This removes such variables.

Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_layout_ng;luci.chromium.try:linux_layout_tests_slimming_paint_v2;luci.chromium.try:win_optional_gpu_tests_rel;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I6b52edc7ef67167bf8b7864c97a5f57b50d85398
Reviewed-on: https://chromium-review.googlesource.com/1131509
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
Cr-Commit-Position: refs/heads/master@{#577950}
oscarj
Move function to util files (media/mojo)
When building using jumbo, files gets merged and functions
with the same name may end up in the same scope and conflict.

This commits moves such functions to shared util files,
instead of having duplicates.

Bug: 867350
Change-Id: I9986d6d653ef71acbf9583e18aa85a8e34f6e6f0
Reviewed-on: https://chromium-review.googlesource.com/1149781
Reviewed-by: Chrome Cunningham (In Paris) <chcunningham@chromium.org>
Commit-Queue: Oscar Johansson <oscarj@opera.com>
Cr-Commit-Position: refs/heads/master@{#577850}
oscarj
Remove unnecessary include (media/mojo/services)
When building using jumbo, files get merged together
and macros may end up in the same scope and conflict.
In media/mojo/services/test_mojo_media_client.cc a include
resulted in including ui/gl macros, which conflicted with
GLES2 macros.

This commit solved the issue by removing the include. The include
seems to be unnecessary and not used within the file.

Bug: 867350
Change-Id: I54f01bcd5d18b4acbaa231a5cf78a8b5e8f719e7
Reviewed-on: https://chromium-review.googlesource.com/1149862
Reviewed-by: Chrome Cunningham (In Paris) <chcunningham@chromium.org>
Commit-Queue: Oscar Johansson <oscarj@opera.com>
Cr-Commit-Position: refs/heads/master@{#577847}
bratell
[jumbo] Give two internal ui/gl functions unique names
MakeFunctionUnique and MockInvalidFunction are functions
that are generated twice by ui/gl/generate_bindings.py. With that
double generation the code can't be jumbo compiled because of
the resulting symbol clash when the code ends up in
a single translation unit.

This patch gives the functions unique names by adding the "set_name"
(gl, egl) to their names.

Bug: 864986
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Change-Id: Ia08d42a86b99bddc808d1ac7c921f6801eb07782
Reviewed-on: https://chromium-review.googlesource.com/1148453
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#577800}
bratell
Switch ui/gl/gl_enums.cc from khronos GL to ui/gl
gl_enums used Khronos to get a definition of GL_NONE but
that broke jumbo build experiments because you cannot have
khronos headers and ui/gl headers in the same translation
unit.

This patch switches gl_enums.cc to use ui/gl/gl_bindings.h like
the rest of the code.

Bug: 864986
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Change-Id: Id239ca4aa55278ac012c066d6a6f8e243b3ec319
Reviewed-on: https://chromium-review.googlesource.com/1148442
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#577799}
bratell
Deduplicated a gpu code helper function to avoid jumbo clashes
There are three identical small ToGLuint functions which clashed
in jumbo build experiments. This moves it to gles2_cmd_utils.h and
changes the type to not add a dependency on GL in
command_buffer/common.

Bug: 864986
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Change-Id: Iad7cfc8a2506b765ba7a93c2eb9dc59149e5b8f4
Reviewed-on: https://chromium-review.googlesource.com/1141944
Reviewed-by: Antoine Labour <piman@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#577499}
bratell
Delete temporary local AHardwareBuffer definition
While waiting for a newer ndk, some constants and types
were locally declared. Since January there is an NDK that contains
those types so the local declarations are not needed anymore

In some jumbo builds the local and ndk declaration clashed so it
is time to drop the local declarations, but keeping some types
still needed by the dynamic lookup of some (to be public) internal
functions.

Bug: 771171
Change-Id: Ie29ad63108b6c7aef857752daf6741902fdd749e
Reviewed-on: https://chromium-review.googlesource.com/1141735
Reviewed-by: agrieve <agrieve@chromium.org>
Reviewed-by: Richard Coles <torne@chromium.org>
Reviewed-by: Klaus Weidner <klausw@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#577237}
bratell
Switch shader_translator from khronos GL to ui/gl
In jumbo experiments build targets using both ui/gl+mesa and khronos
at the same time fail to compile because the two GL libraries
declare the same constants and functions.

This happened in gpu/command_buffer/service because ShaderTranslator
used khronos GL when it should have been using ui/gl. This patch switches
that code over to ui/gl.

Bug: 864986
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Change-Id: I522243374eaf0416df58d84e20585c11aef3de32
Reviewed-on: https://chromium-review.googlesource.com/1145306
Reviewed-by: Antoine Labour <piman@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#577236}
oscarj
Enable jumbo for chrome/browser/ui
This commit will enable jumbo for chrome/browser/ui. This will
reduce the build time by approximately 90 CPU minutes (more
than 10 % of the total jumbo build time for chromium), compared to
building without jumbo.

Bug: 803406
Change-Id: I7774bd55378ea88dadcbf452679686e383bb15a2
Reviewed-on: https://chromium-review.googlesource.com/1143269
Commit-Queue: Oscar Johansson <oscarj@opera.com>
Reviewed-by: Elly Fong-Jones <ellyjones@chromium.org>
Cr-Commit-Position: refs/heads/master@{#577213}
oscarj
Rename kSeparatorWidth to be unique (browser/ui)
When building using Jumbo unnamed namespaces gets merged
and variables with the same name conflict. This happens
for the variables kSeparatorWidth in:
chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc
chrome/browser/ui/views/location_bar/icon_label_bubble_view.cc

This commit solves the issue by renaming the constants to
something more file specific. It also renames other variables
in the same namespace, so the naming is locally consistent.

Change-Id: I2ae24ce5b67372286a5aa4e48a0bc125606ff778
Reviewed-on: https://chromium-review.googlesource.com/1146641
Commit-Queue: Oscar Johansson <oscarj@opera.com>
Reviewed-by: Elly Fong-Jones <ellyjones@chromium.org>
Cr-Commit-Position: refs/heads/master@{#577166}
mharanczyk
Add missing deps to v8 binding test target to fix random build failures.
Random failures encountered so far can be reproduced by compiling
third_party/blink/renderer/bindings/core/v8:testing target on clean repo.

Change-Id: If92737cdfdc6f12533776b6ded935ac1a2689137
Reviewed-on: https://chromium-review.googlesource.com/1127040
Commit-Queue: Marek Haranczyk <mharanczyk@opera.com>
Reviewed-by: Jochen Eisinger <jochen@chromium.org>
Reviewed-by: Hitoshi Yoshida <peria@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#577137}
wdzierzanowski
Reset timestamp validator when config change is complete
When DecoderStream<DemuxerStream::AUDIO> encounters a config change it needs to
do two things, among others: flush the decoder and reset the audio timestamp
validator. It's important that it does the latter only after processing any
decoder output produced during the flushing.

This CL moves the responsibility of resetting the validator from
DecoderStream to DecoderStreamTraits<DemuxerStream::AUDIO>. It also adds
a test where the decoder's behavior of releasing internally buffered
samples upon flushing is mocked.

Bug: 865926
Test: New test AudioBufferStreamTest.FlushOnConfigChange doesn't fail assertions. No regressions in media_unittests.

Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Change-Id: I8cbb01df3792ca9de5db8ab637285d1e64188b39
Reviewed-on: https://chromium-review.googlesource.com/1145188
Reviewed-by: Matthew Wolenetz <wolenetz@chromium.org>
Reviewed-by: Dale Curtis <dalecurtis@chromium.org>
Commit-Queue: Wojciech Dzierżanowski <wdzierzanowski@opera.com>
Cr-Commit-Position: refs/heads/master@{#577123}
oscarj
Resolve include and define issues for jumbo (mac)
When building using jumbo, files get merged and variables,
functions and defines could end up in the same scope and
conflict. This commit solves issues with includes and defines
for the mac specific part of chrome/browser/ui.

Bug: 803406
Change-Id: I55d1f6110a6144bc7ee3037a374d3e33c36a9879
Reviewed-on: https://chromium-review.googlesource.com/1144928
Reviewed-by: Scott Violet <sky@chromium.org>
Reviewed-by: Avi Drissman <avi@chromium.org>
Commit-Queue: Oscar Johansson <oscarj@opera.com>
Cr-Commit-Position: refs/heads/master@{#577121}
bratell
[jumbo] undef SHADER macros after using them
Several files in gpu/command_buffer/service use local SHADER
macros. If they are compiled together in a jumbo build those
macros will collide and prevent the compilation.

This patch undefs the macros after use. An alternative is to
give them unique names.

Bug: 864986
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Change-Id: I9de4011e1d609e5658a9d6cbe1775a3146364fa1
Reviewed-on: https://chromium-review.googlesource.com/1143265
Reviewed-by: Antoine Labour <piman@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#577044}
bratell
Reuse the logging glCompileShader instead of redefining it
Three files had their own logging glCompileShader wrapper named
CompileShader and in jumbo build experiments those clashed. This
makes that helper function shared, makes the logging a little more
accepting of long error messages, but loses a little bit of
information about where the code was called from.

Bug: 864986
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Change-Id: If7e518cc993e165c2f51c4b32a7f1df96d31ad5d
Reviewed-on: https://chromium-review.googlesource.com/1143266
Reviewed-by: Antoine Labour <piman@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#577004}
bratell
Clarify which of ::base and ::angle::base is intended
There is a namespace base inside the namespace angle so when
writing code inside angle, "base" is ambigious.

This triggered a compilation failure in some jumbo experiments where
the compiler knew about both ::angle::base and ::base.

There are guides to not name inner namespaces the same as common
top level namespaces for this reason but I guess renaming
angle::base is not an option.

Bug: 864986
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Change-Id: I7c780aea3408d11082a96baa729f2cc0b6dd3247
Reviewed-on: https://chromium-review.googlesource.com/1144936
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#576892}
oscarj
Rename constants to be unique (mac)
When building using jumbo, files gets merged and constants
with the same name may end up in the same scope and conflict.

This commit solves the issue by renaming the constants to
something more file specific.

Bug: 803406
Change-Id: I70976f012e9be6f395d4bfcc43e785515071ebb3
Reviewed-on: https://chromium-review.googlesource.com/1142783
Commit-Queue: Oscar Johansson <oscarj@opera.com>
Reviewed-by: Avi Drissman <avi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#576511}
oscarj
Move functions and constants to util files (mac)
When building using jumbo, files gets merged and functions and
constants with the same name may end up in the same scope.
This commits moves such functions and constants to shared
util files.

Bug: 803406
Change-Id: I3a0d763741c3d6b631539fdfe51f8fddc0b255a0
Reviewed-on: https://chromium-review.googlesource.com/1141865
Reviewed-by: Avi Drissman <avi@chromium.org>
Reviewed-by: Sidney San Martín <sdy@chromium.org>
Commit-Queue: Oscar Johansson <oscarj@opera.com>
Cr-Commit-Position: refs/heads/master@{#576502}
bratell
Avoid "using namespace gles2" in the gpu code
Jumbo isn't compatible with "using namespace" since those cause
compiler warnings unless in the top level file, but "using namespace"
is also prohibited by the code style guide (see:
https://google.github.io/styleguide/cppguide.html#Namespaces )

This makes the code a bit more verbose, but it also makes it
more self consistent since the gles2:: prefix was already
occasionally used.

Bug: 864986
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Change-Id: I7c2111e70407a7ddf65473cb83e7f63b70b18747
Reviewed-on: https://chromium-review.googlesource.com/1141882
Reviewed-by: Antoine Labour <piman@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#576159}
oscarj
Make variable names unique (mac)
When building using jumbo, files gets merged and
variables with the same name may end up in the same
scope. This commit renames such varaibles to something
more descriptive or file specific.

Bug: 803406
Change-Id: Ia43af0d95b0693ce917722397bc23db655441c29
Reviewed-on: https://chromium-review.googlesource.com/1141579
Reviewed-by: Avi Drissman <avi@chromium.org>
Commit-Queue: Oscar Johansson <oscarj@opera.com>
Cr-Commit-Position: refs/heads/master@{#576139}
oscarj
Specify class type before calling setCornerFlags (mac)
Specifying what subclass of NSView being called,
in this  case BubbleView.

Bug: 803406
Change-Id: Iabc0a02ab17a881993f34b9c120978ca7f45264c
Reviewed-on: https://chromium-review.googlesource.com/1141879
Reviewed-by: Avi Drissman <avi@chromium.org>
Commit-Queue: Oscar Johansson <oscarj@opera.com>
Cr-Commit-Position: refs/heads/master@{#576137}
bratell
Don't use split_static_library when lld is used
split_static_library is mainly a fix to avoid hitting internal
size limits in the Windows toolchain and it's not needed when
using lld because its thin archives are orders of magnitude smaller.

Bug: 857060
Change-Id: Idf101fc57d5fed8ee8644715fdebb879f7974da6
Reviewed-on: https://chromium-review.googlesource.com/1138330
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Bruce Dawson <brucedawson@chromium.org>
Cr-Commit-Position: refs/heads/master@{#576067}
bratell
Use MobileScroller instead of cloning it.
Chromecast wants to scroll exactly like Android and for that
the code cloned the mobile scrolling code, but simpler and
easier and with less code and fewer jumbo compilation errors
is to just use the existing code directly.

Only a minor code difference existed and that is controlled with
a conditional statement instead now.

Bug: 813911
Change-Id: I9d037da9b58c1ad0916dc22ee194328c113075cd
Reviewed-on: https://chromium-review.googlesource.com/1136541
Reviewed-by: Luke Halliwell <halliwell@chromium.org>
Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org>
Reviewed-by: Kevin Schoedel <kpschoedel@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#576035}
oscarj
Fix typo in SadTabViewCocoa (from SabTabViewCocoa)
The class SadTabViewCocoa has a typo and is currently
named SabTabViewCocoa. This commit renames the class
to the correct name.

TBR=avi@chromium.org

Bug: 803406
Change-Id: Id290fe8d016fe0fae9c760cb556e7c8896d17426
Reviewed-on: https://chromium-review.googlesource.com/1141569
Reviewed-by: Daniel Bratell <bratell@opera.com>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#575986}
oscarj
Resolve name conflict between regular and cocoa classes
When building using jumbo, files may end up in the same scope.
In chrome/browser/ui, ui elements defined with the same name in
both browser/ui and  browser/ui/cocoa conflict. This is relevant
for the classes:

HoverButton
ReloadButton
TabStripController
TabController
NewTabButton
BookmarkBarView
DownloadShelfViewCocoa
ToolbarButton
AvatarButton
SadTabView
AlertIndicatorButton
ToolbarView

This commit solves the issue by adding "Cocoa" to the classes
defined in chrome/browser/ui/cocoa. This is changed in
chrome/browser/ui/cocoa and ui/base/cocoa.

Bug: 803406
Change-Id: Iafd3b9447e4ed6960d86d43d12213ad367919357
Reviewed-on: https://chromium-review.googlesource.com/1140055
Reviewed-by: Avi Drissman <avi@chromium.org>
Commit-Queue: Oscar Johansson <oscarj@opera.com>
Cr-Commit-Position: refs/heads/master@{#575959}
bratell
[jumbo] Merged two GetActiveTextureUnit functions
In jumbo build experiments, two (identical but small)
GetActiveTextureUnit() functions ended up in the same translation
unit which caused the compiler to fail.

This patch moves the useful function into a shared utility file.

Bug: 801580
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel
Change-Id: Id6f8f1002db18593150bec30f1e8b7092f464e13
Reviewed-on: https://chromium-review.googlesource.com/1136308
Reviewed-by: danakj <danakj@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#575721}
oscarj
Specify sender type before changing state (browser/ui/cocoa)
Instead of using id as sender type this commit specifies which
types that are possible to recieve.

Bug: 803406
Change-Id: If5a6cfb0c0788b1e2a9e911ae05e9f7dc5e3840d
Reviewed-on: https://chromium-review.googlesource.com/1140166
Commit-Queue: Oscar Johansson <oscarj@opera.com>
Reviewed-by: Elly Fong-Jones <ellyjones@chromium.org>
Cr-Commit-Position: refs/heads/master@{#575637}
oscarj
Make category names unique for interfaces (browser/ui)
When building using jumbo, interfaces and implementations
end up in the same scope. The interfaces with the same
category name conflicts.

This commit solves the issue by renaming the category to
something more file specific.

Bug: 803406
Change-Id: I21a6645640d40b0ed6cd1324dfc30efa87da23c0
Reviewed-on: https://chromium-review.googlesource.com/1140162
Reviewed-by: Elly Fong-Jones <ellyjones@chromium.org>
Commit-Queue: Oscar Johansson <oscarj@opera.com>
Cr-Commit-Position: refs/heads/master@{#575624}
bratell
Use :: prefix to distinguish between ::media_router::prefs and ::prefs
There are two namespaces named prefs in scope inside media_router code:
The global ::prefs namespace and the local ::media_router::prefs namespace.

If both namespaces are known to the compiler, as happens in jumbo builds,
then the name lookup will be ambigious and the compiler will fail to
compile the code.

Bug: 803406
Change-Id: Ib4be547ffe1ba7a790c2003fd54bd091935c378e
Reviewed-on: https://chromium-review.googlesource.com/1138244
Commit-Queue: mark a. foltz <mfoltz@chromium.org>
Reviewed-by: mark a. foltz <mfoltz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#575379}
bratell
[jumbo] Deduplicate a time constant in autofill code
Two different bubbles needed the same time constant and when
they got copies of the constant that broke certain jumbo
builds. This merges the constants to a single constant.

It also changes type to base::TimeDelta which is the actual
type needed and since the addition of constexpr can be used
in global constants.

Bug: 852904,862397
Change-Id: I52a63d3301efb1c7aec55541c15427c5d96ba524
Reviewed-on: https://chromium-review.googlesource.com/1134998
Commit-Queue: Daniel Bratell <bratell@opera.com>
Commit-Queue: Mathieu Perreault <mathp@chromium.org>
Reviewed-by: Mathieu Perreault <mathp@chromium.org>
Cr-Commit-Position: refs/heads/master@{#574578}
fs
Remove the 'double' methods from blink::TimerBase
Remove the methods in blink::TimerBase that either take or return
a time delta as a double. These methods are mostly unused - a few calls
to StartOneShot and NextFireInterval, and it should be preferable for
new code to use the TimeDelta methods. The non-Delta-suffixed names are
kept - i.e they take on the name of their removed equivalent where
applicable.

The few users of StartOneShot(double, ...) are open-coded instead, and
uses of other methods are adjusted as needed.

The unit tests for Timer is overhauled to use TimeTicks and TimeDelta
throughout.

Bug: 763980
Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I47c0449a9ea68e6e984c371e19f03f747bb5b1e0
Reviewed-on: https://chromium-review.googlesource.com/1131131
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Cr-Commit-Position: refs/heads/master@{#574127}
bratell
Hide syslog's LOG_INFO from the rest of the code
Both syslog and the base namespace have LOG_INFO symbols and
in certain cases (which include, but is not limited to,
jumbo builds) those will clash.

This patch undefs the syslog LOG_INFO macro
as is already done with LOG_WARNING previously.

Change-Id: Iff59a2ef079d3bb38378af76932b21a128507353
Reviewed-on: https://chromium-review.googlesource.com/1027611
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Lei Zhang <thestig@chromium.org>
Cr-Commit-Position: refs/heads/master@{#574103}
tmoniuszko
Add missing include for views::CreateEmptyBorder
Change-Id: I5558e93ca31e5ab546457b0e07a73e5f1a60c614
Reviewed-on: https://chromium-review.googlesource.com/1125074
Reviewed-by: Kim Paulhamus <kpaulhamus@chromium.org>
Commit-Queue: Tomasz Moniuszko <tmoniuszko@opera.com>
Cr-Commit-Position: refs/heads/master@{#574095}
fs
Fix propagation of 'width' and 'height' in HTMLImageFallbackHelper
Use CSSValue::Create(const Length&, ...) to produce values in unzoomed
coordinates. This handles for instance calc(...) expressions correctly.

Bug: 860204
Change-Id: I30e639c38dc49795d44a5e28cc1bf01734543730
Reviewed-on: https://chromium-review.googlesource.com/1126307
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#573893}
fs
Remove unused LayoutImage::kPadding{Width,Height}
Probably managed by the HTMLImageFallbackHelper/UA shadow nowadays.

Change-Id: I6d70bafb0247f186a7c5e119f0368497d22c2dc6
Reviewed-on: https://chromium-review.googlesource.com/1131734
Reviewed-by: Philip Rogers <pdr@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#573825}
bratell
Forbid implicit conversions from IntPoint to FloatPoint
This is a followup from an analogous change for IntRect and FloatRect which was triggered
by some unintended conversions happening.
Since FloatPoint is not a perfect superset of IntPoint, converting from IntPoint to
FloatPoint is potentially lossy, and conversions that happen by accident hide that APIs
are not used as intended.

Behaviour has been kept where it's not obviously a mistake. Truncating or snapping to
integers is sometimes beneficial.

R=fs@opera.com, pdr@chromium.org

Bug: 860535

Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_layout_ng;luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I84e72a890dbddc2a9f40bb25a000f7eec75f6ffa
Reviewed-on: https://chromium-review.googlesource.com/1126396
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Philip Rogers <pdr@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#573675}
fs
Scrub line-endings in chrome/browser/ui/views/tabs/tab.cc
93e913c148a1a54557c8b29517a4be2eab7949ea added mixed line-endings,
making git unhappy. Remove the excess carriage returns (CRs.)

Tbr: pkasting@chromium.org
Bug: 859585
Change-Id: Ied4e1465491679a607c9f273da0c3d8cbc6be499
Reviewed-on: https://chromium-review.googlesource.com/1130528
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#573673}
bratell
[jumbo] Resolve Windows conflict between Win32 API and OpenSSL headers
Windows head wincrypt.h and OpenSSL use the same constants so we can't
include wincrypt.h directly or indirectly. In
content/renderer/gpu/gpu_benhcmarking_extension.cc we include
the Windows header XpsObjectModel.h which includes msopc.h which
includes wincrypt.h which causes problems in some jumbo configuratons.

This patch makes sure to include crypt/wincrypt_shim.h first so that
the include of wincrypt in msopc.h does nothing.

Bug: 860646
Change-Id: Ieda7096234575b8d1fda8af2a103972632e0f6d2
Reviewed-on: https://chromium-review.googlesource.com/1127786
Reviewed-by: enne <enne@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#573672}
oscarj
Resolve multiple definitions of GetSequenceValue
When building using jumbo unnamed namespaces gets merged
and functions with the same name conflict. This happens
for the function GetSequenceValue in
net/cert/internal/parsed_certificate.cc and
net/cert/x509_certificate.cc.

This commit solves the issue by renaming the function to
something more file specific.

Bug: 772146
Change-Id: Ic8609a3c5a75b8187a58d3891eb3d8d32650fa76
Reviewed-on: https://chromium-review.googlesource.com/1118276
Commit-Queue: Oscar Johansson <oscarj@opera.com>
Reviewed-by: Ryan Sleevi <rsleevi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#573651}
oscarj
Fix line endings when writing bookmark URLs to clipboard.
Add "\r\n" instead of "\n" when copying multiple bookmark
URLs on Windows.

Bug: 861717
Change-Id: I0d15a8662bbb27ee67b899ea805ddd5b147be71f
Reviewed-on: https://chromium-review.googlesource.com/1128879
Reviewed-by: Scott Violet <sky@chromium.org>
Commit-Queue: Oscar Johansson <oscarj@opera.com>
Cr-Commit-Position: refs/heads/master@{#573646}
fs
Fix handling of 'auto' for 'rx' and 'ry' on <ellipse>
Per the spec[1][2], when 'auto' is specified for 'rx' or 'ry' the used
value of said property will be the used value of the other property
('rx' for 'ry' and vice versa.)

[1] https://svgwg.org/svg2-draft/geometry.html#RX
[2] https://svgwg.org/svg2-draft/geometry.html#RY

Bug: 861585
Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: Iec0a9179527a5b0e99cc6a0ec671e5b6d92f828b
Reviewed-on: https://chromium-review.googlesource.com/1128885
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#573457}
fs
Eliminate HitTestResult::is_rect_based_test_
This flag should be a copy of the same flag in an associated
HitTestLocation. In all cases where it is used we have said
HitTestLocation and can use the flag from there instead.

The most complicated case - HitTestResult::ResolveRectBasedTest - will
return a HitTestLocation with the flag cleared, which should mean that
the state invariant is maintained. EventHandlingUtil::HitTestResultInFrame
as changed to take a HitTestLocation to be able to maintain this invariant
a little easier.

Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I8b8d17a4fabca725ec089f18550523a19b677c75
Reviewed-on: https://chromium-review.googlesource.com/1127939
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Chris Harrelson <chrishtr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#573441}
fs
Use TimeDelta for a bunch of timer durations/timeouts
Most of these changes are of the (int|unsigned|double) -> TimeDelta
type.

In a few cases (EventSource, GeoNotifier, VibrationController), an
invocation of StartOneShot(double, ...) is changed to a
StartOneShot(TimeDelta, ...) with an appropriate TimeDelta::From...
conversion (all for milliseconds even.)

In some cases names of constants are changed to remove the unit, since
that's no longer meaningful.

EventHandler::TargetGestureEvent was doing an unnecessary conversion, so
just drop that.

Remove the GeoNotifier::Timer::StartOneShot(double, ...) overload since
it's no longer used.

Bug: 763980
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_layout_tests_layout_ng;luci.chromium.try:linux_layout_tests_slimming_paint_v2;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: Ie5b117500db400da60faba0e308bc1644c26992d
Reviewed-on: https://chromium-review.googlesource.com/1127785
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#573359}
fs
Use TimeDelta in FirstMeaningfulPaintDetector
This changes the |network2_quiet_window_seconds_| and
|network0_quiet_window_seconds_| fields from double to TimeDelta,
renaming them to not have 'seconds' in the name (replaced by 'timeout'.)

Adjust the unit test, and replace AdvanceClockSeconds with AdvanceClock
throughout.

Add a new TestingPlatformSupportWithMockScheduler::RunForPeriod,
mimicking the setup for AdvanceClock{,Seconds}.

Bug: 763980
Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I9316759a30c6fbe3fb4d7ea15106d6c47366ba33
Reviewed-on: https://chromium-review.googlesource.com/1127779
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Kunihiko Sakamoto <ksakamoto@chromium.org>
Reviewed-by: Sami Kyöstilä <skyostil@chromium.org>
Cr-Commit-Position: refs/heads/master@{#573298}
fs
Use Time{Delta,Ticks} in LayoutProgress
Make |animation_start_time_| TimeTicks and |animation_repeat_interval_|
and |animation_duration_| TimeDelta to match semantics.

Update AnimationDurationForProgressBar and
AnimationRepeatIntervalForProgressBar in LayoutTheme to return
TimeDelta.

Bug: 763980
Change-Id: I3134116861dce6bdf0be050870cba25b0ef56e68
Reviewed-on: https://chromium-review.googlesource.com/1127780
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Cr-Commit-Position: refs/heads/master@{#573291}
fs
Use TimeDelta in Scrollbar/ScrollableArea/ScrollbarTheme
Straightforward conversion in Scrollbar and ScrollableArea.

In ScrollbarTheme, OverlayScrollbarFadeOutDelaySeconds,
OverlayScrollbarFadeOutDurationSeconds, InitialAutoscrollTimerDelay and
AutoscrollTimerDelay are changed to return TimeDelta. The "Seconds"
suffix is dropped from the two earlier methods.

Bug: 763980
Change-Id: Idf1a8b1e44db18427db7a9acebd09f63be2c4cdc
Reviewed-on: https://chromium-review.googlesource.com/1127781
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Reviewed-by: David Bokan <bokan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#573274}
bratell
Forbid implicit conversions from IntRect to FloatRect
This is a followup from removing some accidental conversions via FloatRect. Since
FloatRect is not a perfect superset of IntRect, converting from IntRect to FloatRect is
potentially lossy, and conversions that happen by accident hide that APIs are not used
as intended.

A few new helper functions that use IntRect were added to make the change smaller, but
there is potential for future further cleaning up of what types are used where, and how.

Behaviour has been kept where it's not obviously a mistake. Truncating or snapping to
integers is sometimes beneficial.

R=fs@opera.com, pdr@chromium.org

Bug: 860535

Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_layout_tests_layout_ng;luci.chromium.try:linux_layout_tests_slimming_paint_v2;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I733b4273b847654f22bae726255cfb75ba8023bb
Reviewed-on: https://chromium-review.googlesource.com/1124454
Reviewed-by: Philip Rogers <pdr@chromium.org>
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#573263}
oscarj
Resolve namespace scope issue for "switches"
When building using Jumbo files gets merged.
This results in a conflict with the namespace switches in:
chrome/browser/extensions/bookmark_app_helper.cc
chrome/browser/extensions/extension_util.cc

This commit solves this by specifying that the global
namespace should be used, by adding the "::" prefix.

Bug: 850484,856964,860646
Change-Id: I6b7b8343bb66ea5c8a5796f77b85c882085f5d93
Reviewed-on: https://chromium-review.googlesource.com/1127661
Reviewed-by: Ken Rockot <rockot@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#573000}
bratell
Add desktop_window_tree_host_win.h to ui/views' public api
The file desktop_window_tree_host_win.h is used by chrome/browser/ui/views
(apps/app_window_desktop_window_tree_host_win.h,
frame/browser_desktop_window_tree_host_win.h, ime/ime_window_view.cc and
tabs/window_finder_win.cc) so it's part of the external API of ui/views
and the file needs to be listed as such in the "public" part of the target.

This error is detected by gn gen --check in some builds and not in others.
I think it has gone undetected because with split_static_library you get
an empty public list for the part where this file belongs. No |public|
list means that all of |sources| is public. Or something similar.

(Fix by oscarj who had to leave for the weekend)

Change-Id: If6b5805bdd20c988e45b132dd680bb73b667e16c
Reviewed-on: https://chromium-review.googlesource.com/1127943
Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#572989}
fs
Use TimeDelta in media controls/PiP
Straightforward double -> TimeDelta conversion. Names of constants have
been changed to remove any unit (like "...Seconds") - often replaced by
"...Duration". "Trans" was also expanded to "Transition" in a few
places.

Bug: 763980
Change-Id: I1b193ecf338245c5873f002c0cfcd1b679b345d7
Reviewed-on: https://chromium-review.googlesource.com/1127782
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Reviewed-by: Mounir Lamouri <mlamouri@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#572971}
bratell
Removing intermediate IntPoint objects when FloatPoint is needed
Sometimes (probably for historical reasons), IntPoint objects
are created where FloatPoint objects are needed. The IntPoint will
(still) be converted to a FloatPoint by the compiler so all that
happens is that the code takes an unnecessary detour.

Need to be careful so that we don't depend on some truncation
performed by the detour via integers.

Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: Ia3b90f2a80cb7a65cfdf78c1370bea0acb79491d
Reviewed-on: https://chromium-review.googlesource.com/1126397
Reviewed-by: Philip Rogers <pdr@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#572961}
bratell
Renamed a method named Service since there is a class Service
There is a class Service in services/content/service.h which
makes it unsuitable to have other symbols named Service in
content. There was a local helper function named Service in
content/browser/notifications that caused a clash in jumbo builds
and this patch renames that method NotificationService()

Change-Id: I268c3afb3c5cc43315f0638f9685579d1fe1dcf9
Reviewed-on: https://chromium-review.googlesource.com/1118174
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Peter Beverloo <peter@chromium.org>
Cr-Commit-Position: refs/heads/master@{#572774}
fs
Move ImageResourceContent::BrokenCanvas to a better place
This function has no association with ImageResourceContent, so move it
to html_canvas_element.cc where it's only user resides.

Change-Id: I22e50d0f526f150957aec262452c7f1dfcf612e5
Reviewed-on: https://chromium-review.googlesource.com/1120332
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#572751}
fs
Replace uses of RepeatInterval() in DOMTimer with RepeatIntervalDelta()
RepeatInterval() is used in DOMTimer::Stop and DOMTimer::Fired to
determine if the timer is an interval timer or not. This can trivially
use the TimeDelta version instead.

Also use g_null_atom to pass a null AtomicString, rather than creating
a temporary.

Bug: 763980
Change-Id: I7b191ab7b99d22f73974b7b448b059c2f8cb51ef
Reviewed-on: https://chromium-review.googlesource.com/1125930
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#572631}
fs
Use TimeDelta in PausableTimer
Mostly s/double/TimeDelta/ and Method() to MethodDelta(). The
kNextFireIntervalInvalid constant is changed to TimeDelta::Min().

Bug: 763980
Change-Id: I878a4136edcfe815184e7021a19eefffbc02fd31
Reviewed-on: https://chromium-review.googlesource.com/1125919
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#572612}
fs
Use NextFireIntervalDelta instead of NextFireInterval in SVGImage*Test
Avoids run-tripping TimeDelta -> double -> TimeDelta.

Bug: 856082
Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: If4a6a0626be6341770ef01d368fc8a1ddf00de31
Reviewed-on: https://chromium-review.googlesource.com/1126115
Reviewed-by: Daniel Bratell <bratell@opera.com>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#572560}
bratell
Avoid converting via or creating IntRect when we want a FloatRect
It's currently easy to use an IntRect when a FloatRect is needed
since there is an implicit (lossy) conversion from IntRect to
FloatRect. This patch changes some code to remove some
unnecessary conversions between the types.

(A float can store all integers up to, but not including,
16,777,217 so it the conversion is most of the time non-lossy)

R=fs@opera.com, pdr@chromium.org

Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I324b79c3d78d387574f47a4bda8f7dc7bdad567b
Reviewed-on: https://chromium-review.googlesource.com/1124682
Reviewed-by: Philip Rogers <pdr@chromium.org>
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#572306}
fs
Scale the viewport size in SVGImagePainter
LayoutImageResource::GetImage expects a zoomed container size (it passes
it unmodified to SVGImageForContainer::Create which unzooms it), so we
need to scale the viewport size before passing it.

Bug: 859774
Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I24f7f0b1f402aaef112882ab146d573981889cae
Reviewed-on: https://chromium-review.googlesource.com/1124163
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#572190}
bratell
Give a global factory a globally unique name
There are two g_previews_factory now which causes issues with
some jumbo builds. This renames one of them
g_previews_service_factory.

Change-Id: I05d4ab366239888e80fb32f782ac4e4880a8609f
Reviewed-on: https://chromium-review.googlesource.com/1122131
Reviewed-by: Tarun Bansal <tbansal@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#572143}
oscarj
Move kDefaultNumConnections (net/)
When building using jumbo unnamed namespaces gets merged
and variables with the same name conflict. This happens
for the variable kDefaultNumConnections in:
net/third_party/quic/core/congestion_control/cubic_bytes.cc
net/third_party/quic/core/congestion_control/tcp_cubic_sender_bytes.cc

This commit solves the issue by moving the variable
definition to net/third_party/quic/core/quic_constants.h.

Bug: 772146
Change-Id: Ib7c961511823a8ecbc996775485a5fe23649e65e
Reviewed-on: https://chromium-review.googlesource.com/1120169
Reviewed-by: Ryan Hamilton <rch@chromium.org>
Commit-Queue: Oscar Johansson <oscarj@opera.com>
Cr-Commit-Position: refs/heads/master@{#572123}
fs
Reland "Suspend SVG image animations when the page is hidden"
Check Document::hidden() in LayoutObject::WillRenderImage,
thus pausing animations on pages that are not visible.
To resume animations, we may need to explicitly resume the
timeline, so a hook is added in Page::SetVisibilityState to
allow calling StartAnimation() on the relevant SVGImages.

Update: Added RunPendingTasks() to test to make sure the later
code is actually waiting for a proper animation frame.

Tbr: chrishtr@chromium.org
Bug: 856082
Change-Id: I457fc0b92576edf7d70933373d12d49d52a0b912
Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel
Reviewed-on: https://chromium-review.googlesource.com/1122413
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#571904}
oscarj
Move constants from namespace to class (browser/ui)
When building using Jumbo unnamed namespaces gets merged
and variables with the same name conflict. This happens
for the variables kStartPadding and kEndPadding in
chrome/browser/ui/views/download/download_item_view.cc
and chrome/browser/ui/views/download/download_shelf_view.cc.

This commit solves the issue by moving the variables from
the namespace to the class. It also moves other variables
in the same namespace, to keep the files locally consistent.

Bug: 773275
Change-Id: I8d23ae9999fe404d253a3a189e6d17d81786939d
Reviewed-on: https://chromium-review.googlesource.com/1107063
Reviewed-by: Elly Fong-Jones <ellyjones@chromium.org>
Reviewed-by: Bret Sepulveda <bsep@chromium.org>
Commit-Queue: Oscar Johansson <oscarj@opera.com>
Cr-Commit-Position: refs/heads/master@{#571901}
oscarj
Rename local kColor constants (browser/ui)
When building using jumbo unnamed namespaces gets merged
and variables with the same name conflict. This happens
for the variables kFooterBackgroundColor and kSeparatorColor
in ui/views/autofill/autofill_popup_view_native_views.cc and
ui/views/passwords/password_generation_popup_view_views.cc.

This commit solves the issue by renaming the constants to
something more file specific. It also renames other variables
in the same namespace, so the naming is locally consistent.

Bug: 773275
Change-Id: I3f71efeaa29eccdbe646e7c2fb512f218c2f010a
Reviewed-on: https://chromium-review.googlesource.com/1118260
Reviewed-by: Elly Fong-Jones <ellyjones@chromium.org>
Commit-Queue: Oscar Johansson <oscarj@opera.com>
Cr-Commit-Position: refs/heads/master@{#571897}
bratell
Don't convert IntRect -> FloatRect -> IntRect.
If EnclosingIntRect() is called on an IntRect it is first
converted to a FloatRect or DoubleRect since that is what
EnclosingIntRect() is used for. Then you (hopefully) get
the originally IntRect back.

This strange conversion wasn't obvious in the code because the
type of the IntRect was hidden by an |auto|. It was discovered in
jumbo builds because the compiler had access to both DoubleRect
and FloatRect and didn't know which one to use.

Bug: 843606
Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I1ca799cc27da02e1c6615bf403bc190fec1d5cde
Reviewed-on: https://chromium-review.googlesource.com/1122219
Reviewed-by: Philip Rogers <pdr@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#571887}
oscarj
Rename function NetLogEntryCreationCallback (net/)
When building using Jumbo namespaces with the same name
gets merged and functions with the same name conflict.
This happens for the function NetLogEntryCreationCallback
in:
net/disk_cache/net_log_parameters.h
net/disk_cache/memory/mem_entry_impl.cc

This commit solves the issue by renaming the function in
net/disk_cache/net_log_parameters. Also renames
CreateNetLogEntryCreationCallback to keep names
consistent.

Bug: 772146
Change-Id: Ice0a53054dbf2ded14728d48a7fd7b33bfe0d5a5
Reviewed-on: https://chromium-review.googlesource.com/1120180
Reviewed-by: Josh Karlin <jkarlin@chromium.org>
Commit-Queue: Oscar Johansson <oscarj@opera.com>
Cr-Commit-Position: refs/heads/master@{#571881}
oscarj
Remove "using base::File" to avoid conflict (net/)
When building using Jumbo namespace aliases with the same
name may end up in the same unit, causing a conflict at
compilation. This happens for base::File and
disk_cache::File in:
net/disk_cache/simple/simple_index_file.cc
net/disk_cache/simple/simple_synchronous_entry.cc

This commit removes "using base::File" and
instead call the namespace by its full
name.

Bug: 772146
Change-Id: I7385edf04bc23d519ee8800bc4941807a85340ad
Reviewed-on: https://chromium-review.googlesource.com/1120252
Reviewed-by: Josh Karlin <jkarlin@chromium.org>
Commit-Queue: Oscar Johansson <oscarj@opera.com>
Cr-Commit-Position: refs/heads/master@{#571880}
oscarj
Rename kNoPendingResult to be unique (net/)
When building using Jumbo unnamed namespaces gets merged
and variables with the same name conflict. This happens
for the variables kNoPendingResult in:
net/socket/ssl_client_socket_impl.cc
net/socket/ssl_server_socket_impl.cc

This commit solves the issue by renaming the constants to
something more file specific.

Bug: 772146
Change-Id: I918d551970e249fbb5e0bfadf0ebaeae99ffebcb
Reviewed-on: https://chromium-review.googlesource.com/1119916
Reviewed-by: Josh Karlin <jkarlin@chromium.org>
Commit-Queue: Oscar Johansson <oscarj@opera.com>
Cr-Commit-Position: refs/heads/master@{#571852}
oscarj
Rename function ParseCertificate to be unique (net/)
When building using Jumbo unnamed namespaces gets merged
and functions with the same name conflict. This happens
for the function kParseCertificate defined in:
net/cert/internal/ocsp.cc
net/cert/internal/parse_certificate.cc

This commit solves the issue by renaming the function in
net/cert/internal/ocsp.cc.

Bug: 772146
Change-Id: I071682c8f330183f637a7985061980b6aa34c93a
Reviewed-on: https://chromium-review.googlesource.com/1119911
Reviewed-by: Josh Karlin <jkarlin@chromium.org>
Commit-Queue: Oscar Johansson <oscarj@opera.com>
Cr-Commit-Position: refs/heads/master@{#571848}
oscarj
Move kVlog constants to util file (net/)
When building using jumbo unnamed namespaces gets merged
and variables with the same name conflict. This happens
for the variable kVlogSetCookies in
net/cookies/canonical_cookie.cc and
net/cookies/cookie_monster.cc.

This commit solves the issue by moving the variable
definition to net/cookies/cookie_util.h. Other
kVlog variables defined in net/cookies/cookie_monster.cc
are also moved.

Bug: 772146
Change-Id: I850c27406f687dfffcf682b0957a41ecbeaca291
Reviewed-on: https://chromium-review.googlesource.com/1118382
Reviewed-by: Maks Orlovich <morlovich@chromium.org>
Commit-Queue: Oscar Johansson <oscarj@opera.com>
Cr-Commit-Position: refs/heads/master@{#571842}
oscarj
Move kMaxSegmentSize to constant file (net/)
When building using Jumbo unnamed namespaces gets merged
and variables with the same name conflict. This happens
for the variables kMaxSegmentsSize in:
net/third_party/quic/core/congestion_control/bbr_sender.cc
net/third_party/quic/core/congestion_control/prr_sender.cc

This commit solves the issue by moving the constant to
net/third_party/quic/core/quic_constants.h.

Bug: 772146
Change-Id: I07da21c2bc8c96f6ed5cc83e2724ae948d80a9be
Reviewed-on: https://chromium-review.googlesource.com/1119689
Commit-Queue: Ryan Hamilton <rch@chromium.org>
Reviewed-by: Ryan Hamilton <rch@chromium.org>
Cr-Commit-Position: refs/heads/master@{#571814}
fs
Revert "Suspend SVG image animations when the page is hidden"
This reverts commit b56e2510d08c0a8fd0be69ad29a2558c6ce63523.

Reason for revert: Test flaky on cast_shell_linux

Original change's description:
> Suspend SVG image animations when the page is hidden
> 
> Check Document::hidden() in LayoutObject::WillRenderImage,
> thus pausing animations on pages that are not visible.
> To resume animations, we may need to explicitly resume the
> timeline, so a hook is added in Page::SetVisibilityState to
> allow calling StartAnimation() on the relevant SVGImages.
> 
> Bug: 856082
> Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel
> Change-Id: I4a0b008730ec3e6c2af26e15d52eebb26020ad32
> Reviewed-on: https://chromium-review.googlesource.com/1115130
> Reviewed-by: Chris Harrelson <chrishtr@chromium.org>
> Commit-Queue: Fredrik Söderquist <fs@opera.com>
> Cr-Commit-Position: refs/heads/master@{#571543}

TBR=fs@opera.com,chrishtr@chromium.org

Change-Id: I53a07f59bf48095c21ccf6eb357162786012ad1c
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 856082
Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel
Reviewed-on: https://chromium-review.googlesource.com/1120976
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#571587}
fs
Suspend SVG image animations when the page is hidden
Check Document::hidden() in LayoutObject::WillRenderImage,
thus pausing animations on pages that are not visible.
To resume animations, we may need to explicitly resume the
timeline, so a hook is added in Page::SetVisibilityState to
allow calling StartAnimation() on the relevant SVGImages.

Bug: 856082
Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I4a0b008730ec3e6c2af26e15d52eebb26020ad32
Reviewed-on: https://chromium-review.googlesource.com/1115130
Reviewed-by: Chris Harrelson <chrishtr@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#571543}
oscarj
Resolve macro CACHE_UMA_BACKEND_IMPL_OBJ (net/)
The macro CACHE_UMA_BACKEND_IMP_OBJ is defined
in:
net/disk_cache/blockfile/backend_impl.cc
net/disk_cache/blockfile/entry_impl.cc

When building using jumbo these end up in the same
scope and conflict. This commit solves the issue
by undefining the macro at the end of the file.

Bug: 772146
Change-Id: Ib888216156c3054616f6e906e6c23a648154d2d9
Reviewed-on: https://chromium-review.googlesource.com/1118273
Reviewed-by: Josh Karlin <jkarlin@chromium.org>
Commit-Queue: Oscar Johansson <oscarj@opera.com>
Cr-Commit-Position: refs/heads/master@{#571453}
oscarj
Rename kBeta to be unique (net/)
When building using Jumbo unnamed namespaces gets merged
and variables with the same name conflict. This happens
for the variables kBeta in:
net/third_party/quic/core/congestion_control/cubic_bytes.cc
net/third_party/quic/core/congestion_control/rtt_stats.cc

This commit solves the issue by renaming kBeta in
net/third_party/quic/core/congestion_control/cubic_bytes.cc
to kDefaultCubicBackoffFactor to avoid the conflict and
to give the variable a more descriptive name.

Bug: 772146
Change-Id: Ibc2e6732d2c5fa70672a73e7b6669d8b71f581d1
Reviewed-on: https://chromium-review.googlesource.com/1119691
Reviewed-by: Josh Karlin <jkarlin@chromium.org>
Commit-Queue: Oscar Johansson <oscarj@opera.com>
Cr-Commit-Position: refs/heads/master@{#571452}
oscarj
Resolve RETURN_STRING_LITERAL macro conflict (net)
The macro RETURN_STRING_LITERAL is defined in namespaces in:
net/third_party/quic/core/crypto/crypto_utils.cc
net/third_party/quic/core/quic_error_codes.cc
net/third_party/quic/core/quic_utils.cc
net/third_party/quic/core/quic_versions.cc

When building using jumbo these end up in the same
namspace and conflict. This commit solves the issue
by undefining the macro inside the namespace.

Bug: 772146
Change-Id: Ibb07acd829f8ad2867748d1db8aba5aa59a39e47
Reviewed-on: https://chromium-review.googlesource.com/1118222
Reviewed-by: Josh Karlin <jkarlin@chromium.org>
Commit-Queue: Oscar Johansson <oscarj@opera.com>
Cr-Commit-Position: refs/heads/master@{#571450}
oscarj
Resolve LogSeverity macro/typedef conflict (browser/extensions)
LogSeverity is a typedef in base/logging.h and a macro
in the Windows header setupapi.h. When building using jumbo
this causes a conflict.

This commit solves the issue by undefining LogSeverity after importing
setupapi.h.

Bug: 850484,856964
Change-Id: I3e56c1a06357d8e03dbc98e01e51b18ae05e94dc
Reviewed-on: https://chromium-review.googlesource.com/1116790
Reviewed-by: Ken Rockot <rockot@chromium.org>
Commit-Queue: Oscar Johansson <oscarj@opera.com>
Cr-Commit-Position: refs/heads/master@{#571436}
oscarj
Resolve ENDPOINT macro conflict (net/)
The macro ENDPOINT is defined inside namespaces in:
net/third_party/quic/core/quic_connection.cc
net/third_party/quic/core/quic_crypto_handshaker.cc
net/third_party/quic/core/quic_crypto_stream.cc
net/third_party/quic/core/quic_data_reader.cc
net/third_party/quic/core/quic_framer.cc
net/third_party/quic/core/quic_packet_creator.cc
net/third_party/quic/core/quic_sent_packet_manager.cc
net/third_party/quic/core/quic_session.cc
net/third_party/quic/core/quic_spdy_stream.cc

When building using jumbo these end up in the same
namspace and conflict. This commit solves the issue
by undefining the macro inside the namespace.

Bug: 772146
Change-Id: Ie85920ac632dd90402afc2276ed30fff8609d9be
Reviewed-on: https://chromium-review.googlesource.com/1118220
Reviewed-by: Josh Karlin <jkarlin@chromium.org>
Commit-Queue: Oscar Johansson <oscarj@opera.com>
Cr-Commit-Position: refs/heads/master@{#571418}
oscarj
Move kTitleIconSize to class member (browser/ui)
When building using Jumbo unnamed namespaces gets merged
and variables with the same name conflict. This happens
for the variables kTitleIconSize in
views/ime/ime_window_frame_view.cc,
views/relaunch_notification/relaunch_recommended_bubble_view.cc
and views/relaunch_notification/relaunch_required_dialog_view.cc.

This commit solves the issue by moving the variables from
the namespace to the class. It also moves other variables
in the same namespace, to keep the files locally consistent.

Bug: 773275
Change-Id: I0ec9b735f6f6c579bebe61ab6a1a8cfcac876f56
Reviewed-on: https://chromium-review.googlesource.com/1107619
Commit-Queue: Bret Sepulveda <bsep@chromium.org>
Reviewed-by: Bret Sepulveda <bsep@chromium.org>
Cr-Commit-Position: refs/heads/master@{#571196}
fs
Use DataEquivalent(...) when comparing StyleSVGResources
While the underlying SVGResource should be unique (or nullptr - for
invalid cases), the StyleSVGResource wrapper usually isn't. Hence we
need to use DataEquivalent(...) to properly determine equality.

Bug: 769774, 855914
Change-Id: I333bc7a737d0635aabe35e39bb066edbc4282790
Reviewed-on: https://chromium-review.googlesource.com/1118219
Reviewed-by: Rune Lillesveen <futhark@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#571099}
oscarj
Resolve LocationBarDecoration conflict(browser/ui)
LocationBarDecoration is defined as a struct in
chrome/browser/ui/views/location_bar/location_bar_layout.h
and as a class in
chrome/browser/ui/views/location_bar/location_bar_layout.h.
When building using jumbo this causes a conflict.

This commit solves the issue by renaming the struct to
DecorationInfo.

Bug: 773275
Change-Id: Iaeece5319fe66b335cf1dcda01f3d984f0cc5f7a
Reviewed-on: https://chromium-review.googlesource.com/1116797
Reviewed-by: Bret Sepulveda <bsep@chromium.org>
Commit-Queue: Oscar Johansson <oscarj@opera.com>
Cr-Commit-Position: refs/heads/master@{#571063}
oscarj
Rename local kError constants to be unique
When building using Jumbo unnamed namespaces gets merged
and variables with the same name conflict. This happens
when building in Chrome OS for the variables
kErrorNotAvailable in:
chrome/browser/extensions/api/input_ime/input_ime_api.cc
chrome/browser/extensions/api/input_ime/input_ime_api_chromeos.cc

This commit solves the issue by renaming the variables to
something more file specific. It also renames other variables
in the same namespace, so the naming is locally consistent.

Bug: 850484
Change-Id: Id2282be73d75c76bb820c0946fc1caf09aeca8a4
Reviewed-on: https://chromium-review.googlesource.com/1116698
Reviewed-by: Ken Rockot <rockot@chromium.org>
Commit-Queue: Oscar Johansson <oscarj@opera.com>
Cr-Commit-Position: refs/heads/master@{#571043}
oscarj
Resolve issues with WRITE_RESULT constants (net/)
When building using jumbo the WRITE_RESULT constants
defined in net/disk_cache/memory/mem_entry_impl.cc
and in net/disk_cache/simple/simple_entry_impl.cc
conflict with each other.

This commit solves the issue by renaming the constants to
something more file specific.

Bug: 772146
Change-Id: I118bea2e4943983975640ce178a48adb597f25f3
Reviewed-on: https://chromium-review.googlesource.com/1117066
Reviewed-by: Josh Karlin <jkarlin@chromium.org>
Commit-Queue: Oscar Johansson <oscarj@opera.com>
Cr-Commit-Position: refs/heads/master@{#571042}
bratell
Make it one blink/gpu/mojom conversion function instead of three
There were three identical SharedBitmapIdToGpuMailboxPtr functions
which converted from viz::SharedBitmapId to
gpu::mojom::blink::MailboxPtr and those clashed in jumbo builds,

This patch makes all code use the same shared copy in
canvas_resource.cc

Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: Ic7980af0aa30d7cc90acac1d0846f626ad58671d
Reviewed-on: https://chromium-review.googlesource.com/1104461
Reviewed-by: Antoine Labour <piman@chromium.org>
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#570705}
bratell
Revert "jumbo: stable assignment of inputs to chunks"
This reverts commit 2c7a71c3fd6cc3ee5eda41467ea6d5b8ee337386.

Reason for revert: Linux with chunk size 50 broke in v8 which we
can't quickly fix, and Windows (chunk size 8) has a DWORD logging
error that looks non-trivial. We need to fix those before landing
this.

Original change's description:
> jumbo: stable assignment of inputs to chunks
> 
> Adding or removing a file from a jumbo source set causes on average
> half of the chunks to have their inputs reallocated.
> Derive chunk boundaries from a combination of list position and path
> content. This is so that when a file is added or removed, only the
> boundaries with adjacent chunks typically move.
> For a balance between maximum chunk size and stability of partitions:
> * Partition uniformly into the required number of chunks.
> * Pick a "center" from each chunk by minimum hash value.
> * Pick the boundaries between centers by maximum hash value.
> 
> Bug: 782863
> Change-Id: Ie71d82b132e8145b4ed3d1141f85886a12149d5a
> Reviewed-on: https://chromium-review.googlesource.com/1102218
> Reviewed-by: Bruce Dawson <brucedawson@chromium.org>
> Reviewed-by: Dirk Pranke <dpranke@chromium.org>
> Reviewed-by: Daniel Bratell <bratell@opera.com>
> Commit-Queue: Dirk Pranke <dpranke@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#570623}

TBR=dpranke@chromium.org,bratell@opera.com,brucedawson@chromium.org,david.barr@samsung.com

Change-Id: I8c81aca34ab2876aebea6b54e847cb24be3aa27f
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 782863
Reviewed-on: https://chromium-review.googlesource.com/1116658
Reviewed-by: Daniel Bratell <bratell@opera.com>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#570701}
oscarj
Replace magic constant with kFixedSize
When calling certain functions in GridLayout a resize
parameter is passed, defining how much the layout should
resize.
Most often it is passed as 0 or 1. Sometimes 100 (which
is assumed to be the same as 1) and sometimes 0.5.

This commit defines the variable kFixedSize = 0.f
in grid_layout.h and remove every local defintion of
the variables. The magic constant are replaced by this
variable. The replacements are:
0, 0.f and 0.0f becomes kFixedSize (0.f)

This commit affects chrome/browser/ui.

Bug: 854186
Change-Id: I287b1b38350a2dce2bd6e02cc871e82e0a5d89db
Reviewed-on: https://chromium-review.googlesource.com/1106159
Reviewed-by: Dan Erat <derat@chromium.org>
Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org>
Reviewed-by: Bret Sepulveda <bsep@chromium.org>
Commit-Queue: Oscar Johansson <oscarj@opera.com>
Cr-Commit-Position: refs/heads/master@{#570693}
oscarj
Rename local k<name> constants to be unique
When building using Jumbo unnamed namespaces gets merged
and variables with the same name conflict. This happens
when building in Chrome OS for the variables
kErrorInvalidX509Cert in:
chrome/browser/extensions/api/certificate_provider/certificate_provider_api.cc
chrome/browser/extensions/api/enterprise_platform_keys/enterprise_platform_keys_api.cc

This commit solves the issue by renaming the variables to
something more file specific. It also renames other variables
in the same namespace, so the naming is locally consistent.

Bug: 850484
Change-Id: I67fc4d43785460ea5aa8fd1a08a2fd1985569117
Reviewed-on: https://chromium-review.googlesource.com/1114963
Reviewed-by: Ken Rockot <rockot@chromium.org>
Commit-Queue: Oscar Johansson <oscarj@opera.com>
Cr-Commit-Position: refs/heads/master@{#570682}
oscarj
Remove conflicting namespace declarations (jumbo)
In jumbo builds, on chrome os, the namespace redeclarations
of media_perception in:
chrome/browser/extensions/api/media_perception_private/media_perception_api_delegate_chromeos.cc
extensions/browser/api/media_perception_private/media_perception_api_manager.cc
extensions/browser/api/media_perception_private/media_perception_private_api.cc
conflict with the declaration in:
third_party/cros_system_api/dbus/service_constants.h

This commit solves the issue by removing the redeclaration of
media_perception and instead use the full name
extensions::api::media_perception_private.

Bug: 850484
Change-Id: I5a6363ca7e305d1bd7929555f60f9e1bd3322bfc
Reviewed-on: https://chromium-review.googlesource.com/1114852
Reviewed-by: Ken Rockot <rockot@chromium.org>
Commit-Queue: Oscar Johansson <oscarj@opera.com>
Cr-Commit-Position: refs/heads/master@{#570680}
bratell
Building chromium now requires uuid-dev (uuid/uuid.h)
The latest version of fontconfig requires uuid/uuid.h so
we need to install that in install-build-deps.sh.

(Only tested in Ubuntu 16.04)

Bug: 856666,829890
Change-Id: I586aa703e24a1ea2c10d08948acad37ce177f70f
Reviewed-on: https://chromium-review.googlesource.com/1115129
Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
Reviewed-by: Thomas Anderson <thomasanderson@chromium.org>
Cr-Commit-Position: refs/heads/master@{#570454}
oscarj
Resolve namespace scope issue (chrome/browser/ui)
When building using Jumbo files gets merged.
This results in a conflict with the namespace prefs in
views/media_router/cloud_services_dialog_view.cc.
This commit solves this by specifying that the global
namespace should be used, by adding the "::" prefix.

Bug: 773275
Change-Id: I4803ef96e32ae8a1d9f4c54b3cf95780ecedb6e5
Reviewed-on: https://chromium-review.googlesource.com/1114838
Commit-Queue: mark a. foltz <mfoltz@chromium.org>
Reviewed-by: mark a. foltz <mfoltz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#570439}
oscarj
Move kResizeAreaCornerSize from namespace
When building with Jumbo, kResizeAreaCorner in
views/frame/opaque_browser_frame_view.cc and
views/overlay/overlay_window_views.cc conflict.
This commit solves the issue by moving the
constants from the namespace to the place where
it is used.

Bug: 773275
Change-Id: I87195fe6f650088e7aaa6117ad44e9e919d17cc9
Reviewed-on: https://chromium-review.googlesource.com/1102499
Commit-Queue: Oscar Johansson <oscarj@opera.com>
Reviewed-by: Bret Sepulveda <bsep@chromium.org>
Cr-Commit-Position: refs/heads/master@{#569978}
oscarj
Rename kAvatarIconSize to be unique (browser/ui)
When building using Jumbo unnamed namespaces gets merged
and variables with the same name conflict. This happens
for the variables kAvatarIconSize in
views/profiles/dice_accounts_menu.cc and
webui/signin/user_manager_screen_handler.cc.

This commit solves the issue by renaming the variables to
something more file specific.

Bug: 773275
Change-Id: Ibb0aa4bf8c65fcdc70d5b747cccea336ab77ca9b
Reviewed-on: https://chromium-review.googlesource.com/1107708
Reviewed-by: Scott Violet <sky@chromium.org>
Commit-Queue: Oscar Johansson <oscarj@opera.com>
Cr-Commit-Position: refs/heads/master@{#569977}
oscarj
Rename kNameField to be unique (browser/ui)
When building using Jumbo unnamed namespaces gets merged
and variables with the same name conflict. This happens
for the variables kNameField in webui/certficates_handler.cc
and webui/inspect_ui.cc.

This commit solves the issue by renaming the variables to
something more file specific. It also renames other variables
in the same namespace, so the naming is locally consistent.

Bug: 773275
Change-Id: I0b900803f4f84c058c43e1b5b3f395c8e14774f9
Reviewed-on: https://chromium-review.googlesource.com/1107929
Commit-Queue: Oscar Johansson <oscarj@opera.com>
Reviewed-by: calamity <calamity@chromium.org>
Cr-Commit-Position: refs/heads/master@{#569975}
fs
Update/recompute the is-downscaled flag when image loading finishes
If the <img> is layouted before the referenced image finishes loading
(and has dimensions available) and also has specified width and height,
then the |LayoutImage::is_downscaled_image_| will not be set correctly.
Also update said flag in LayoutImage::ImageNotifyFinished.

Bug: 854464
Change-Id: Iee9ad62dff436a0ef4d4a390902309159acb7cb7
Reviewed-on: https://chromium-review.googlesource.com/1107805
Reviewed-by: Chris Harrelson <chrishtr@chromium.org>
Reviewed-by: Philip Rogers <pdr@chromium.org>
Commit-Queue: Chris Harrelson <chrishtr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#569462}
oscarj
Remove "using" to avoid namespace conflict
When building using Jumbo namespace aliases with the same
name may end up in the same unit, causing a conflict at
compilation. This commit removes "using windows" and
"using tabs" and instead call the namespace by its full
name. This is done to increase the robustness of the code.

std::unique_ptr<T>() are removed because of presubmit check
errors.

Bug: 850484
Change-Id: I91f44728d4b54dd15213bac602176ca8736bb3cd
Reviewed-on: https://chromium-review.googlesource.com/1107633
Reviewed-by: Ken Rockot <rockot@chromium.org>
Commit-Queue: Oscar Johansson <oscarj@opera.com>
Cr-Commit-Position: refs/heads/master@{#569267}
tmoniuszko
Remove duplicated header file from BUILD.gn
Duplicated header caused Visual Studio error when opening platform.vcxproj
project.

error : Cannot load project with duplicated project items:
../../../../../../../third_party/blink/renderer/platform/graphics/compositor_mutator.h
is included as 'None' and as 'None' item types.

Change-Id: Iee35d7ef24dce3083c291858546fbe5b80428ee9
Reviewed-on: https://chromium-review.googlesource.com/1107921
Reviewed-by: Jeremy Roman <jbroman@chromium.org>
Commit-Queue: Tomasz Moniuszko <tmoniuszko@opera.com>
Cr-Commit-Position: refs/heads/master@{#569181}
fs
Remove unused (dead) friend-declaration in ResourceClient
SVGElementProxy no longer exist.

Change-Id: I552e9d3d0d092ba5d0c51c8bacc8b27bdf29fe4c
Reviewed-on: https://chromium-review.googlesource.com/1105977
Reviewed-by: Nate Chapin <japhet@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#568971}
fs
Simplify the CSSParserSelector destructor
Rather than moving the tag history into a Vector and let that perform
the destruction, just iteratively "collapse" the list until it is empty.

Change-Id: If1f6611caeea9b83da58f94e021647a2db0b7daa
Reviewed-on: https://chromium-review.googlesource.com/1107629
Reviewed-by: Rune Lillesveen <futhark@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#568900}
mpichlinski
Added missing eventlog_messages dependency in chrome_watcher.
Bug: 854179
Change-Id: Icee4af543850a30116e811f32a16c38b3498bcf2
Reviewed-on: https://chromium-review.googlesource.com/1106145
Reviewed-by: Jochen Eisinger <jochen@chromium.org>
Commit-Queue: Michal Pichlinski <mpichlinski@opera.com>
Cr-Commit-Position: refs/heads/master@{#568832}
mpichlinski
Do not create MediaRouterActionController when Media Router is disabled.
Following change: https://chromium-review.googlesource.com/1026975 disallows
having a control of Chromecast preference in settings, because calling Cast...
after enabling Chromecast preference in runtime without a restart causes a
crash due to missing MediaRouterUIService.

Instead of not creating MediaRouterUIService, do not create
MediaRouterActionController in this service when Media Router is disabled.

Bug: 834719
Change-Id: I218523d631d9050ff27e69915ba098fe21907e25
Reviewed-on: https://chromium-review.googlesource.com/1067817
Commit-Queue: Michal Pichlinski <mpichlinski@opera.com>
Reviewed-by: Derek Cheng <imcheng@chromium.org>
Reviewed-by: Takumi Fujimoto <takumif@chromium.org>
Cr-Commit-Position: refs/heads/master@{#568726}
bratell
[jumbo] interface is a Windows API macro so avoid that name
interface is macro for struct in some Windows headers which
causes problems when Windows headers get exposed to code that
has named variables or functions interface. This happened
with the newly added jumbo support in chrome/browser/extensions.

Bug: 850484
Change-Id: I5d838bad5658bfe97542b32647e182348f63c4cc
Reviewed-on: https://chromium-review.googlesource.com/1106339
Reviewed-by: Ken Rockot <rockot@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#568492}
bratell
Qualify |storage| namespace in some extensions code
There is both ::extensions::api::storage and ::storage so inside
extensions::api, unless you explicitly write ::storage it's unclear
what namespace is intended.

In jumbo builds, some code ended up in a translation unit where
both storage namespaces were known, so this patch adds ::
to storage to make the code explicit.

There is a code style guideline to not use namespace names that are
also top level namespace for this reason, but it's not easy to
change all extension api namespaces.

Bug: 850484
Change-Id: I1c85fbc9dd3dc8be49d41be25f4886ec98c47926
Reviewed-on: https://chromium-review.googlesource.com/1104678
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Ken Rockot <rockot@chromium.org>
Cr-Commit-Position: refs/heads/master@{#568116}
fs
Move common AddOutlineRects implementations to LayoutSVGModelObject
All of the (direct) subclasses of LayoutSVGModelObject (LayoutSVGImage,
LayoutSVGShape and LayoutSVGContainer) have the same implementation of
this method, so we can push it up to the common base class.

Change-Id: Ief6d4502917c87505ddab436a3c005597615c49b
Reviewed-on: https://chromium-review.googlesource.com/1104344
Reviewed-by: Xianzhu Wang <wangxianzhu@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#568072}
bratell
[gn] Doc: Fix toochain typo and clarify the toolchain syntax.
Change-Id: Ica4288a6984f296958b7f9b812edb07663cec22e
Reviewed-on: https://chromium-review.googlesource.com/1104159
Reviewed-by: Brett Wilson <brettw@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#568046}
fs
Remove unused LayoutObject::AbsoluteElementBoundingBoxRect
Looks like the last caller was removed in
https://codereview.chromium.org/2287433003 .

Change-Id: I2664063bab31fe4983be65cb5c21039a90b73920
Reviewed-on: https://chromium-review.googlesource.com/1104342
Reviewed-by: Xianzhu Wang <wangxianzhu@chromium.org>
Commit-Queue: Xianzhu Wang <wangxianzhu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#568019}
oscarj
Enable Jumbo for chrome/browser/extension
This commit will enable Jumbo for chrome/browser/extensions.
By enabling and running Jumbo the effort of building is
reduced by 7 times (around 40 CPU minutes on the test computer).

Bug: 850484
Change-Id: Icd42cbbf53dc58d64143c6979ba500d3ec9315c5
Reviewed-on: https://chromium-review.googlesource.com/1101017
Commit-Queue: Oscar Johansson <oscarj@opera.com>
Reviewed-by: Ken Rockot <rockot@chromium.org>
Cr-Commit-Position: refs/heads/master@{#567971}
bratell
Remove aura only files from non-aura content/renderer
Some mostly harmless *_aura* files were included by mistake
in the non-aura build of content/renderer. They turned out to not be
quite so harmless in a jumbo build if combined with the non-aura
version of the same code.

Change-Id: Idfe65638ca16a2e700b485acd67f253073ae5867
Reviewed-on: https://chromium-review.googlesource.com/1102426
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Antoine Labour <piman@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#567961}
oscarj
Rename kDialogWidth constants to make them unique
When building with Jumbo, kDialog in
webui/signin/signin_email_confirmation_dialog.cc and
views/webshare/webshare_target_picker_view.cc conflict.
This commits solves the issue by renaming the constant
to something more file specific.

Bug: 773275
Change-Id: Iea327ab1948297fac97d3e7aaab9cb27a3631a30
Reviewed-on: https://chromium-review.googlesource.com/1102474
Commit-Queue: Oscar Johansson <oscarj@opera.com>
Reviewed-by: Elly Fong-Jones <ellyjones@chromium.org>
Cr-Commit-Position: refs/heads/master@{#567945}
oscarj
Remove function (chrome/browser/extensions)
The function ProfileForWebContents is defined in both
extension_install_prompt_show_params.cc and
extension_install_prompt.cc. In Jumbo build this causes
a conflict. The function is replaced by a inline statement.

Bug: 850484
Change-Id: I6e8da38fa7c90bc6b53d7c3f770daa3e158d16c2
Reviewed-on: https://chromium-review.googlesource.com/1100462
Reviewed-by: Ken Rockot <rockot@chromium.org>
Commit-Queue: Oscar Johansson <oscarj@opera.com>
Cr-Commit-Position: refs/heads/master@{#567940}
oscarj
Resolve namespace scope issue (chrome/browser/ui)
When building using Jumbo files gets merged.
This results in a conflict with the namespace prefs in
webui/media_router/media_router_webui_message_handler.cc.
This commit solves this by specifying that the global
namespace should be used, by adding the "::" prefix.

Bug: 773275
Change-Id: I504984ef83db8cc23561f1f16ce99cdbee89721e
Reviewed-on: https://chromium-review.googlesource.com/1102419
Reviewed-by: Elly Fong-Jones <ellyjones@chromium.org>
Commit-Queue: Oscar Johansson <oscarj@opera.com>
Cr-Commit-Position: refs/heads/master@{#567665}
oscarj
Rename enums to avoid conflict (chrome/browser/ui)
The enums ColumnSetType are defined in both
views/passwords/password_pending_view.cc
and views/passwords/password_items_view.cc.
When building using Jumbo both declaration
ends up in the same namespace, causing a
conflict. This commits resolves the issue
by renaming the enums to something more
file specific.

Bug: 773275
Change-Id: I8f48b68df53166e910ab0beaf13ba80af63e40ae
Reviewed-on: https://chromium-review.googlesource.com/1102432
Reviewed-by: Elly Fong-Jones <ellyjones@chromium.org>
Commit-Queue: Oscar Johansson <oscarj@opera.com>
Cr-Commit-Position: refs/heads/master@{#567661}
fs
Change handling of negative exponents in GenericParseNumber
Rather than enforcing a limit on the smallest exponent, pass all
negative exponents straight to pow(...) and let it deal with it. Per
IEEE754 pow(10, -Inf) should yield 0, and the cast should round properly
for larger negative exponents (smaller than -37.)

Bug: 852785
Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: Iccd80f7e80c8b87c49cd5eedf5e49ad1e9ccc8dc
Reviewed-on: https://chromium-review.googlesource.com/1102329
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Cr-Commit-Position: refs/heads/master@{#567660}
oscarj
Resolve member conflict in enums
In Jumbo build, the member NONE in the enum
VerifyStatus in install_verifier.cc conflicts
with the same member in the enum
Transformation inactivity_log/activity_log.cc.
This commit solves the issues by defining
VerifyStatus as a strongly typed enum.

Bug: 850484
Change-Id: Idc3cab01b96073b20adf6fcd87e01cdf9b02a739
Reviewed-on: https://chromium-review.googlesource.com/1098664
Reviewed-by: Ken Rockot <rockot@chromium.org>
Commit-Queue: Oscar Johansson <oscarj@opera.com>
Cr-Commit-Position: refs/heads/master@{#567168}
oscarj
Remove using-declaration to resolve conflict
When building using Jumbo, the using-declaration
of api::webrtc_logging_private::RequestInfo
results in a conflict, since a declaration of
RequestInfo exists in both api/webrtc_logging_private.h
and api/webrtc_audio_private.h. This commit solves the
conflict by removing the using-declaration.

Bug: 850484
Change-Id: I9bc25994cccdfd2e9ae19ecdacde06ed7780b1b2
Reviewed-on: https://chromium-review.googlesource.com/1098658
Reviewed-by: Ken Rockot <rockot@chromium.org>
Commit-Queue: Oscar Johansson <oscarj@opera.com>
Cr-Commit-Position: refs/heads/master@{#567167}
oscarj
Rename g_shown in bubble delegates for Jumbo build
The function g_shown is defined in every bubble delegate.
When building using Jumbo those functions conflict with
each other. This commit fixes this by renaming the functions
to something more file specific.

Bug: 850484
Change-Id: I9df3a8e90ed77e95649cdb734cc4d7364b5fc310
Reviewed-on: https://chromium-review.googlesource.com/1096945
Reviewed-by: Ken Rockot <rockot@chromium.org>
Commit-Queue: Oscar Johansson <oscarj@opera.com>
Cr-Commit-Position: refs/heads/master@{#567166}
oscarj
Resolve function and variable conflict
When using Jumbo build, there are conflicts between
dashboard_private_api.cc and webstore_private_api.cc.
The conflicts are the variable kUserCancelledError
and the function WebstoreInstallHelperResultToApiResult.
This commit solve the issues by renaming the variable and
function to something more file specific.

Bug: 850484
Change-Id: I600a036505ef731124ac6e4c3ea2f750a50ccad5
Reviewed-on: https://chromium-review.googlesource.com/1098958
Reviewed-by: Ken Rockot <rockot@chromium.org>
Commit-Queue: Oscar Johansson <oscarj@opera.com>
Cr-Commit-Position: refs/heads/master@{#567165}
oscarj
Remove namespace alias (chrome/browser/extensions)
When using Jumbo build, the namespace alias Create in
/api/context_menus/context_menus_api.cc conflicts
with the function Create called from
api/desktop_capture/desktop_capture_base.cc.
This commits solves the issue by removing the namespace
alias. It also removes the namespace aliases
Update and Remove in the same file to avoid
this issue in the future.

Bug: 850484
Change-Id: Ibdb940e153a89b7120c670e806be34fc4e95ab90
Reviewed-on: https://chromium-review.googlesource.com/1099062
Reviewed-by: Ken Rockot <rockot@chromium.org>
Commit-Queue: Oscar Johansson <oscarj@opera.com>
Cr-Commit-Position: refs/heads/master@{#567164}
bratell
Rename some kBackgroundColor constants to make them unique
In jumbo experiments in chrome/browser/ui, one of the problems
is that there are many kBackgroundColor variables in anonymous
namespaces that become the same anonymous namespaces in jumbo.

This patch gives those constants unique names, matching their
individual use.

Bug: 773275
Change-Id: I8746a88a32f64a0645fd88e850e39d22bc635e19
Reviewed-on: https://chromium-review.googlesource.com/1078814
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Elly Fong-Jones <ellyjones@chromium.org>
Cr-Commit-Position: refs/heads/master@{#567021}
bratell
Rename some kButtonPadding constants to make them unique
In jumbo all files are merged into a single (or many) larger
translation unit and then a couple of kButtonPadding variables
end up in same anonymous namespace so that they clash.

This patch gives those constants unique names, matching their
individual use.

Bug: 773275
Change-Id: I9d8be1076552b7ffaa095bb4d50d3fa3d5845274
Reviewed-on: https://chromium-review.googlesource.com/1078816
Reviewed-by: Elly Fong-Jones <ellyjones@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#566957}
bratell
Rename some kBorderThickness constants to make them unique
In jumbo all files are merged into a single (or many) larger
translation units and then a couple of kBorderThickness variables
end up in same anonymous namespace so that they clash.

This patch gives those constants unique names, matching their
individual use.

Bug: 773275
Change-Id: I1d81153af042c27927902b648fd7271a13f47c92
Reviewed-on: https://chromium-review.googlesource.com/1079168
Reviewed-by: Elly Fong-Jones <ellyjones@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#566956}
tmoniuszko
Force en_US locale in SyncCycleSnapshotToValue test
Bug: 852349
Change-Id: I8367c10390caf2f5eda219eadb958e10e049c4cc
Reviewed-on: https://chromium-review.googlesource.com/1098933
Commit-Queue: Tomasz Moniuszko <tmoniuszko@opera.com>
Reviewed-by: Tim Schumann <tschumann@chromium.org>
Reviewed-by: Mikel Astiz <mastiz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#566826}
bratell
Move two identical SecondsToTimeTicks to tighter scopes
Two blink tests used their own SecondsToTimeTicks helpers which
clashed in jumbo builds where those files were compiled in the
same translation unit. Since it's a small function and hard to
find a suitable shared place, this moves the functions to
tighter scopes to not interfere with each other.

Change-Id: I9e04eed676e9e07f4aa5a815b655625bba03593f
Reviewed-on: https://chromium-review.googlesource.com/1095336
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#566824}
oscarj
Rename constants with the same name
When building with Jumbo, unnamed namespaces gets merged.
Constants with the same name within those namespaces conflict.
This commit renames those constant to something more file
specific.

Bug: 850484
Change-Id: If04a32cbf9ce544d852b1297f229d24d96845c59
Reviewed-on: https://chromium-review.googlesource.com/1096757
Commit-Queue: Lei Zhang <thestig@chromium.org>
Reviewed-by: Lei Zhang <thestig@chromium.org>
Cr-Commit-Position: refs/heads/master@{#566596}
fs
Don't corrupt list-based hit-test results in LayoutSVGForeignObject
Assigning the HitTestResult used for the PaintLayer will corrupt (reset)
any result acquired previously. So results from the foreground phase
would be erased by any later phase(s). Use HitTestResult::Append
instead if we're performing a list-based hit-test.

Bug: 849617
Change-Id: I5f53cad7e8396377815af51bd52db924b3fe6d5a
Reviewed-on: https://chromium-review.googlesource.com/1095182
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Philip Rogers <pdr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#566382}
bratell
Cut down the number of kIconSize variables
In jumbo build experiments, one obstacle for using jumbo for
chrome/ui is that there are too many kIconSize is the global
anonymous namespace. This patch renames them according to their
use, but other options are available (and are used) such as
moving the constants into the functions where they are used or
into a less global namespace.

Bug: 773275
Change-Id: I62db42da677cffc53087aede879deaf5245b3640
Reviewed-on: https://chromium-review.googlesource.com/1076237
Reviewed-by: Elly Fong-Jones <ellyjones@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#566377}
oscarj
Remove using declarations in browser/extensions
In Jumbo builds the declaration "using base::Time" (also
"using base::TimeDelta") conflicts with a typedef in X11 system header.
This commit will remove the declarations and use the namespace
prefix instead.

The function CalculatePingDays in
extension_updater.cc has been renamed since a function with
the same name exists in chrome_update_client_config.cc.

Bug: 850484
Change-Id: I67a2e6f8710f5c730344b8d47be742c72f1667c6
Reviewed-on: https://chromium-review.googlesource.com/1092693
Reviewed-by: Ken Rockot <rockot@chromium.org>
Commit-Queue: Oscar Johansson <oscarj@opera.com>
Cr-Commit-Position: refs/heads/master@{#566348}
oscarj
Resolve namespace conflicts in Jumbo build
When using Jumbo build, local namespaces conflict with global
namespaces. The local redefinition of namespaces, for example
"namespace bookmarks = api::bookmarks" also causes conflicts
between files. This commit removes the local
redefinitions and adds the "::" prefix when necessary.

Bug: 850484
Change-Id: Idd8b281a0e4999c27baffe326b5de33ba2247692
Reviewed-on: https://chromium-review.googlesource.com/1094636
Reviewed-by: Ken Rockot <rockot@chromium.org>
Commit-Queue: Oscar Johansson <oscarj@opera.com>
Cr-Commit-Position: refs/heads/master@{#566338}
fs
Remove "dead" code in BackgroundImageGeometry
BackgroundImageGeometry::SetSpaceX/SetSpaceY computes
|computed_{x,y}_position| from Length() - which is 'auto' and thus
always resolve to 0. Remove the computation, replacing it with '0' and
simplify.

Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I3e0648da78d9a0ff6e644cb4440f188ee8f52e53
Reviewed-on: https://chromium-review.googlesource.com/1095258
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#566044}
oscarj
Resolve conflict for namespace "errors"
In Jumbo build, the local redefinition of the namespace
errors, for example "namespace errors = manifest_errors",
causes conflicts between files. This is resolved by removing the local
redefinition and using the full name instead.

Bug: 850484
Change-Id: I5b8aecd3dc5b7c922bef515b82f11c5bfdf19515
Reviewed-on: https://chromium-review.googlesource.com/1095075
Reviewed-by: Ken Rockot <rockot@chromium.org>
Commit-Queue: Oscar Johansson <oscarj@opera.com>
Cr-Commit-Position: refs/heads/master@{#565999}
oscarj
Remove conflicting namespace declarations
In Jumbo builds the namespace declarations such as "keys", "helpers" and
others conflict. The are named the same in multiple files since they
have the same purpose, but with Jumbo this is no longer appropriate.
The declarations that conflict are removed.

Bug: 850484
Change-Id: I62246ebe303f1cdcabb2c21312eef4c6d4a7d92a
Reviewed-on: https://chromium-review.googlesource.com/1090916
Reviewed-by: Ken Rockot <rockot@chromium.org>
Commit-Queue: Oscar Johansson <oscarj@opera.com>
Cr-Commit-Position: refs/heads/master@{#565937}
bratell
Rename the two CreateMemoryCoordinatorHandle functions in content
There were two small (identical) helper functions in
content/browser named CreateMemoryCoordinatorHandle(..). One in
gpu and one in render_host, and with no obvious place
to put a shared copy.

These two cause problems in some extreme jumbo configurations so
this patch renames them according to how they are user.

Change-Id: I508530b6290606a01046ec0378d8da7d9f8c164b
Reviewed-on: https://chromium-review.googlesource.com/1092696
Commit-Queue: Avi Drissman <avi@chromium.org>
Reviewed-by: Avi Drissman <avi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#565646}
bratell
Move duplicate CappedSizeInKB() to header file for sharing
Some jumbo builds broke because of too many CappedSizeInKB so moving
it to heap.h to unbreak the builds. It's a small inlined method.
The moved function is not using std::min to avoid including
<algorithm> in heap.h and potentially causing a measurable
build time regression.

TBR=mlippautz@chromium.org,haraken@chromium.org

Bug: 840789
Change-Id: I4e4bf3989235c6e7274a56f5c10823d8bb37a4df
Reviewed-on: https://chromium-review.googlesource.com/1090839
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Daniel Bratell <bratell@opera.com>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#565289}
fs
Fold marker methods in LayoutSVGPath
Fold all of ProcessMarkerPositions, ShouldGenerateMarkerPositions,
MarkerRect and CalculateUpdatedStrokeBoundingBox into a larger, but
still manageable, single function (UpdateMarkers). Shorter term this
makes for less (and slightly more efficient) code. Longer term this
should make future changes to resource handling easier.

Also take this opportunity to make some minor cleanups (use a range-
based for loop; replace a ternary expression with an equivalent.)

Bug: 769774
Change-Id: I029fcdfa388c786fa30ebe861ba78d15d3a3d792
Reviewed-on: https://chromium-review.googlesource.com/1086943
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#564593}
auygun
Android: Move ContentViewRenderView to the embedder support component
Bug: 840360, 617324
Change-Id: I66a3a35d5fb8df66ee003ae1be48cbb89ba848d2
Reviewed-on: https://chromium-review.googlesource.com/1070159
Reviewed-by: Avi Drissman <avi@chromium.org>
Reviewed-by: Bo <boliu@chromium.org>
Reviewed-by: Ted Choc <tedchoc@chromium.org>
Reviewed-by: danakj <danakj@chromium.org>
Reviewed-by: Luke Halliwell <halliwell@chromium.org>
Commit-Queue: Attila Uygun <auygun@opera.com>
Cr-Commit-Position: refs/heads/master@{#564425}
oscarj
Avoid ambiguity between blink::Path and blink::XPath::Path
If XPath headers and graphics headers end up in the same translation
unit a collision will occur for the symbol Path. This commit will fix
the collision by adding blink:: prefix. According to a post in
chromium-dev this can happen in Jumbo builds.

Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I30ad0be4ea2000779313024d57531c1200bb2603
Reviewed-on: https://chromium-review.googlesource.com/1085055
Commit-Queue: Stephen Chenney <schenney@chromium.org>
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Cr-Commit-Position: refs/heads/master@{#564111}
bratell
Disable all of the include guard presubmit check for third_party
The style check for include guards in third_party had already been
disabled but there are also headers in third_party with no
normal include guards at all so we better disable all of the check.

(blink is not considered third_party).

Bug: 845584
Change-Id: I801022a18daec38e9e6788c313e6bac6ed8a150b
Reviewed-on: https://chromium-review.googlesource.com/1080511
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#564045}
fs
svg/animations/viewspec-checkaspectparams.html no longer failing
TBR=schenney@chromium.org

Bug: 843192
Change-Id: I71f2dec1606aec96200731eeb9d3785347507216
Reviewed-on: https://chromium-review.googlesource.com/1080512
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#563189}
bratell
[jumbo] Make sure all AtomicString maps use the same hash
text_break_iterator_icu.cc didn't use the AtomicString hash
function and when the compiler noticed that inconsistancy in
a jumbo build, that jumbo build broke with the error:

../../third_party/blink/renderer/platform/wtf/text/atomic_string_hash.h:51:8:
error: explicit specialization of 'WTF::HashTraits<WTF::AtomicString>' after instantiation

This was triggered by an unrelated change that happened to reorder
some code.

TBR=drott@chromium.org

Change-Id: I4773df7ce31e676b39dac9a8e2c4e2602d3746ce
Reviewed-on: https://chromium-review.googlesource.com/1079569
Reviewed-by: Daniel Bratell <bratell@opera.com>
Reviewed-by: Dominik Röttsches <drott@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#563183}
bratell
Typo fixes: Include h files instead of cc files in chromeos
So:
Include chromeos_switches.h instead of chromeos_switches.cc
Include base_event_utils.h instead of base_event_utils.cc

Typo made a test include a cc file instead of the more commonly
included header file. This patch changes to include the header file.

There are no known bad side effects of this, but it was found
when looking for similar instances of a piece of code that did
cause problems.


Change-Id: I33105752517ba4e423dcae7c1ea0186fc7613127
Reviewed-on: https://chromium-review.googlesource.com/1005065
Reviewed-by: Dan Erat <derat@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#563154}
bratell
Typo fix: Include a .h file instead of a .cc file in a test
A test includes the cc file
components/search_engines/search_engines_test_util.cc instead of
its header file. This patch changes that to include the header
file instead.

This inclusion has caused no to me known problems and was just found
as a result of looking through the source for this pattern after
a similar instance did cause problems.

Change-Id: Iffdb68a8055d69a8a3df450c7982ec1e674dcf6e
Reviewed-on: https://chromium-review.googlesource.com/1005175
Commit-Queue: Avi Drissman <avi@chromium.org>
Reviewed-by: Avi Drissman <avi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#563075}
bratell
Add dependency gpu:test_support -> ui/gfx:test_support
In some jumbo build configurations the linker needs
gfx::PrintTo(gfx::Size const&, ...) referenced from
obj/gpu/libtest_support.a
testing::internal::UniversalPrinter<gfx::Size>::Print(
    gfx::Size const&, ...)

This reference might be in dead code that would otherwise (in
non-jumbo builds) have been stripped earlier, but since the
reference apparently is there it's best to have
the dependency as well.

Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Change-Id: I6fe98a5427e5bc30625773bfa73d5b248b34f30a
Reviewed-on: https://chromium-review.googlesource.com/1005340
Reviewed-by: Victor Miura <vmiura@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#562997}
fs
Rework SVGViewSpec to be an immutable object
This reworks SVGViewSpec to be an immutable object created from either a
fragment string or a <view> element (indirectly via the fragment
identifier.) "Inheritance" of the value is then handled by checking if
there's a SVGViewSpec set (like before) and whether it has a value set
(for 'viewBox', 'preserveAspectRatio' et.c), and if it doesn't just use
the value from the SVGSVGElement.
This allows any animations of the SVGSVGElement to properly take effect
while still allowing overrides from an SVGViewSpec.
While this should arguably also be the case for SVGViewElements
referenced by a fragment identifier, these are left as before (not
responding to animations.)

Bug: 843192
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: Ic36e754ef211182391e041cb3c6f9443535c3acc
Reviewed-on: https://chromium-review.googlesource.com/1078647
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Cr-Commit-Position: refs/heads/master@{#562853}
fs
<view> elements should apply to the root element
Like the comment here indicates, it wasn't clear which <svg> a <view>
element should apply to. This was clarified in SVG2 [1] to be the "root
'svg' element", which is the same as for a "svgView(...)" fragment.
The comment is updated to reflect the new spec text.
The new behavior matches Gecko.

[1] https://svgwg.org/svg2-draft/linking.html#SVGFragmentIdentifiersDefinitions

Bug: 843192
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: If76e2ca1c954af75203905ca6e50eef60ccf9ec4
Reviewed-on: https://chromium-review.googlesource.com/1075207
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#562471}
fs
Remove inheritance of SVGZoomAndPan into SVGViewSpec
Since we no longer expose SVGViewSpec as a DOM interface, we don't need
to have it inherit SVGZoomAndPan. This allows simplifying the code a bit
and will eventually allow making SVGViewSpec immutable (in a cleaner
way.)

To allow this, the parsing of the SVGZoomAndPan value is rework such
that one can go from String to SVGZoomAndPanType without the inheritance
i.e by not operating on the internal value, but rather return one.

Also make some minor cleanups such as uninlining
SVGZoomAndPan::ParseAttribute.

Bug: 843192
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I4dedcb6a76f3dabf3f7c441d03bee2dfae8efb2d
Reviewed-on: https://chromium-review.googlesource.com/1075128
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#562440}
fs
Clamp argument to SVGGeometryElement.getPointAtLength to [0, length]
Per:

  https://svgwg.org/svg2-draft/types.html#__svg__SVGGeometryElement__getPointAtLength

Bug: 847198
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I9067ce9f196453bd54560d5119ebc38d35c8ac86
Reviewed-on: https://chromium-review.googlesource.com/1075332
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#562422}
fs
Remove stray argument to GetRoundedBorderFor in ShapeOutsideInfo
Once upon a time, GetRoundedBorderFor(...) did accept a LayoutView*
argument, but it no longer does. Luckily this would've yielded true
anyway - matching the default argument - so no functional change is to
be expected.

Change-Id: Ief012e7a37efc9e9293f10bc2c67172ab088200d
Reviewed-on: https://chromium-review.googlesource.com/1076231
Commit-Queue: Morten Stenshorne <mstensho@chromium.org>
Reviewed-by: Morten Stenshorne <mstensho@chromium.org>
Cr-Commit-Position: refs/heads/master@{#562398}
bratell
Use the same libjpeg in all of blink/platform
The normal libjpeg renames some symbols with macros so if its
headers are included together with libjpeg-turbo's headers
in the same translation unit, there will be an inconsistent
renaming of libjpeg symbols. This happened in some extreme
jumbo configuration and resulted in confising linker errors.

This patch changes an include so that jpeglib.h becomes included
the same way everywhere.

Change-Id: I7f122d0919d58371bb40dc0097a766b857b9815e
Reviewed-on: https://chromium-review.googlesource.com/1073423
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#562243}
fs
Move intrinsic_sizing_info.h to core/layout
It's a layout-related gizmo. Take this opportunity to forward-declare
IntrinsicSizingInfo and only include where used.

Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_layout_ng;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I39750738147dbfce05ac1e77042fecfc02b2a92d
Reviewed-on: https://chromium-review.googlesource.com/1070374
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#561895}
fs
Fix errors in wpt/css/css-masking/* tests
clip-path-svg-content/clip-path-clip-rule-008.svg:
  Add missing reference (reference/clip-path-clip-rule-004-ref.svg).

clip-path-svg-content/clip-path-css-transform-002.svg:
  Adjust translation to match reference.

clip-path-svg-content/clip-path-dom-href.svg:
  Do setAttribute(...) on the correct <g>.

clip-path/clip-path-element-userSpaceOnUse-002.html:
  Shrink the clip-path so that it clips out the border, to match the
  reference.

clip-path/clip-path-ellipse-002.html:
clip-path/clip-path-ellipse-003.html:
clip-path/clip-path-ellipse-004.html:
clip-path/clip-path-ellipse-005.html:
  Adjust the description text so that it matches the reference.

clip-path/clip-path-ellipse-006.html:
  Use a different reference (reference/clip-path-ellipse-ref.html), and
  adjust the target <div> such that it matches the reference (replacing
  the red border with a margin.)

clip-path/clip-path-ellipse-007.html:
clip-path/clip-path-ellipse-008.html:
  Replace red border with a margin.

clip-path/clip-path-polygon-001.html:
clip-path/clip-path-polygon-002.html:
clip-path/clip-path-polygon-003.html:
  Adjust the description text so that it matches the reference.

clip-path/clip-path-polygon-004.html:
  Fix typo in assertion.

clip-path/clip-path-polygon-005.html:
  Adjust the description text so that it matches the reference.

Bug: 626703, 843084
Change-Id: I09c37cbe80ca3b82478bdd994ae027e9a72f280c
Reviewed-on: https://chromium-review.googlesource.com/1071529
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#561880}
bratell
Change some payments code to not have so many kFirstTagValue
In jumbo build experiments all the kFirstTag variables ended up
in the same translation unit and prevented compilation. This patch
retires those variables, and also renames an enum that had got
a copy-paste name.

Bug: 803406
Change-Id: I887d85a3632766845a7caede089d99ed73efba35
Reviewed-on: https://chromium-review.googlesource.com/1073308
Commit-Queue: anthonyvd <anthonyvd@chromium.org>
Reviewed-by: anthonyvd <anthonyvd@chromium.org>
Cr-Commit-Position: refs/heads/master@{#561861}
fs
Fix wpt/css/css-masking/parsing/clip-valid.html subtest
Percentages are not allowed in rect() (arguments are '<length> | auto'.)
Move the old test to clip-invalid.html and replace it with one that
doesn't use percentages.

Bug: 843084
Change-Id: I3cadd99da0d302ac5a0cd012450dd7ade233681c
Reviewed-on: https://chromium-review.googlesource.com/1071469
Commit-Queue: Eric Willigers <ericwilligers@chromium.org>
Reviewed-by: Eric Willigers <ericwilligers@chromium.org>
Cr-Commit-Position: refs/heads/master@{#561598}
fs
Remove stray, unneeded (and incorrect) forward declaration
WebContentsObserver is in the 'content' namespace, not in the global.
This causes a collision with a 'using' directive for the same class,
which breaks Jumbo builds.

TBR=avi@chromium.org,siggi@chromium.org

Bug: 755840, 846328
Change-Id: I977106611b374c955bf3c5c161c8a52eea927698
Reviewed-on: https://chromium-review.googlesource.com/1071663
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Avi Drissman <avi@chromium.org>
Reviewed-by: Sigurður Ásgeirsson <siggi@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#561512}
bratell
[jumbo] Fixing collision between wtf ntohs and Windows ntohs
A recent change in blink added a dependency on services/network which
indirectly use winsock2.h for htons a ntohs. Since blink uses its custom
ntohs and htons for Windows, those clash. This changes so that blink also
uses winsock2.h for htons, ntohs.

Bug: 839982
Change-Id: I5bebce4e62227512da2c922dc41a564ce442f388
Reviewed-on: https://chromium-review.googlesource.com/1070973
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#561469}
fs
Allow Text node in elementsFromPoint if descendant of SVG text content
When hit-testing, SVG text content nodes will use their Text node
descendants as the inner-most/hit node, and hit-testing will not be
performed in any of the background phases. Thus we need to selectively
allow Text node which has an SVG text content element as their parent.

Bug: 842504
Change-Id: Ie282d5e9a66880f3f0d5e319b249f5f41db9e9db
Reviewed-on: https://chromium-review.googlesource.com/1059753
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Philip Rogers <pdr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#561238}
fs
Reverse traversal order in SVGRootInlineBox
Text painted later should make the top-most node, so line boxes should
be visited front-to-back. This will generally only make a difference for
text nodes that overlap.

This will also make a difference when elementsFromPoint is fixed, since
then we'll add the hit elements in the required "innermost to outermost"
order.

Bug: 842504
Change-Id: I541a394cbb0677980308615793f5e1fa9ea3b401
Reviewed-on: https://chromium-review.googlesource.com/1070196
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Reviewed-by: Philip Rogers <pdr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#561222}
bratell
[jumbo] Rename one of the EnumerateOutputDevices functions
Since we just got two EnumerateOutputDevices functions in
content/browser/renderer_host/media, in a jumbo build the compiler
doesn't know which to use in a Bind call. This renames one of them
OldEnumerateOutputDevices since the code was renamed that way.

TBR=guidou@chromium.org,ossu@chromium.org

Bug: 837661
Change-Id: I1cb5201e05400f726e5081baa10a87fe2dce5cc5
Reviewed-on: https://chromium-review.googlesource.com/1069357
Reviewed-by: Daniel Bratell <bratell@opera.com>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#561208}
fs
Document SVGImage::{Get,Has}IntrinsicSizingInfo
TBR=schenney@chromium.org

Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: Icd23f26d15c522033d84c832d6655277533c0e37
Reviewed-on: https://chromium-review.googlesource.com/1070278
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#561130}
fs
Use consistently computed lengths when finding relevant contour
In CalculatePointAndNormalOnPath, compute the accumulated length of the
contours and compare against the passed in (now unmodified) |length|, to
increase the chances of comparing similarly computed length with each
other. |length| is often, directly or indirectly, derived from the
computed length of the Path (i.e using Path::length().)

Bug: 845375
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: Ibda61dd29921f41e0b294edde31ddb21ebbefd08
Reviewed-on: https://chromium-review.googlesource.com/1069071
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Reviewed-by: Florin Malita <fmalita@chromium.org>
Cr-Commit-Position: refs/heads/master@{#561032}
mpichlinski
Wait for completion of changing enabled tracks in PipelineIntegrationTests.
Calling Seek/Resume on Pipeline when OnEnabledAudioTracksChanged or
OnSelectedVideoTrackChanged have not finished their job will end with a crash:
- PlaybackWithVideoTrackDisabledThenEnabled crashes on
  DCHECK(!(pending_audio_track_change_ || pending_video_track_change_));
  in RendererImpl::Flush when calling Seek after unfinished
  OnSelectedVideoTrackChanged,
- TrackStatusChangesWhileSuspended crashes on
  return time_source_->CurrentMediaTime();
  in RendererImpl::GetMediaTime() due to nullptr time_source_
  when OnEnabledAudioTracksChanged finishes its job after calling Resume.

In production code PipelineController is responsible for gating operations
via callbacks in order to prevent race conditions.

Sometimes RunUntilIdle may be insufficient for changing track state, instead
of it wait in the RunLoop until completion callback has been called.

Bug: 836785
Change-Id: I8a784d668b6d92bebd90fafd6e6dbddb18c9ceb4
Reviewed-on: https://chromium-review.googlesource.com/1066015
Commit-Queue: Wez <wez@chromium.org>
Reviewed-by: Matthew Wolenetz <wolenetz@chromium.org>
Reviewed-by: Wez <wez@chromium.org>
Cr-Commit-Position: refs/heads/master@{#560640}
fs
Fix SVGImage filtering in JankTracker
The condition claiming to filter out documents (frames) originating from
SVGImages was in fact filtering out all SVG documents. Adjust.

Move the unit test to SVGImageTest because it already has usable
infrastructure to test this properly.

Also add DISALLOW_NEW to the JankTracker definition to indicate its
relation to the GC.

Bug: 581518
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I53ae6100c1538430c97c8b0fd6cda2f5c1ee9a6c
Reviewed-on: https://chromium-review.googlesource.com/1068914
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Steve Kobes <skobes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#560630}
fs
Allow more selective invalidations for 'filter'
Add a new InvalidationMode flag (kSkipAncestorInvalidation) to allow skipping
the invalidation of ancestors, and then use that for the "fine-grained"
invalidation in LayoutSVGResourceFilter to restore the more efficient method
for clients which have a usable FilterData.

For filters referenced by SVG content, this restores the behavior (by not
invalidating more than needed, avoiding caches being dropped.) For non-SVG
content the behavior remains the same (flags are not used/ignored.)

Bug: 769774
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I41ccbbb6552558297329050dbe7630a2d624273a
Reviewed-on: https://chromium-review.googlesource.com/1065910
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#560529}
bratell
[jumbo] Declare BubbleDialogDelegateView template specialization
BubbleDialogDelegateView has a specialization of view properties
so declare it to be sure the compiler doesn't get upset about
using properties before it knows about the specialization.

Bug: 764918
Change-Id: I55b70dc3dacfdcd5eb466cfcde234090573d2bfa
Reviewed-on: https://chromium-review.googlesource.com/1067346
Reviewed-by: Scott Violet <sky@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#560502}
fs
Apply zoom in LayoutSVGRoot::ComputeIntrinsicSizingInfo
Previously we didn't know in what context said method was called, so we
didn't know if zoom ought to be applied or not.
Add LayoutSVGRoot::UnscaledIntrinsicSizingInfo and change current
callers of ComputeIntrinsicSizingInfo to use it. Then make
ComputeIntrinsicSizingInfo scale the intrinsic size.

Bug: 722055
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: If668e85bcea1028e48a3bc98c74d07435d425338
Reviewed-on: https://chromium-review.googlesource.com/1067397
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Philip Rogers <pdr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#560331}
fs
Get rid of SVGImage::EmbeddedReplacedContent
Rather than exposing the document root's LayoutObject, add an bunch of
methods to achieve the same thing as the returned object is used for.
Reuse the same names as used on FrameView. Also rename the method on
LayoutImage to something more appropriate.

Bug: 722055
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I6d006206365988c2ad8068db7251414529ed3bca
Reviewed-on: https://chromium-review.googlesource.com/1065997
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Cr-Commit-Position: refs/heads/master@{#560322}
fs
Rebuild the SVGResources for <pattern> after changing SVGResource
Since we reassociate the SVGResource synchronously, we need to also make
sure that the associated SVGResources object is updated, else it could
end up pointing to the old <pattern> LayoutObject.

Bug: 845040
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I026b46abcd510485ddfe33622cb5f5aa1bab9610
Reviewed-on: https://chromium-review.googlesource.com/1065779
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#560300}
fs
Reland: "[CI] Convert SVG resources to use SVGResource"
From using AtomicString (for 'mask', 'marker-*', 'fill' and 'stroke') or
the string representation of SVGResources ('filter' and 'clip-path'),
convert to using SVGResources.
Add an implementation of SVGResourceClient (SVGElementResourceClient)
and register it with the existing resources. Invalidation code is moved
here. This makes the invalidation code slightly more homogeneous between
the various code-paths.

The new SVGResourceClient implementation is stored in SVGElementRareData
as needed.
The various computed style representations are converted to use the new
StyleSVGResource, which is a ref-counted wrapper around an SVGResource
and its underlying string representation (which is needed for
serialization.) Style building is changed to produce this new wrapper
(rather than an AtomicString.) A helper for serialization is added to
ComputedStyleUtils.
The kHasPendingResources flag is removed since it no longer used, and
the hook in Element is removed.
All LayoutSVGResource* subclasses are changed to take SVGResourceClients
instead of LayoutObjects, and the |clients_| set is removed in favor of
the set in SVGResource.
A bunch of helpers are added for updating (adding/removing) the client
registrations. The various LayoutSVG subclasses are updated to call
these helpers.

Changes on reland: LocalSVGResources are now tracked using WeakMember, and
the associated IdTargetObservers are cleaned up when weak references are
cleared.

Bug: 769774
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: Ie0b42471aea5ea5afb5d239662b4ba195281f764
Reviewed-on: https://chromium-review.googlesource.com/1057330
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Justin Novosad <junov@chromium.org>
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Cr-Commit-Position: refs/heads/master@{#559479}
bratell
Don't check header guard style in third_party
The presubmit check warning for correct include guards would
trigger for generated files in third_party/win_build_output. Since
files in third_party is often not written with the Chromium style
guide in mind that is over zealous so this patch stops
checking their names (except for in blink).

The presubmit code will still check the existence of a guard since
lack of one can cause problems outside the module and there has been
no reports of false warnings.

This patch also removes the exceptions that used to be there for
blink since blink has moved and been reformatted.

Bug: 814776
Change-Id: Ic7f2bbba5b9bcafbb5bec15b79b04d5e81994b77
Reviewed-on: https://chromium-review.googlesource.com/1061698
Reviewed-by: Nico Weber <thakis@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#559185}
fs
Refactor computation of intrinsic size for "nested" objects
Sink the update of intrinsic_size_ out of the if-else in
ComputeIntrinsicSizingInfoForReplacedContent, and then push
GetNestedIntrinsicSizingInfo down into subclasses, folding it away to use the
"local" constructs of the relevant subclasses.

This leaves subclasses to deal with issues such as if whether to apply zoom
or not et.c, and will with some additional tweaks allow for more succinct
interfaces in the "nested" cases. It also makes LayoutReplaced much simpler.

Bug: 722055
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: Ie8493ffa89ffb34d2591d6a7ecdc8ebc20c6264f
Reviewed-on: https://chromium-review.googlesource.com/1059776
Reviewed-by: Koji Ishii <kojii@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#559069}
bratell
Avoid ambiguity between ::i18n and ::autofill::i18n.
Unfortunately there are two i18n namespaces, including one
global one, so if you are in ::autofill, referring to i18n is
ambigious if the compiler knows about both of them. This happens
in jumbo builds which means that my previous jumbo fix here didn't
actually work.

Change-Id: I7467ff958e93433581da0134d9a6e8ddd21bde49
Reviewed-on: https://chromium-review.googlesource.com/1057728
Reviewed-by: Bernhard Bauer <bauerb@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#558364}
bratell
[jumbo] Make PhoneNumber unambigious
There is a ::i18n::phonenumbers::PhoneNumber and a
::autofill::PhoneNumber. To avoid ambiguity (especially in jumbo
builds where more types are known to more code), refer to
::i18n::phonenumbers::PhoneNumber with the full name inside
autofill code.

Also refer to PhoneNumberUtils from the same namespace the same
way for consistency.

Change-Id: Ic36cae9a8df0ceb07f3494fa34d8b08531cd46e4
Reviewed-on: https://chromium-review.googlesource.com/1050288
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Bernhard Bauer <bauerb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#557164}
fs
Revert "[CI] Convert SVG resources to use SVGResource"
This reverts commit 3431b89c8be2d7b1a60f5eb135b1d27ce432ce9b.

Reason for revert: Tickled fuzzers

Original change's description:
> [CI] Convert SVG resources to use SVGResource
> 
> From using AtomicString (for 'mask', 'marker-*', 'fill' and 'stroke') or
> the string representation of SVGResources ('filter' and 'clip-path'),
> convert to using SVGResources.
> Add an implementation of SVGResourceClient (SVGElementResourceClient)
> and register it with the existing resources. Invalidation code is moved
> here. This makes the invalidation code slightly more homogeneous between
> the various code-paths.
> 
> The new SVGResourceClient implementation is stored in SVGElementRareData
> as needed.
> The various computed style representations are converted to use the new
> StyleSVGResource, which is a ref-counted wrapper around an SVGResource
> and its underlying string representation (which is needed for
> serialization.) Style building is changed to produce this new wrapper
> (rather than an AtomicString.) A helper for serialization is added to
> ComputedStyleUtils.
> The kHasPendingResources flag is removed since it no longer used, and
> the hook in Element is removed.
> All LayoutSVGResource* subclasses are changed to take SVGResourceClients
> instead of LayoutObjects, and the |clients_| set is removed in favor of
> the set in SVGResource.
> A bunch of helpers are added for updating (adding/removing) the client
> registrations. The various LayoutSVG subclasses are updated to call
> these helpers.
> 
> TBR=junov@chromium.org
> 
> Bug: 769774
> Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
> Change-Id: I62418465251532240c4e895e5c4d253ed9e53b9a
> Reviewed-on: https://chromium-review.googlesource.com/977965
> Commit-Queue: Fredrik Söderquist <fs@opera.com>
> Reviewed-by: Fredrik Söderquist <fs@opera.com>
> Reviewed-by: Philip Rogers <pdr@chromium.org>
> Reviewed-by: Stephen Chenney <schenney@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#556743}

TBR=pdr@chromium.org,fs@opera.com,junov@chromium.org,schenney@chromium.org

Change-Id: I695b3eed793bb000b057bca52364265d201f0bae
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 769774
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Reviewed-on: https://chromium-review.googlesource.com/1051345
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#557120}
fs
Fix [a-z] range comparison in IsValidElementNamePerHTMLParser
Bug: 648179
Change-Id: I623023d6e195447381bf8b08124d7475bb0fe93d
Reviewed-on: https://chromium-review.googlesource.com/1049629
Reviewed-by: Kent Tamura <tkent@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#557117}
fs
[CI] Convert SVG resources to use SVGResource
From using AtomicString (for 'mask', 'marker-*', 'fill' and 'stroke') or
the string representation of SVGResources ('filter' and 'clip-path'),
convert to using SVGResources.
Add an implementation of SVGResourceClient (SVGElementResourceClient)
and register it with the existing resources. Invalidation code is moved
here. This makes the invalidation code slightly more homogeneous between
the various code-paths.

The new SVGResourceClient implementation is stored in SVGElementRareData
as needed.
The various computed style representations are converted to use the new
StyleSVGResource, which is a ref-counted wrapper around an SVGResource
and its underlying string representation (which is needed for
serialization.) Style building is changed to produce this new wrapper
(rather than an AtomicString.) A helper for serialization is added to
ComputedStyleUtils.
The kHasPendingResources flag is removed since it no longer used, and
the hook in Element is removed.
All LayoutSVGResource* subclasses are changed to take SVGResourceClients
instead of LayoutObjects, and the |clients_| set is removed in favor of
the set in SVGResource.
A bunch of helpers are added for updating (adding/removing) the client
registrations. The various LayoutSVG subclasses are updated to call
these helpers.

TBR=junov@chromium.org

Bug: 769774
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I62418465251532240c4e895e5c4d253ed9e53b9a
Reviewed-on: https://chromium-review.googlesource.com/977965
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Philip Rogers <pdr@chromium.org>
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Cr-Commit-Position: refs/heads/master@{#556743}
fs
Fix drop-shadow(...) offset int conversion in FilterEffectBuilder
Avoid the implicit conversion to int in the constructor for WebPoint.
Also don't pass through WebPoint at all since AppendDropShadowFilter
take an IntPoint.

Bug: 836480
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I2c05681c686cf9f7169c79cf5f67849f483f36f8
Reviewed-on: https://chromium-review.googlesource.com/1039829
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#555499}
fs
Remove (trivially) unneeded ImageResourceContent::IntrinsicSize calls
Since SVGImage is handled explicitly already, and we pass
kDoNotRespectImageOrientation to IntrinsicSize() in these functions,
just call Image::Size() directly rather than passing through the
ImageResourceContent method.

Bug: 773272
Change-Id: I6b7c24f5be425f04cd2f68cbc4612054b635bc2b
Reviewed-on: https://chromium-review.googlesource.com/1032745
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#554763}
fs
Factor out <clipPath> user space transform computation
This computation (clipPath[transform] and optional oBB transform) is
used by LayoutSVGResourceClipper::HitTestClipContent,
LayoutSVGResourceClipper::ResourceBoundingBox and ClipPathClipper.

Factor it into a new method CalculateClipTransform() on
LayoutSVGResourceClipper and use it at the three locations.

Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: Icaa9707f24c11f1a45d80ff71d8e156c868898c1
Reviewed-on: https://chromium-review.googlesource.com/1030212
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#554022}
mpichlinski
Fixed compositor_unittests that crashed on Mac
After recent changes TestCompositorHostMac started requiring
a real AcceleratedWidgetMac, otherwise it would crash while
trying to Show. After fixing that, there was another issue
that ImageTransportSurface started crashing, because of
skipped SetAllowOSMesaForTesting in compositor test_suite.

Tests affected:
LayerWithRealCompositorTest.*

Change-Id: I60b84611406744989e2f00f13e20c1177912814f
Reviewed-on: https://chromium-review.googlesource.com/1014101
Reviewed-by: ccameron <ccameron@chromium.org>
Reviewed-by: Ian Vollick <vollick@chromium.org>
Commit-Queue: Michal Pichlinski <mpichlinski@opera.com>
Cr-Commit-Position: refs/heads/master@{#553960}
fs
Fix style on some parameter names in the CSS parser
  unitlessZeroFeature -> unitless_zero_feature
  negativeSize -> negative_size
  threeValuePosition -> three_value_position

Change-Id: Id42906e518e6780bfa601031d8ad00430b2f48b4
Reviewed-on: https://chromium-review.googlesource.com/1027878
Commit-Queue: Eric Willigers <ericwilligers@chromium.org>
Reviewed-by: Eric Willigers <ericwilligers@chromium.org>
Cr-Commit-Position: refs/heads/master@{#553777}
fs
Use round() [not roundf()] in RoundedIntPoint(const DoublePoint&)
This avoids the implicit conversion to float, which can lead to loss of
precision.

Bug: 836722
Change-Id: I66ea0f42823347b17e41e5d823aaf766429eacbf
Reviewed-on: https://chromium-review.googlesource.com/1027710
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#553543}
mharanczyk
Prevent ManifestHandlerRegistry override from leaking to different tests.
ContentVerifierTest was setting up override but never reseting it
causing other tests that loaded extension to access invalid memory
of stack allocated registry override.

This is regression after crrev.com/c/957645 that causes crash
or timeout in extensions_unittests.

Bug: 809088, 832801
Change-Id: I45d8ee2e4e450e8d5f619e502e7a6e96c8879ef0
Reviewed-on: https://chromium-review.googlesource.com/1013982
Commit-Queue: Marek Haranczyk <mharanczyk@opera.com>
Reviewed-by: Istiaque Ahmed <lazyboy@chromium.org>
Reviewed-by: proberge <proberge@chromium.org>
Cr-Commit-Position: refs/heads/master@{#551738}
ppluciennik
Fixed problem with absolute paths in ninja files.
R=brettw@chromium.org, rsesek@chromium.org, sdefresne@chromium.org, sergeyu@chromium.org

Bug: 821738
Change-Id: Ib1dcca4070ad7019c082653217df48adda69ab32
Reviewed-on: https://chromium-review.googlesource.com/962282
Reviewed-by: Sylvain Defresne <sdefresne@chromium.org>
Reviewed-by: Sergey Ulanov <sergeyu@chromium.org>
Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#551519}
wdzierzanowski
Avoid calling GetAllStreams() on uninitialized Demuxer
The first time we know the Demuxer initialization is complete is when
Pipeline::Start() completes (asynchronously).

Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Change-Id: I7451187be2d141780d5aa514fb3a1ec4abe8fbbe
Reviewed-on: https://chromium-review.googlesource.com/1000858
Commit-Queue: Chrome Cunningham <chcunningham@chromium.org>
Reviewed-by: Chrome Cunningham <chcunningham@chromium.org>
Cr-Commit-Position: refs/heads/master@{#551156}
bratell
Avoid redefining IsMsgHandled by making all Win message handlers safe
There were two sets of message map macros, one with IsMsgHandled as a
function, one with it as a macro. If combined in some translation unit
that could cause compilation problems, and it did in some Opera builds.

This patch changes the code so that there is only one implementation
of the macros and it's the "safe" one, where "safe" means that it
can handle that the underlying object is deleted inside a message
handler without crashing.

Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
Change-Id: I2f039d8d93a539c8322caa664e642956c5d6d372
Reviewed-on: https://chromium-review.googlesource.com/995896
Reviewed-by: Scott Violet <sky@chromium.org>
Commit-Queue: Scott Violet <sky@chromium.org>
Cr-Commit-Position: refs/heads/master@{#550711}
mpichlinski
Added missing depenencies in chrome/services/media_gallery_util/public/cpp
Bug: 832591
Change-Id: I8d104a7e0ede58f20d71bb5ce00f8b398cf8e28b
Reviewed-on: https://chromium-review.googlesource.com/1012023
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Michal Pichlinski <mpichlinski@opera.com>
Cr-Commit-Position: refs/heads/master@{#550643}
fs
Remove LocalFrameView::forcing_layout_parent_view_
This flag is never set to true anymore.

Bug: 442939
Change-Id: I03bc6129d923ff90d39e32b7508bb56cf1139b31
Reviewed-on: https://chromium-review.googlesource.com/1010164
Commit-Queue: Chris Harrelson <chrishtr@chromium.org>
Reviewed-by: Chris Harrelson <chrishtr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#550313}
bratell
Too many crash_keys::SetCrashKeysFromCommandLine()
When building chrome_app_unittests chrome/common/crash_keys.cc are
compiled both as a dependency and locally. Enough to compile it
as a dependency. (Noticed in jumbo build experiments where the
duplicate symbols met in the linker)

Change-Id: I517436d21ae17c2ff664afeed43ad8e1b7e529e9
Reviewed-on: https://chromium-review.googlesource.com/1005341
Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#550207}
mpichlinski
GN: Allow XCode projects to use ICECC environment variables.
Without them XCode cannot compile generated projects with ICECC.

Bug: 831500
Change-Id: I3b50c730660c4e8a6a06b9fda340e20edb87e40a
Reviewed-on: https://chromium-review.googlesource.com/1006577
Reviewed-by: Brett Wilson <brettw@chromium.org>
Commit-Queue: Michal Pichlinski <mpichlinski@opera.com>
Cr-Commit-Position: refs/heads/master@{#550159}
bratell
More common to include headers than cc files so lets do that
An accidental inclusion of a cc file caused interesting
linking errors (duplicate chrome::kChromeUIPrintURL) in certain
build configurations.

Fix is to include the header instead of the cc file so that
references to chrome::kChromeUIPrintURL will be external as intended.

Change-Id: Iba69dbd17267955534609d308cef16ab0467671d
Reviewed-on: https://chromium-review.googlesource.com/1005342
Reviewed-by: Demetrios Papadopoulos <dpapad@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#549560}
fs
[CI] Drop redundant |candidate_| prefixes from SearchCandidate helper
Change-Id: I07129786b29acb7eea5fd1946e9301a370472125
Reviewed-on: https://chromium-review.googlesource.com/1002556
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#549167}
fs
[PE] Don't early-out in LayoutSVGText::NodeAtFloatPoint
Since <text> can have descendants that may both differ in visibility as
well as fill/stroke, we can't evaluate pointer-events in LayoutSVGText,
but should rather let LayoutBlock (and SVGInlineTextBox et al) handle
the hit query. This makes LayoutSVGText somewhat similar to the same
method on LayoutSVGContainer.

Bug: 828930
Change-Id: I2767ed149705289e770d5ae165efd910c2c7ff15
Reviewed-on: https://chromium-review.googlesource.com/998352
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Philip Rogers <pdr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#549154}
bratell
Made two GetExtensionView() functions into member functions
There were two GetExtensionView functions which clashed in
jumbo build experiments where they ended up in the same
translation unit. This patch makes them member functions which
removes the need to supply an argument, which in turn makes the
code a bit simpler and easier to read.

Bug: 803406
Change-Id: I09fad295de900d6d78092397654314e757761226
Reviewed-on: https://chromium-review.googlesource.com/997774
Reviewed-by: Ben Wells <benwells@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#549133}
bratell
Reuse existing AcceleratorMapping struct
The two identical AcceleratorMapping structs clashed in jumbo
build experiments (no offical support of jumbo in this code
yet).

Bug: 803406
Change-Id: I065bfb447de67c05d2f6172ffbdeff4bc68e6538
Reviewed-on: https://chromium-review.googlesource.com/997832
Reviewed-by: Ben Wells <benwells@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#548810}
bratell
Gave some Mac/Views helper functions unique names
In jumbo experiments (jumbo is not yet supported in
chrome/browser/ui) several GetBubbleAnchorView and
GetBubbleAnchorRect functions clashed. They were more or less
identical but there is no obvious place to share them, and even
though they are small, the code gets messier if you inline them.

This patch gives the functions unique names as a preparation
for jumbo support in chrome/browser/ui

Bug: 803406
Change-Id: I104ae7cc961dd867e89e06fe8f18b401b39af549
Reviewed-on: https://chromium-review.googlesource.com/998158
Reviewed-by: Elly Fong-Jones <ellyjones@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#548778}
fs
Update 'lighter' and 'bolder' computations to match spec
Update FontDescription::BolderWeight and LighterWeight to match the table
in https://drafts.csswg.org/css-fonts-4/#font-weight-prop .

Bug: 809956
Change-Id: I18cb9a10ef3d86f68113bb0663e5364d0120a739
Reviewed-on: https://chromium-review.googlesource.com/997592
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Dominik Röttsches <drott@chromium.org>
Cr-Commit-Position: refs/heads/master@{#548741}
bratell
[jumbo] Too many kSha256Hash
Earlier this year, all kSha2Hash got longer names but two
kSha256Hash must have remained, and now they ended up in
the same translation unit and jumbo on Windows stopped
compiling. This renaming follows the pattern of earlier renames.

TBR=thestig@chromium.org

Change-Id: I95b7d6b7e5f43f25bee8e98aa3eeeb4de9d7e55f
Reviewed-on: https://chromium-review.googlesource.com/999415
Reviewed-by: Daniel Bratell <bratell@opera.com>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#548730}
fs
[PE] Improve SVG text selection for vertical text
We were previously always using the "left edge" of the fragment bounding
box when computing the position within the fragment. This works poorly
for vertical text. Use "top edge" for the vertical case instead.

Bug: 829214
Change-Id: I52e0aeffa95d05b1c86cd6aeca5dde7a886db486
Reviewed-on: https://chromium-review.googlesource.com/997792
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Reviewed-by: Philip Rogers <pdr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#548722}
bratell
Rename a function whose name conflicted in jumbo builds
In jumbo build experiments the presence of two different
OnCheckIsDefaultBrowserFinished functions meant that
Bind didn't know which one to bind and it didn't compile.

This patch renames one OnCheckIsDefaultBrowserFinished to
OpenURLAfterCheckIsDefaultBrowser which seems like a good
name for that function.

Bug: 803406
Change-Id: I056e613b7e3d55c0b2dbde68db8d75d3e2c55876
Reviewed-on: https://chromium-review.googlesource.com/998152
Reviewed-by: Ben Wells <benwells@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#548712}
bratell
Inlined two GetProfileFromWebContents helpers
In jumbo build experiments (no jumbo for chromium/browser/ui yet)
two GetProfileFromWebContents ended up in the same translation unit.
Each of them was only used once. This inlines them both.

I dropped the null check from the GetProfileFromWebContents() in
account_chooser_dialog_view.cc because if that helper returned
null, then the code would already crash inside
GetDefaultStoragePartition() (GetStoragePartitionFromConfig()
will call browser_context->IsOffTheRecord() without any null check).

Bug: 803406
Change-Id: I0200eb42c0a54b674eaec6122e1193c931dd2344
Reviewed-on: https://chromium-review.googlesource.com/997793
Reviewed-by: Vasilii Sukhanov <vasilii@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#548711}
fs
Adjust weight ranges in FontDescription::Lighter/BolderWeight
Since the (CSS) parser allows numeric weight values in the range
[1, 1000], adjust the ranges in FontDescription::Lighter/BolderWeight
to match that.
Also factor in that the values can have fractions (by implicitly
truncating them) and simplify the range check since there's now a
set of adjacent intervals in practice.

Bug: 828747
Change-Id: I5fe3405ca45ed8016530d995976e36a6ebbcf366
Reviewed-on: https://chromium-review.googlesource.com/995452
Reviewed-by: Dominik Röttsches <drott@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#548448}
fs
Nudge click point in svg/custom/use-events-crash.svg
Issue the click in the test further down the rect in the hope that the
selection code won't end up picking one or the other of the <text>s, but
only the one further down.

Bug: 829316
Change-Id: Iae3419bf902a864ea8ec46e69764480c0f240b8a
Reviewed-on: https://chromium-review.googlesource.com/997843
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#548430}
bratell
Removing some "using namespace std"
The code guide doesn't allow "using namespace", and they have
a tendency to cause problems with jumbo builds so this is just
a cleanup to avoid possible future problems.

Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
Change-Id: Ibf519c5e4ddb0497961f1befa8de416039e4fc61
Reviewed-on: https://chromium-review.googlesource.com/992318
Reviewed-by: Jochen Eisinger <jochen@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#548386}
bratell
Rename some symbols that were duplicated in cert code
Duplicates of kTrafficAnnotation and g_is_fake_official_build_for_testing
just appeared and caused problems for certain (extreme) jumbo build
configurations.

In jumbo builds much code is compiled in the same translation
unit which means that they share the same anonymous namespace.

This patch renames the variables following the pattern of similar clashes.

(nopresubmit because any changes to net::URLFetcher are currently
 blocked and this just changes a name)

NOPRESUBMIT=true

Change-Id: Ib55f61c2c8a76c235de45f509df493c875a3a12b
Reviewed-on: https://chromium-review.googlesource.com/992313
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Ryan Sleevi <rsleevi@chromium.org>
Reviewed-by: Matt Mueller <mattm@chromium.org>
Reviewed-by: Sergey Ulanov <sergeyu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#548379}
fs
[CI] Cleanup some SVG hit-testing code
...mostly by de-indenting it by reversing the visibility-check. Also
reuse ComputedStyle locals and switch to using a ComputedStyle&.
In LayoutSVGShape::NodeAtFloatPointInternal, the large-ish condition is
split into three slightly smaller.

Change-Id: I275081391a3b399f9887215f4fe3075884de103c
Reviewed-on: https://chromium-review.googlesource.com/995674
Reviewed-by: Philip Rogers <pdr@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#548154}
fs
Reland "Serialize 'oblique' computed values for 'font-style'"
Handling of 'oblique' values were missing in
ComputedStyleUtils::ValueForFontStyle - serialize as 'oblique <angle>'.
Because of this the return value needs to be widened to CSSValue.

Expectations for css/css-fonts/variations/font-shorthand.html updated.

TBR=drott@chromium.org

Bug: 809935, 809938
Change-Id: I753324776ba080820bc5c4a14e8aff6237ee5d12
Reviewed-on: https://chromium-review.googlesource.com/995793
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#548143}
fs
Revert "Serialize 'oblique' computed values for 'font-style'"
This reverts commit 755a9214dc9116a826f8881851c07e352004a6c5.

Reason for revert: Mid-flight collision with 162e9dda47d694596620b69c5fb23cc7f0f87126 - will update and reland.

Original change's description:
> Serialize 'oblique' computed values for 'font-style'
> 
> Handling of 'oblique' values were missing in
> ComputedStyleUtils::ValueForFontStyle - serialize as 'oblique <angle>'.
> Because of this the return value needs to be widened to CSSValue.
> 
> Bug: 809935, 809938
> Change-Id: I1de846595ed955455d57ab9f6ea45326e502a65b
> Reviewed-on: https://chromium-review.googlesource.com/995273
> Reviewed-by: Dominik Röttsches <drott@chromium.org>
> Commit-Queue: Fredrik Söderquist <fs@opera.com>
> Cr-Commit-Position: refs/heads/master@{#548044}

TBR=fs@opera.com,drott@chromium.org,futhark@chromium.org

Change-Id: I379a152245f16fc792c8bfc55a2d8b127ba30820
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 809935, 809938
Reviewed-on: https://chromium-review.googlesource.com/995695
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#548052}
fs
Serialize 'oblique' computed values for 'font-style'
Handling of 'oblique' values were missing in
ComputedStyleUtils::ValueForFontStyle - serialize as 'oblique <angle>'.
Because of this the return value needs to be widened to CSSValue.

Bug: 809935, 809938
Change-Id: I1de846595ed955455d57ab9f6ea45326e502a65b
Reviewed-on: https://chromium-review.googlesource.com/995273
Reviewed-by: Dominik Röttsches <drott@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#548044}
bratell
Give two cert testing classes unique names
A second WrappedTestingCertVerifier and
g_cert_verifier_for_testing just arrived and in some
extreme (non standard) jumbo build configurations those
ended up in the same translation unit. Since translation units
only have one common anonymous namespace, there was a symbol clash.

This patch renames the global variables to
g_cert_verifier_for_io_thread_testing and
g_cert_verifier_for_profile_io_data_testing and renames the classes
to WrappedCertVerifierForIoThreadTesting and
WrappedCertVerifierForProfileIoDataTesting.

Change-Id: I41549bc81943864f64ce304220e20ab00d91c889
Reviewed-on: https://chromium-review.googlesource.com/992494
Reviewed-by: Mihai Sardarescu <msarda@chromium.org>
Reviewed-by: Matt Menke <mmenke@chromium.org>
Reviewed-by: Matt Mueller <mattm@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#548029}
bratell
Avoid having two SendReport functions to not confuse Bind(..).
In certain (extreme) jumbo build configurations, SendReport in
chrome/browser/net/chrome_report_sender.h and
chrome/browser/net/trial_comparison_cert_verifier.cc ended up as
symbols in the same translation unit and then the address
operator didn't know which function to refer to in a Bind(...) call.

This renames the local SendReport in
net/trial_comparison_cert_verifier.cc to SendCertVerifyReport.

Change-Id: I9cc17beb509452f66f5620cf7ea4ca4f1f04ed33
Reviewed-on: https://chromium-review.googlesource.com/992495
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Matt Mueller <mattm@chromium.org>
Cr-Commit-Position: refs/heads/master@{#548012}
bratell
Removing some "using namespace WTF" and "using namespace WTF::Unicode"
The code guide doesn't allow "using namespace", and they have
a tendency to cause problems with jumbo builds so this is just
a cleanup to avoid possible future problems.

Change-Id: I058ed20ba072036b1995cf039ddb3c2ffc884483
Reviewed-on: https://chromium-review.googlesource.com/992952
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#547996}
bratell
[jumbo] X11/gfx: Need to say ::Display or it's ambiguous.
There are several classes/types named Display so to get
the X11 one, you have to specify it with ::Display (gfx::Display
is a common alternative when you're inside the gfx namespace).

TBR=hubbe@google.com

Bug: 822068
Change-Id: I402b7ad2d37a82d3091577733f3f06e673c29c7e
Reviewed-on: https://chromium-review.googlesource.com/994212
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Fredrik Hubinette <hubbe@chromium.org>
Reviewed-by: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#547916}
fs
[SPv175] Don't crash on <feImage> which reference an element with a mask
This works around a crash where a layout box references a filter that
contains a feImage filter primitive, which in turn reference content
that has a mask applied.

Bug: 814815, 825538
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: Ib2433b3ba48b3ea56462a1eb64209d36aa37cfa4
Reviewed-on: https://chromium-review.googlesource.com/982114
Reviewed-by: Xianzhu Wang <wangxianzhu@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#547802}
fs
Remove unused declarations in SVGFEDropShadowElement
StdDeviationXIdentifier/StdDeviationYIdentifier don't have definitions.

Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I187cd3d4991e89dc91e6a021771616cd441e0c22
Reviewed-on: https://chromium-review.googlesource.com/992493
Reviewed-by: Daniel Bratell <bratell@opera.com>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#547716}
fs
Update baselines for new Win10 version
Update baselines for

 fast/text/color-emoji.html,
 fast/text/emoticons.html,
 fast/text/international/002.html,
 fast/text/international/wrap-CJK-001.html,
 svg/W3C-SVG-1.1/text-intro-01-t.svg and
 svg/W3C-SVG-1.1/text-intro-04-t.svg

after bots got upgraded (minor changes to font data.)

Bug: 828051, 828260, 828314
Change-Id: I37d8d68348452338a09ae584742e83323713c463
Reviewed-on: https://chromium-review.googlesource.com/991953
Reviewed-by: Dominik Röttsches <drott@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#547697}
fs
svg/animations/getCurrentTime-pause-unpause.html no longer flaky
TBR=schenney@chromium.org

Bug: 824930
Change-Id: I123f2d2c7e95e5bbb0dd90abeab57246d312bc54
Reviewed-on: https://chromium-review.googlesource.com/992037
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#547674}
bratell
Narrowed scope of a UrlWithoutFragment method
In jumbo builds many files are compiled in the same
translation unit and then their anonymous namespaces will also
be one and the same. In blink/inspector two (identical)
UrlWithoutFragment functions end up colliding. This patch
changes it so that one of them has a more narrow scope.

The patch also removes the special casing of these files
from the build system.

Bug: 713137
Change-Id: If0b8bfb8a13c1191aa4e1c07d2aa1472ed168f29
Reviewed-on: https://chromium-review.googlesource.com/985978
Reviewed-by: Pavel Feldman <pfeldman@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#547653}
bratell
Move editing helper LocalToAbsoluteQuadOf() to a shared file
A commit just added a second copy of LocalToAbsoluteQuadOf
which triggered compilation failures in jumbo builds. This
deduplicates the function by moving it to EditingUtilities.cpp.

Change-Id: Ifee2d67714c18300f84c49e6371c95aaf8b95e9f
Reviewed-on: https://chromium-review.googlesource.com/985834
Reviewed-by: Yoshifumi Inoue <yosin@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#546784}
bratell
Remove the "::" prefix from testing namespace declarations.
Since ::blink::testing was renamed ::blink::test_helpers, the
"::" prefix on testing is no longer necessary. There is no longer
anything that can confuse the compiler regarding what "testing"
means.

Bug: 825768
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_layout_ng;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: Ibf65dd643185623530ce2f06ddc46fb8be34947a
Reviewed-on: https://chromium-review.googlesource.com/980035
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Cr-Commit-Position: refs/heads/master@{#546783}
bratell
Rename ::blink::testing to ::blink::test
Inside blink there is an ongoing conflict for the code whether
"testing" means ::testing (from gtest) or ::blink::testing. So
far it has been resolved mostly by adding a "::" prefix whenever
::testing was intended, but that is a bit annoying and coding should
not be annoying.

This patch renames ::blink::testing to ::blink::test (aka
"test" in all the code since the code is already
inside blink). That resolves the conflict once and for all and also
adheres to the coding standard that says no sub-namespace may have
the same name as a common top level namespace.

This does *not* move the files to a new directory test.
This does *not* remove all the :: prefixes that are now unnecessary.

Bug: 825768
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: Ie35502b0d5b4f401df104e38600ede878d24bdfa
Reviewed-on: https://chromium-review.googlesource.com/980054
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#546491}
bratell
Gave some global variables a g_ prefix to avoid collisions
In jumbo builds many cc files are compiled in the same translation
unit to make the compilation (much) faster. This also joins those
files' anonymous namespace and caused clashes if several files
use symbols with the same name. That happened with two global
"instance_" variables.

This patch renames them g_descriptive_name which matches a common
pattern for naming global variables.

Bug: 803406
Change-Id: I13e84ba5dba717d978ff2a43470e1ca4ab0457b2
Reviewed-on: https://chromium-review.googlesource.com/980880
Reviewed-by: Bret Sepulveda <bsep@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#546444}
bratell
Gave two kBubbleReshowsHistogramName unique names
In jumbo builds many cc files are compiled together in the same
translation unit. When that happens, those files will share the
same anonymous namespace so if they use symbols of the same name
they will clash.

That happened with two kBubbleReshowsHistogramName constants in
chrome/browser/ui/exclusive_access and this patch gives
those two more unique names.

Bug: 803406
Change-Id: I2b8e3a060c7b7853a3a001317e80d32b7d6e56d4
Reviewed-on: https://chromium-review.googlesource.com/980879
Commit-Queue: Yuri Wiitala <miu@chromium.org>
Reviewed-by: Yuri Wiitala <miu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#546239}
fs
Rewrite svg/animations/getCurrentTime-pause-unpause.html to avoid flakes
The test in it's current form imposed too strict requirements on the
time that had passed. We cannot guarantee a maximum elapsed time, only a
minimum (and barely that...) Rewrite the test to not impose any
restriction on the maximum elapsed time. Also convert it to use
testharness while at it. Also rewrite/convert the sibling test with
setCurrentTime.

Bug: 824930
Change-Id: I79882b0189e44790e3096c8346c2a0bf47276dd8
Reviewed-on: https://chromium-review.googlesource.com/981145
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#546190}
bratell
Rename helper function WriteFile to give it a unique name
In //extensions/browser a second helper function named
WriteFile just appeared and in jumbo builds where all of
extensions/browser is compiled in one translation unit (an extreme
jumbo configuration), the two clash. This patch renames the function
that is the least like base::WriteFile to "CreateDirAndWriteFile".

Change-Id: I0d3dc1bb3e13279a2bf333bc0c12985f2133a35d
Reviewed-on: https://chromium-review.googlesource.com/980056
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Istiaque Ahmed <lazyboy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#546050}
bratell
Use the predefined Android SDK constants instead of numbers
Half the code used the SDK_VERSION_* constants when checking
Android version, half the code used hard coded numbers 19, 21,
22, ....

This changes the code to use SDK_VERSION_ everywhere.

Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;master.tryserver.chromium.android:android_arm64_dbg_recipe;master.tryserver.chromium.android:android_compile_x64_dbg;master.tryserver.chromium.android:android_compile_x86_dbg;master.tryserver.chromium.win:win_optional_gpu_tests_rel
Change-Id: Icb4e3183f0490b00d16039681548ccf469e9d236
Reviewed-on: https://chromium-review.googlesource.com/975841
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Robert Sesek <rsesek@chromium.org>
Reviewed-by: Bo <boliu@chromium.org>
Reviewed-by: Reilly Grant <reillyg@chromium.org>
Reviewed-by: David Benjamin <davidben@chromium.org>
Reviewed-by: Chrome Cunningham <chcunningham@chromium.org>
Cr-Commit-Position: refs/heads/master@{#545870}
fs
Remove outdated DCHECK in SVGUseElement::InsertedInto
This DCHECK was made obsolete by
9b88406d1a87dfeef593c6d1a91beb3a2b696391, since it stopped using the
"pending resource" flag for <use>.

Bug: 825460
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: Ie1202097eb2172ef9ed3866e3a6575fbe4aa09db
Reviewed-on: https://chromium-review.googlesource.com/980252
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#545854}
bratell
Remove references to the non-existing android_compile_mips_dbg bot
Per answers on chromium-dev@, the android_compile_mips_dbg trybot
is no more.

Bug: gerrit:8617
Change-Id: I2f23c663d2baf397f30532290300bf2946531ab9
Reviewed-on: https://chromium-review.googlesource.com/980492
Commit-Queue: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Robert Sesek <rsesek@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Cr-Commit-Position: refs/heads/master@{#545813}
fs
Reland "[PE] Don't reparse "restart" and "fill" repeatedly"
Rather than doing an attribute lookup in GetRestart() and Fill(), just
map the attributes in ParseAttribute. Pack with active_state_.
Also get rid of the static AtomicStrings.

Noticed while looking at the referenced bug.

Use new accessor GetActiveState() for active_state_ accesses to avoid
stumbling over signedness mismatches.

Bug: 823473
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I9adf72cdfcc794885b79be1bfc374554f9382d11
Reviewed-on: https://chromium-review.googlesource.com/979807
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#545786}
bratell
Rename TestPrerendererClient since that name is already used
In some extreme jumbo configurations the newly added
TestPrerendererClient class in
Source/core/html/parser/HTMLDocumentParserTest.cpp
compiled in the same translation unit as TestPrerendererClient
in Source/core/exported/PrerenderingTest.cpp and then it
didn't compile.

This patch renames TestPre* to MockPre*/MockWebPre* which also matches
a common pattern when creating mock classes.

Change-Id: Ib800e5e65756bf3c3709d8f570982aaa46dc7cd4
Reviewed-on: https://chromium-review.googlesource.com/980332
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Matthew Cary <mattcary@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#545771}
bratell
Gave two kBufferSize constants unique names.
In some (extreme) jumbo configurations on Mac two kBufferSize
constants ended up in the same translation unit and caused
a compilation error. This patch gives them unique names to
not cause any future problems.

Change-Id: I96d5e51024ff99fcb838346726aa1635127841eb
Reviewed-on: https://chromium-review.googlesource.com/978209
Commit-Queue: Kent Tamura <tkent@chromium.org>
Reviewed-by: Kent Tamura <tkent@chromium.org>
Cr-Commit-Position: refs/heads/master@{#545720}
bratell
Avoid clashes between the kLeftToRight in OSX SDK and WTF::Unicode.
There is a kLeftToRight in OSX's SDK and in WTF::Unicode. If
WTF::Unicode is imported into global scope those might clash and
this happens in some non-standard (extreme) jumbo configurations.

Since "using namespace" isn't allowed per the coding standard,
this just adds the WTF::Unicode namespace to those symbols
that need it.

Change-Id: I97c59e5ffed7d2bd0f8340f5d14b69dc532175d6
Reviewed-on: https://chromium-review.googlesource.com/978205
Commit-Queue: Kent Tamura <tkent@chromium.org>
Reviewed-by: Kent Tamura <tkent@chromium.org>
Cr-Commit-Position: refs/heads/master@{#545718}
bratell
Use ::testing to not get mixed up with ::blink::testing
There is both a ::testing namespace and a blink::testing namespace
and if you inside namespace blink says "testing", which one you
get depends on what the compiler knows. In jumbo builds compilers
often know about both namespaces and will assume you mean
::blink::testing.

To be sure to get ::testing, you need to prefix it with ::.

In the long run ::blink::testing should probably be renamed. Its
name violates the rule that no sub namespace should have the same
name as a common top level namespace.

Change-Id: I60857ebd08d4b35ce56212d03b4ed63045803402
Reviewed-on: https://chromium-review.googlesource.com/978004
Commit-Queue: Kent Tamura <tkent@chromium.org>
Reviewed-by: Kent Tamura <tkent@chromium.org>
Cr-Commit-Position: refs/heads/master@{#545717}
fs
[PE] Don't reparse "restart" and "fill" repeatedly
Rather than doing an attribute lookup in GetRestart() and Fill(), just
map the attributes in ParseAttribute.
Also get rid of the static AtomicStrings.

Noticed while looking at the referenced bug.

Bug: 823473
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I19d1244c6034430c30e65c09e20c8f04552b1e5f
Reviewed-on: https://chromium-review.googlesource.com/978246
Reviewed-by: Philip Rogers <pdr@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#545686}
fs
[PE] Restore LayoutObject check in SVGElement::NotifyIncomingReferences
When an element has incoming references that are not in the layout tree
(like an element animated by [multiple] SMIL elements), the overhead of
the hash set insert/erase can be noticable (like for instance in
balls_svg_animation.html.)

Bug: 661598, 769774, 823473
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I8a5879186dabd5e071f708ac953b8f1e91b62847
Reviewed-on: https://chromium-review.googlesource.com/978213
Reviewed-by: Philip Rogers <pdr@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#545467}
bratell
Avoid having duplicate StopLoadingInBackgroundEnabled()
This is a jumbo compilation fix. A couple of hours ago a second
StopLoadingInBackgroundEnabled() was added which in jumbo builds
where *.cc files are compiled together caused a compilation failure.

The function is small enough to be inlined so that is what this patch
does here and at the original place it was copied from.

Bug: 820634
Change-Id: I09d8fe48f4573d67b353eda563abad54c2325769
Reviewed-on: https://chromium-review.googlesource.com/978001
Reviewed-by: Alexander Timin <altimin@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#545446}
pkalinowski
Do not use null Uri for camera intent
In case of failure to create a temporary image capture file,
GetCameraIntentTask#onPostExecute will receive null Uri. For capture
fields, this was already handled by aborting file selection.

However, in remaining cases, it would result in an attempt to add this
null Uri as EXTRA_OUTPUT and to convert it to ClipData. The latter
results in NullPointerException.

This change skips processing null Uri in remaining cases. Camera
intent without an Uri can only return small version of the image
directly as a bitmap, but that is unlikely what user can work with
and the rest of the code is not prepared to handle it anyway.

So, abort if mDirectToCamera == true, as there is no useful intent
to show. Otherwise, proceed with null as a camera intent which
will still enable other modes of file selection. This is also
in line with the behavior before the introduction of
GetCameraIntentTask.

Bug: 821440
Change-Id: Ib4024c406bbcaf560e5cdde584c317f1ab6477d2
Reviewed-on: https://chromium-review.googlesource.com/960722
Commit-Queue: Finnur Thorarinsson <finnur@chromium.org>
Reviewed-by: Ted Choc <tedchoc@chromium.org>
Cr-Commit-Position: refs/heads/master@{#545440}
wdzierzanowski
Add missing dependency on ppapi_plugin_sources
content_main_runner.cc uses the functions PpapiPluginMain() and
PpapiBrokerMain() from //content/ppapi_plugin/ when
(!is_multi_dll_chrome && enable_plugins) is true.

This fixes the linking of app_shell_helper_app_executable on macOS in a
static jumbo build after
https://chromium-review.googlesource.com/958282.  The error was
https://logs.chromium.org/v/?s=chromium%2Fbb%2Fchromium.fyi%2FJumbo_Mac%2F14982%2F%2B%2Frecipes%2Fsteps%2Fcompile%2F0%2Fstdout

BUG=367595

Change-Id: If2dab9414a780aa4f60a70153042608f225b37c0
Reviewed-on: https://chromium-review.googlesource.com/977682
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Commit-Queue: Wojciech Dzierżanowski <wdzierzanowski@opera.com>
Cr-Commit-Position: refs/heads/master@{#545396}
fs
[CI] Move InvalidationMode to SVGResourceClient; pass to clients
In preparation for always invalidating through SVGResourceClient.

TBR=fserb@chromium.org

Bug: 769774
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I733987de91d1051a72652aba3115e387dc909dbf
Reviewed-on: https://chromium-review.googlesource.com/976063
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Reviewed-by: Philip Rogers <pdr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#545393}
bratell
Reuse existing constants for Android SDK versions
There are constants for Android SDK versions in build_info.h
so nobody has to declare their own. This changes some duplicated
custom constants that clashed in jumbo builds to use the
global constants.

Bug: 598880
Change-Id: I32bc147729e561130eaaf4feab545bd0cd9714c1
Reviewed-on: https://chromium-review.googlesource.com/975641
Reviewed-by: Bo <boliu@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#545069}
fs
[CI] Add LayoutSVGBlock::GetElement helper
Like the equivalent helper on LayoutSVGModelObject, this provides a more
specific type of Node (an SVGElement), since is guaranteed for
subclasses of LayoutSVGBlock.
Also update the documentation in LayoutSVGModelObject to reflect the
current name.

Bug: 769774
Change-Id: I720af53e5a24e960773059f7d2a113e74bd5bdc5
Reviewed-on: https://chromium-review.googlesource.com/973378
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Reviewed-by: Philip Rogers <pdr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#545034}
fs
[CI] Use ToReferenceClipPathOperationOrNull instead of IsReferenceClipPath
Since DEFINE_TYPE_CASTS now provide a To<type>OrNull, we can use that
instead of essentially open-coding the same thing.

Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I22113ff36a406d0afc17e5ecf37158e1dec1fe8e
Reviewed-on: https://chromium-review.googlesource.com/973376
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#544833}
fs
Remove one hash lookup in SVGResourcesCycleSolver
Make use of the return value from HashSet::insert to eliminate the
preceding Contains().

Bug: 534817
Change-Id: I07ccfb26310801fd7534278550479df299f43d15
Reviewed-on: https://chromium-review.googlesource.com/970961
Reviewed-by: Philip Rogers <pdr@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#544550}
fs
[PE] Don't use callbacks for SVGElement::NotifyIncomingReferences
Dispatch overhead is high.

Bug: 661598, 769774, 823473
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I4b200d0076c209584a033be810f95c504e81c102
Reviewed-on: https://chromium-review.googlesource.com/970422
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Reviewed-by: Philip Rogers <pdr@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#544431}
fs
Make TranslateTransformOperation::X/Y return const Length&
Also eliminate a few copies in TranslateTransformOperation::Blend.

Change-Id: Icb390e3da70e2c3b651c34758f8e0fefa7bb4484
Reviewed-on: https://chromium-review.googlesource.com/970821
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#544377}
bratell
Followup WorkerModuleFetchCoordinater, move test code to shared file
Both the new and old code use an identical ClientImpl test class.
In jumbo builds those end up in the same translation unit and
it won't compile. This patch moves the class to a shared file
WorkerFetchTestHelper.h

Bug: 680046
Change-Id: Iabe58f2f2c93e4d77fb36c8c454952af994d302c
Reviewed-on: https://chromium-review.googlesource.com/968363
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Hiroki Nakagawa <nhiroki@chromium.org>
Cr-Commit-Position: refs/heads/master@{#544077}
fs
[CI] Restructure SVGResourcesCycleSolver
Restructure the code so that traversing a LayoutObject's resources is
shared, and rename ResourceContainsCycles to TraverseResourceContainer.
Hoist the side-effects (clearing out resources with cycles) to the
caller.

Bug: 534817, 769774
Change-Id: Icd8200a2cd9073487479e32827a9fdeb1d8d04c4
Reviewed-on: https://chromium-review.googlesource.com/966661
Reviewed-by: Philip Rogers <pdr@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#544037}
bratell
Manually inline the IsTouchOptimized method to avoid jumbo clashes
There is a common helper method IsTouchOptimized() that is a shortening
of ui::MaterialDesignController::IsTouchOptimizedUiEnabled(). That
helper method is placed in anonymous namespaces which are merged in
jumbo builds, causing clashes.

Alternatives are to find a shared location for this method (maybe in
//ui?) or inline it. This patch inlines it.

Bug: 803406
Change-Id: Ia389432bfdb506d27b625c916a9baf73b7b70f30
Reviewed-on: https://chromium-review.googlesource.com/966204
Reviewed-by: Bret Sepulveda <bsep@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#543939}
bratell
Give two kTextContext unique names for jumbo builds
There are two different kTextContexts in chrome/browser/ui, living
in different namespaces that in jumbo builds become the same
namespace. This patch renames them so that they have
unique names.

This affects Opera builds but not Chrome builds yet since jumbo
is not yet supported in chrome/browser/ui in Chrome.

Bug: 803406
Change-Id: I3354881b9dedae9499356800cbaed4de3cc0da4c
Reviewed-on: https://chromium-review.googlesource.com/966202
Reviewed-by: Scott Violet <sky@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#543938}
fs
[CI] Cleanup SVG <pattern> attribute collection
Move the 'href' lookup to a helper function (as seen in the very similar
SVGGradientElement.) Use a similar setup in SVGGradientElement
equivalent method.
Move attribute synchronization from LayoutSVGResourcePattern into
SVGPatternElement::CollectPatternAttributes.
Change the SetPatternAttributes helper to take a SVGPatternElement
reference.
Remove the element null-check in the LayoutObject.

Bug: 769774
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I16901de05437bbeea1981f5340bec1a3e4329b50
Reviewed-on: https://chromium-review.googlesource.com/966221
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#543709}
bratell
Have git ignore the third_party/llvm-bootstrap-install dir
third_party/llvm-bootstrap-install is sometimes created by
tools/clang/update.py and should not disturb git.

Change-Id: Id30390bc0e15e69661828f0124c08475539e3490
Reviewed-on: https://chromium-review.googlesource.com/966421
Reviewed-by: Hans Wennborg <hans@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#543687}
fs
[CI] Stop tracking <*Gradient> 'href' references through SVGResources
Gradient resources are currently only using the 'linked' resource in the
SVGResources object for cycle breaking and change notifications. The
SVG*GradientElements also perform cycle breaking on their own,
disregarding what SVGResourcesCycleSolver has done. The 'href's
themselves are what risk introducing cycles for gradients at the moment,
so handling them explicitly (as is already done) doesn't add any
additional complexity. Mixing resources defined by the DOM with those
defined by style does add complexity though.

This CL stops tracking <*Gradient> href's using SVGResources, and starts
tracking them using an IdTargetObserver in SVGGradientElement, much like
how similar 'href's are tracked.

Bug: 661598, 769774
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I5538ede4170c7181098fe2308dbfa640506334f4
Reviewed-on: https://chromium-review.googlesource.com/880965
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Philip Rogers <pdr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#543685}
bratell
Solving jumbo build offline_pages clash with base::DoNothing()
Too many SavePageLaterCallback functions caused problems in
jumbo builds. Since two of the three were just empty functions
this patch replaces them with base::DoNothing()

Change-Id: Ie9c939ee10674cdab77aab0a9ade65d70293fb0c
Reviewed-on: https://chromium-review.googlesource.com/964441
Reviewed-by: Cathy Li <chili@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#543397}
tmoniuszko
Fix crash on ResetWindowControls with no non-client view
Crash happens when Widget with no non-client view (for example
TYPE_WINDOW_FRAMELESS) is being shown on Windows 7 with Aero Glass
disabled.

This is a regression introduced by
https://chromium-review.googlesource.com/924315.
ResetWindowControls is called from HWNDMessageHandler::OnSysCommand.
Previously it wasn't called if non-client view was null because
ShouldHandleSystemCommands returned false in such case.

Bug: 189112
Change-Id: Ia12013ab11fd67dd28bcaf5d490c846928569a78
Reviewed-on: https://chromium-review.googlesource.com/960029
Commit-Queue: Tomasz Moniuszko <tmoniuszko@opera.com>
Reviewed-by: Michael Wasserman <msw@chromium.org>
Cr-Commit-Position: refs/heads/master@{#543350}
bratell
Disable blink pch for jumbo builds
pch makes jumbo builds slower instead of faster since each
pch file will only be used 1-3 times instead of many times, and
in Blink the pch files contain a lot of code so creating them
takes a long time.

This saves about 20% of the Blink build time on Windows.

Bug: 809010
Change-Id: Ia512646110572e4939e8e3cc1a9cd946b780cb97
Reviewed-on: https://chromium-review.googlesource.com/962785
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#543335}
fs
Refactor computed <paint> value handling
Combine all the fields that make up a <paint> into a class: SVGPaint.
Move the bulk of the style builder function for <paint> from the
template to StyleBuilderConverter. This should make future work on
<paint> resolution easier.
Also split the existing setters on {SVG,}ComputedStyle to avoid having
bools to indicate if the "visited" portion should be set or not. The
new way more closely resemble other color properties.
Add accessors to SVGPaint to both make code easier to read, and reduce
the dependence on SVGPaintType.

Bug: 769774
Change-Id: Ifad043c9e423f0fc7aa79fef78e635b2abb4636c
Reviewed-on: https://chromium-review.googlesource.com/961062
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Reviewed-by: Philip Rogers <pdr@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#543333}
bratell
Drop a couple of unused files that broke certain jumbo builds.
A completely unused object file in a static library will be
ignored by the linker, but with jumbo builds unused cc files will
be grouped with used cc files and the object file will no longer
be ignored.

If the cc file contains code that is bad it can then trigger followup
linker errors which happened in this case where debug component
windows builds had too many constructors and destructors for
WebAssociatedURLLoader when building webkit_unit_tests.exe

Change-Id: I16a0332b9e16903481c2995f2176e59a1ba8e53e
Reviewed-on: https://chromium-review.googlesource.com/955850
Reviewed-by: Jochen Eisinger <jochen@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#542843}
fs
[CI] Transition ReferenceFilterOperation to SVGResource
This CL transitions the ReferenceFilterOperation (used for 'filter')
from SVGElementProxy to SVGResource. It introduces ExternalSVGResource
as a new subclass of SVGResource.
ExternalSVGResource handles loading of an external document, and
notifies clients as needed when said document finishes loading.

Since this leaves SVGElementProxy unused, it is removed together with
some related structures. This also allows some code to be simplified
because we no longer need a TreeScope (or Node) in some places.

Bug: 769774
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: If6cbbf32e0269878bdea897fcf0b8e41c062b0f6
Reviewed-on: https://chromium-review.googlesource.com/955684
Reviewed-by: Fernando Serboncini <fserb@chromium.org>
Reviewed-by: Philip Rogers <pdr@chromium.org>
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#542822}
bratell
Give some g_delegate variables unique names
In jumbo builds, many files share the same anonymous namespace
so having a file local symbol name might still clash with other
files having the same file local name.

This patch renames a couple of g_delegate variables that caused
clashes in some (non-default) jumbo configurations.

Bug: 746957
Change-Id: I732d7223be88d4871a4ae7294377bc558a2ac2ca
Reviewed-on: https://chromium-review.googlesource.com/957727
Reviewed-by: Joshua Pawlicki <waffles@chromium.org>
Reviewed-by: Ben Wells <benwells@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#542767}
ppluciennik
Improved GN code related to resolving paths.
Moved most of the logic related to resolving paths
to ResolvePath and ResolveRelative in filesystem_utils.cc.
Improved SourceDir class to return std::string with resolved path
for cases when returning SourceDir or SourceFile wasn't really needed.

R=brettw@chromium.org, dpranke@chromium.org

Bug: 819720
Change-Id: Ia59da00e83de45431762ebb19a9153471f7e91e3
Reviewed-on: https://chromium-review.googlesource.com/953422
Reviewed-by: Brett Wilson <brettw@chromium.org>
Commit-Queue: Dirk Pranke <dpranke@chromium.org>
Cr-Commit-Position: refs/heads/master@{#542692}
fs
Use the same initial type for both 'fill' and 'visited fill'
The initial value used here shouldn't make a difference, so use the
initial value of 'fill' since that looks less confusing. It will also
simplify conversion to a different computed <paint> representation.

Bug: 769774
Change-Id: I5a08f73d4affc28f5804f3c3164051197721b2a4
Reviewed-on: https://chromium-review.googlesource.com/959009
Reviewed-by: Philip Rogers <pdr@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#542552}
bratell
Add an llvm work directory to .gitignore
Change-Id: I2a22b99caa64cc0d1c3b8d74425375b76b1dca67
Reviewed-on: https://chromium-review.googlesource.com/957737
Reviewed-by: Hans Wennborg <hans@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#542511}
fs
Don't invalidate client in SVGResourcesCache::ClientDestroyed
We're just about to destroy said object, and since this is only issuing
"local" (client-only, no ancestors) invalidations they will have no
effect.

Bug: 769774
Change-Id: Ib8d0afecb65a80bd89990906940e792cadcc2dcb
Reviewed-on: https://chromium-review.googlesource.com/958903
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#542505}
bratell
Update clang docs since the old text was pre-Win-clang

Change-Id: I9ce1985082125ab6099f3576d6742aaed73d21d7
Reviewed-on: https://chromium-review.googlesource.com/958165
Reviewed-by: Nico Weber <thakis@chromium.org>
Reviewed-by: Hans Wennborg <hans@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#542487}
bratell
Fix mixup in expected/got in include guard presubmit check
Bug: 814776
Change-Id: If68e4015c54a0b60f9a68b7941fb3e5d14b58502
Reviewed-on: https://chromium-review.googlesource.com/958466
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#542469}
fs
[PE] Add "image/apng" to supported image MIME types
Supported for animated PNG (APNG) was added via crbug.com/437662 (commit
7d2b8c45afc9c0230410011293cc2e1dbb8943a7.) The "image/apng" MIME type is
included in the "Accept" header for image requests.

Add "image/apng" to kSupportedImageTypes to allow things like the
<picture> element to work (select an appropriate image based on 'type'.)

Add "image/apng" to kPrimaryMappings to allow the MIME type to resolve
to a reasonable file extension.

Bug: 730588
Change-Id: I070e8b16dc8312552b11dc32e776493b3a5be669
Reviewed-on: https://chromium-review.googlesource.com/957092
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Asanka Herath <asanka@chromium.org>
Cr-Commit-Position: refs/heads/master@{#542113}
bratell
[jumbo] Windows build fix related to INITGUID
Generating GUID objects in a binary requires careful juggling
of includes and the define INITGUID (or the header <Initguid.h>).

Jumbo builds are not that careful so the simplest/best solution
is to remove the file doing INITGUID from jumbo compilation.
This manifested itself in jumbo fyi builders building
catalog_viewer_service.exe.

TBR=dtapuska@chromium.org

Bug: 657623
Change-Id: I1457727a0b3a68f82726a2e73c1ae3dedb06f12d
Reviewed-on: https://chromium-review.googlesource.com/955690
Reviewed-by: Daniel Bratell <bratell@opera.com>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#542108}
bratell
Fix jumbo+Win compilation error related to the PostMessage macro
PostMessage is a macro in Windows and depending on whether Windows
headers have been included or not, PostMessage will either be
treated as PostMessage or PostMessageW. We use a special header
windows_types.h to ensure that the macro is always defined
so that there will be no compilation or linking issues missing
either PostMessage or PostMessageW objects.

Bug: 772713,813749

TBR=leon.han@intel.com

Change-Id: I0012774f347ef2e257bc87b4492f58c7be464f78
Reviewed-on: https://chromium-review.googlesource.com/957028
Reviewed-by: Daniel Bratell <bratell@opera.com>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#542092}
fs
[CI] Split out LocalSVGResource from SVGResource
In preparation for adding an SVGResource subclass for external resources
this splits out a LocalSVGResource subclass from SVGResource and renames
usages appropriately. This is mostly to eliminate "noise" from a follow-
up CL.

Bug: 769774
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I479ca0445e4eba5f0ba2b727460dfcda776347b8
Reviewed-on: https://chromium-review.googlesource.com/955463
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Reviewed-by: Philip Rogers <pdr@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#542075}
fs
Transition ReferenceClipPathOperation to SVGResource
This CL replaces the use of SVGElementProxy in
ReferenceClipPathOperation with SVGResource. The main change between the
two is when the element reference is resolved ("when used" versus
"when computed".)

This also, by extension, adds infrastructure for invalidation and other
things required to make SVGResource work.

Bug: 769774
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: Ia43f76256a251a15c4dc100461cff9bf728eb188
Reviewed-on: https://chromium-review.googlesource.com/951613
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Reviewed-by: Philip Rogers <pdr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#541771}
fs
[SPv175][PE] Antialias clips for PaintChunks (and FloatClips)
ClipDisplayItems would use/generate antialiased clips, so it makes sense
to carry that bit (literally) forward.
Also update the FloatClip display item code-path for consistency.

Bug: 814876, 819617
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I1433804bd5734857116e613c2342c49d42499ecb
Reviewed-on: https://chromium-review.googlesource.com/934450
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Chris Harrelson <chrishtr@chromium.org>
Reviewed-by: Florin Malita <fmalita@chromium.org>
Cr-Commit-Position: refs/heads/master@{#541482}
bratell
Rename devtools GetCommandLine (A Win32 macro)
GetCommandLine is a win32 API macro defined to GetCommandLineW.
Depending on whether <windows.h> is included of not, code using that
name will either get the intended name or GetCommandLineW.

In some build configuration this caused problems when a base class had
GetCommandLine() but the sub class by accident defined
GetCommandLineW.

This patch renames it to GetBrowserCommandLine() which also matches
its more exact documentation.

Change-Id: I882b3f650c97802ec7618a797f93f22e9788078f
Reviewed-on: https://chromium-review.googlesource.com/951584
Reviewed-by: Pavel Feldman <pfeldman@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#541406}
mharanczyk
Fix linking problems caused by //content/test:test_support target on win.
//content/browser/accessibility/accessibility_event_recorder_win.cc in
this target is missing required lib on win in component builds.
In non-component oleacc.lib is added indirectly through
//content/browser:for_content_tests -> //content/browser dependency chain.

The change fixes missing AccessibleObjectFromWindow symbol linking error
for content_unittests and webkit_unit_tests in component build.

BUG: 818856
Change-Id: I1253bbbff5ca346f2fe4f81d0fc71834bb158222
Reviewed-on: https://chromium-review.googlesource.com/951383
Commit-Queue: Marek Haranczyk <mharanczyk@opera.com>
Reviewed-by: Scott Violet <sky@chromium.org>
Cr-Commit-Position: refs/heads/master@{#541396}
bpiekny
Remove time dependency from NavigationSimulator
This commit solves issues related to low resolution timers in
content_unittests.

Bug: 791910
Change-Id: If572f967034354ab3d1261c4a576736bc7ba9ac5
Reviewed-on: https://chromium-review.googlesource.com/808586
Reviewed-by: Camille Lamy <clamy@chromium.org>
Commit-Queue: Bartosz Piękny <bpiekny@opera.com>
Cr-Commit-Position: refs/heads/master@{#541386}
fs
[CI] Make SVGResource have an IdTargetObserver rather than be one
This switches SVGResource away from inheriting IdTargetObserver, and
makes it have one as a member instead. This should make future
subclassing of SVGResource easier (avoiding GC mixins.) It also has the
side-effect of allowing the SVGURIReference framework to be reused.

Bug: 769774
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I77fed36a06b846f3cd4cbb7722faa3de1b081f59
Reviewed-on: https://chromium-review.googlesource.com/947956
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Reviewed-by: Philip Rogers <pdr@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#541205}
bratell
Resolve conflict between base::StrCat and Win32 StrCat
StrCat is a Win32 API function and it uses a macro to redirect
StrCat calls to StrCatW. That macro will be available when
shlwapi.h has been included but not otherwise so mentions of
StrCat will sometimes refer to StrCat, and sometimes to StrCatW.

This patch makes it always be StrCatW as in many other functions.

Alternatives are to rename base::StrCat or undef StrCat whenever
shlwapi.h is included.

Bug: 817738
Change-Id: I6fca88d7514867ef15e63c8498ddac6a5e9f43dc
Reviewed-on: https://chromium-review.googlesource.com/950923
Reviewed-by: danakj <danakj@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#541122}
bratell
Hide AddToList from X11 headers since dom_distiller uses that name
components/dom_distiller uses the name AddToList which makes it hard
to combine with X11 headers. It doesn't happen in Chromium but it
happens in jumbo builds in Opera (any maybe in Chromium in the
future).

Bug: 782184
Change-Id: I546c254ed85fbfa86cd0ba06ddd294884c8ba6de
Reviewed-on: https://chromium-review.googlesource.com/950780
Reviewed-by: Dan Erat <derat@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#541120}
fs
[CI] Move invalidation out of SVGResources::RemoveClientFromCache
This pushes the actual call to MarkClientForInvalidation out of said
function, leaving it to callers to perform the invalidation.

Bug: 769774
Change-Id: Ib9063899da132a8f31290205ace6a52d5fc8457b
Reviewed-on: https://chromium-review.googlesource.com/946092
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Reviewed-by: Philip Rogers <pdr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#540903}
fs
[CI] Split kLayoutAndBoundariesInvalidation into two flags
Since we already have a kBoundariesInvalidation flag, this means we just
need to rename kLayoutAndBoundariesInvalidation and convert all uses to
bitwise-or the two flags.
The mask/bit checks in MarkAllClientsForInvalidation are adjusted to
reflect this change as well.
A typedef is added to try to better convey that something is a mask and
what of.

Bug: 769774
Change-Id: I30b69458aea8eaea1a3b6b3d023f18d21f2f51f4
Reviewed-on: https://chromium-review.googlesource.com/945928
Reviewed-by: Philip Rogers <pdr@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#540854}
bratell
Compile fix: Remove chrome_proximity_auth_client.cc
chrome_proximity_auth_client.cc uses easy_unlock_service which
was just moved to be ChromeOS only so chrome_proximity_auth_client.cc
needs to be as well.

If it's compiled and not completely ignored by the linker (most of
the time but not in jumbo builds), it will break the build.

TBR=jhawkins@chromium.org

Bug: 817115
Change-Id: I606cf0958beb6a736bf0717471a6542adde4dc73
Reviewed-on: https://chromium-review.googlesource.com/947962
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#540751}
bratell
Made some ui/gl ValidFormat functions into static methods
gl_image_memory.cc and gl_image_native_pixmap.cc would compile
together in a ui/gl jumbo build (not yet supported) and then the
ValidFormat methods would clash and prevent compilation.

This patch moves the functions into the classes that use them.

Bug: 773275
Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
Change-Id: I6f031d0897fd0ef96c536e3e4c97245aa108a024
Reviewed-on: https://chromium-review.googlesource.com/939475
Reviewed-by: Antoine Labour <piman@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#540553}
bratell
Use a more unique variable name than g_display
In ui/gl there are three different global variables named
g_display. As a preparatory change for jumbo support this patch
renames them g_glx_display, g_egl_display, g_wgl_display.

Bug: 773275
Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
Change-Id: Ic469a886632be8bc711bec8359aa5e4fae5ea6a4
Reviewed-on: https://chromium-review.googlesource.com/939479
Reviewed-by: Antoine Labour <piman@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#540552}
bratell
Add presubmit check for include guards
Missing include guards tend to break jumbo builds and makes
everyone involved sad so better to have a presubmit check for it.

There is a risk that this triggers on correct code so it includes
a way to disable it per source file. Include the string
"no-include-guard-because-multiply-included" and there won't
be any warning for that file.

By popular demand there will also be a warning if the name of
the include guard doesn't follow the coding standards, but since
mistakes are common, that check is only enabled for new files.

Bug: 814776
Change-Id: Id18b3d43288b9a064e537460d667957b355bbd33
Reviewed-on: https://chromium-review.googlesource.com/931761
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Yuri Wiitala <miu@chromium.org>
Reviewed-by: Alexander Timin <altimin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#540526}
bratell
Updating jumbo documentation.
The default chunk size is not 200 anymore, for a number of
months.

Change-Id: I8370e472628ddcf1c49bdc09d989bdadf3ea78b3
Reviewed-on: https://chromium-review.googlesource.com/946097
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Jens Widell <jl@opera.com>
Cr-Commit-Position: refs/heads/master@{#540517}
bpiekny
Make IsPatternValid available in site_settings_handler
Currently we have IsOriginValid available (AllowJavaScript) but
IsPatternValid doesn't have such call. Looks like we don't need
to have any specific state to call this method

Change-Id: I19c8747f09b5bdd332fb2ce7a209b584023c6a03
Reviewed-on: https://chromium-review.googlesource.com/941950
Reviewed-by: Dave Schuyler <dschuyler@chromium.org>
Commit-Queue: Bartosz Piękny <bpiekny@opera.com>
Cr-Commit-Position: refs/heads/master@{#540475}
fs
[CI] Sink invalidation out of LayoutSVGResource*::RemoveClientFromCache
This splits the various RemoveClientFromCache implementations into two
parts:

 1) removal of cached data from the resource, and
 2) invalidation of the client.

This avoids triggering invalidations as a side-effect of cache-
invalidation, and separates concerns to help future refactorings. This
also means that resources that perform no caching, or no per-client
caching, need not override RemoveClientFromCache, but can use a default
implementation.

Since a kParentOnlyInvalidation argument to MarkClientForInvalidation is
a no-op, it is removed in the relevant code-paths.

LayoutSVGResourceContainer::MarkClientForInvalidation is made static to
enable its use outside resource containers themselves.

RemoveClientFromCache gets a new semantic in that it returns a bool
indicating if anything was cached for the client (this is currently
needed for invalidation of clients of filters.)

Bug: 769774
Change-Id: I8deeaef8fdd46e6dcc171100e8d6394df483e232
Reviewed-on: https://chromium-review.googlesource.com/941332
Reviewed-by: Philip Rogers <pdr@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#540193}
fs
[PE] Pixel snap fragment clips
Noticed while enabling AA for clips (in general.) This should prevent
regressing a few multicol tests when enabling AA clips.

Bug: 814876
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I06ad3aa535e7ba0781f0f78fb80e43d8b68d70e4
Reviewed-on: https://chromium-review.googlesource.com/937518
Commit-Queue: Chris Harrelson <chrishtr@chromium.org>
Reviewed-by: Chris Harrelson <chrishtr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#539838}
bratell
Corrected reused include guards
If the same include guard is used twice, it becomes impossible
to include both those headers in the same translation unit and
that can be hard to debug and understand. This patch renames
some include guards that have the same names (copy/paste) as
existing include guards.

Found while working on a PRESUBMIT test for include guards. It will
not warn for these things, but it was easy to add that test locally.

There are another few thousand files that have wrongly named
include guards. Left as an exercise to the reader.

Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:ios-simulator-cronet;master.tryserver.chromium.mac:ios-simulator-full-configs;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
Change-Id: Ic7ba08558d3fbae0d3bee843f3092d472f8c643b
Reviewed-on: https://chromium-review.googlesource.com/937712
Reviewed-by: Jochen Eisinger <jochen@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#539800}
fs
[PE] Make SVGGeometryElement handle 'pathLength' mutations
Since the 'pathLength' attribute moved to SVGGeometryElement, so should
the attribute mutation handling.

Bug: 815170
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I04bc19988f80f3c3fe4810897e3003403c6997c6
Reviewed-on: https://chromium-review.googlesource.com/939625
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Cr-Commit-Position: refs/heads/master@{#539794}
bratell
Jumbo build fix: wincrypt.h and openssl clash
wincrypt.h and OpenSSL headers define the same macros (until
a later version of OpenSSL at least) so therefore we need to
include crypto/wincrypt_shim.h instead which hides the clashing
macros.

TBR=pmonette@chromium.org

Bug: 746957
Change-Id: I629859f8e381ccadfdf9b6d811330bd8fc35be95
Reviewed-on: https://chromium-review.googlesource.com/940225
Reviewed-by: Daniel Bratell <bratell@opera.com>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#539791}
fs
[CI] Referencify MarkForLayoutAndParentResourceInvalidation
Cleanup some (now) unnecessary explicit 'this' dereferences as well.

Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I49238bf7b32760e5a05f6b6ce41557d34423ea45
Reviewed-on: https://chromium-review.googlesource.com/931508
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#539775}
fs
[CI] Share invalidation code for geometry presentation attributes
Much like for geometry attributes - of which these are a subset. Also
push the InvalidationGuard into the invalidation function.

Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: Ib9254d8ad930ef132c8074a7636eb57f18ae22d5
Reviewed-on: https://chromium-review.googlesource.com/932122
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Cr-Commit-Position: refs/heads/master@{#539460}
bratell
Fix broken forward declaration that introduced a clashing namespace
A forward declaration claimed there was a ::viz::cc:CompositorFrame
class, and that introduction of a namespace ::viz::cc caused
confusion with the ::cc namespace and compilation errors in
some jumbo build configurations.

The real CompositorFrame is in viz::CompositorFrame so fixing
the forward declaration also removed the namespace clash.

Change-Id: I1cd4fe729591855172f5a07aca2e2c7f3e8db9fa
Reviewed-on: https://chromium-review.googlesource.com/939390
Reviewed-by: Dave Tapuska <dtapuska@chromium.org>
Reviewed-by: Avi Drissman <avi@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#539441}
fs
Remove ImageElementBase::SourceDefaultObjectSize
After https://chromium-review.googlesource.com/716679, this method has
no callers. Remove it.

Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I3e2f427c8349bfa410718cd24782f64c7ad2e0e0
Reviewed-on: https://chromium-review.googlesource.com/735861
Reviewed-by: Fernando Serboncini <fserb@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#539306}
fs
[CI] Factor out common "geometry attributes invalidation" code
All the SVGGeometryElements share the same code-sequence for
invalidation of attributes that define the geometric shape.
Move this code to SVGGeometryElement::GeometryAttributesChanged.

Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I78eabe6245eff618dff810d7bcfc120b9a99f545
Reviewed-on: https://chromium-review.googlesource.com/931802
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#539218}
bratell
Correct some include guards found by PRESUBMIT test
There is a PRESUBMIT test coming for include guards and these
are some of the files that trigger that test. Both because of
code outside the include guard (bug) and slightly wrong syntax
for the #define (irrelevant).

Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_vr;master.tryserver.chromium.mac:ios-simulator-cronet;master.tryserver.chromium.mac:ios-simulator-full-configs;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
Change-Id: I486fd56d6ef506064cda38504728771549ebc6fb
Reviewed-on: https://chromium-review.googlesource.com/937709
Reviewed-by: Christopher Grant <cjgrant@chromium.org>
Reviewed-by: Jochen Eisinger <jochen@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#539210}
fs
[CI] Reduce LayoutSVGResourcePaintServer dependencies on LayoutObject
In preparation for passing/using an SVGResourceClient as the 'client',
make sure the LayoutObject& is only used as a cache key by extracting
and passing the object bounding box as a separate argument.

Bug: 769774
Change-Id: I673ef74f2e65d645037a65d85e75846f37d3859b
Reviewed-on: https://chromium-review.googlesource.com/931465
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#539206}
bratell
Fix "shadow" warning/error in jumbo builds
There are local variables named next_id so having a global
variable with that name triggers -Wshadow warning. This
patch renames the global next_id -> g_next_indexed_db_connection_id.

Change-Id: I31925418e69999ea789fef856058ab66125f60fa
Reviewed-on: https://chromium-review.googlesource.com/937206
Commit-Queue: Joshua Bell <jsbell@chromium.org>
Reviewed-by: Joshua Bell <jsbell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#539184}
bratell
Correct some broken include guards.
Found while working on a PRESUBMIT test for include guards.

Change-Id: Ib622cbaae28c48a469337076b57f5139971baff5
Reviewed-on: https://chromium-review.googlesource.com/932662
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Peter Beverloo <peter@chromium.org>
Commit-Queue: Peter Beverloo <peter@chromium.org>
Cr-Commit-Position: refs/heads/master@{#539155}
yorenault
[Linux] Only mark event as handled when it is actually handled
views::View that don't have a context menu controller
still mark the click event as handled,
forbidding further processing of this event.

Bug: 814666
Change-Id: Ie9ab6e0f0e573a4d653a52995421ac1075c686fb
Reviewed-on: https://chromium-review.googlesource.com/925269
Reviewed-by: Elliot Glaysher <erg@chromium.org>
Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
Cr-Commit-Position: refs/heads/master@{#538835}
bratell
Rename a couple of g_instance to allow extreme jumbo
We just got two g_instance in //base and to allow the whole of
base to compile in a single translation unit (not a default
configuration even among jumbo users) it's better if they
have unique names.

Bug: 775547
Change-Id: Ie1a1a856932ae46bde754878108097a94e6e00c6
Reviewed-on: https://chromium-review.googlesource.com/931121
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#538512}
bratell
Add include guard to WebFontTypefaceFactory.h
Newly added header missing include guard. There is a presubmit
check coming to catch these since they break some builds.

TBR=drott@chromium.org

Change-Id: Ie705b6b3404bcb67d829bcc1a7ba449daf1cb277
Reviewed-on: https://chromium-review.googlesource.com/931881
Reviewed-by: Daniel Bratell <bratell@opera.com>
Reviewed-by: Dominik Röttsches <drott@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#538503}
bratell
Removed unused line of code in merge_for_jumbo.py
Change-Id: I27525f1c02214fdb6fc04564abc417cdb472ee53
Reviewed-on: https://chromium-review.googlesource.com/931464
Commit-Queue: Nico Weber <thakis@chromium.org>
Reviewed-by: Nico Weber <thakis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#538479}
bratell
Be explicit when mixing ::switches and ::headless::switches
There is both a ::headless::switches and a ::switches
namespace and if they are both known then "switches" inside
::headless will refer to ::headless::switches. This happens
in some jumbo build configurations.

with the same name as a top level namespace for this reason but
there are some such cases in the code that would be non-trivial
to change.

Note: The style guide strongly discourages using sub namespaces
Change-Id: I0c35abbb43caa53e725cc44a80b93083123374fa
Reviewed-on: https://chromium-review.googlesource.com/931125
Commit-Queue: Eric Seckler <eseckler@chromium.org>
Reviewed-by: Eric Seckler <eseckler@chromium.org>
Cr-Commit-Position: refs/heads/master@{#538424}
jl
Reland "Enable jumbo/unity build for //content test support targets"
This is a reland of a20415fc04f992b5e7e0d600572589c0317fdd95.

Original change's description:
> Enable jumbo/unity build for //content test support targets
> 
> Change-Id: Ibc5e0d946c57a4a3be7fc24a9c0773ec830514f0
> Reviewed-on: https://chromium-review.googlesource.com/922822
> Reviewed-by: Scott Violet <sky@chromium.org>
> Commit-Queue: Jens Widell <jl@opera.com>
> Cr-Commit-Position: refs/heads/master@{#537257}

Change-Id: I09ad8c813e0b2f7dfec9a867f4b4b1a5e9092b12
Reviewed-on: https://chromium-review.googlesource.com/925604
Reviewed-by: Dave Schuyler <dschuyler@chromium.org>
Reviewed-by: Scott Violet <sky@chromium.org>
Commit-Queue: Jens Widell <jl@opera.com>
Cr-Commit-Position: refs/heads/master@{#538118}
jl
Rename one BlobStorageContextGetter function
In jumbo/unity builds, it conflicts with the function with the same
name that is declared in content/browser/download/download_utils.h.

Change-Id: I6e19c76dca926fbd13ae2c804b92ab454fe2d0dc
Reviewed-on: https://chromium-review.googlesource.com/926343
Reviewed-by: Nick Carter <nick@chromium.org>
Commit-Queue: Jens Widell <jl@opera.com>
Cr-Commit-Position: refs/heads/master@{#538093}
fs
[CI] Use color enumeration in SVGPaintContext::PaintForLayoutObject
The code in its current form gives the impression that there's a
dependency on the initial value of the 'fill' property, while all we
really want to say here is 'black'. Use a more direct approach.

Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: Ib75ba965c585771e9a009f91f0055a592a37c1b0
Reviewed-on: https://chromium-review.googlesource.com/926845
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#537861}
jl
Enable jumbo/unity build for various //extensions targets
Change-Id: I4685aaade618b0ea68750688eeca2fc0d24364c9
Reviewed-on: https://chromium-review.googlesource.com/922821
Commit-Queue: Jens Widell <jl@opera.com>
Reviewed-by: Ken Rockot <rockot@chromium.org>
Cr-Commit-Position: refs/heads/master@{#537786}
bratell
Remove unused includes that collide with OpenSSL includes.
wincrypt.h and OpenSSL can't be in the same translation unit
since both define X509_NAME. There is a crypto/wincrypt_shim.h
to use instead of wincrypt.h but in this case the includes were
left by mistake when code moved elsewhere and can be removed.

This fixes jumbo build in Windows.

TBR=pmonette@chromium.org

Bug: 746957
Change-Id: I3fa0dadaf8e423302c353bfb7bc7e5484b58ff68
Reviewed-on: https://chromium-review.googlesource.com/924223
Reviewed-by: Daniel Bratell <bratell@opera.com>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#537625}
jl
Generate jumbo source files into `invoker.target_gen_dir`
This typically means a path based on the directory containing the
BUILD.gn file that defined the jumbo target, which generally makes
sense.

The old solution of finding a suitable directory by looking at the
directories containing the target's source files can generate the
same name for multiple targets, meaning such targets can't all be
jumbo enabled. This is rare, but is the case for the targets

  //extensions:test_support

and

  //extensions/browser:test_support

since the former has source files from //extensions/browser/ that
end up being used as the target directory.

Change-Id: Ie0c9ee2fcef25c6b0705e0fed3f1dce060459537
Reviewed-on: https://chromium-review.googlesource.com/924023
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Jens Widell <jl@opera.com>
Cr-Commit-Position: refs/heads/master@{#537623}
bratell
Prevent OpenSSL and msi.h clashes by setting _MSI_NO_CRYPTO
third_party/OpenSSL and msi.h both indirectly define X509_NAME so
to have avoid them clashing, tell msi.h to not include wincypt.h where
X509_NAME is set.

This became a problem in jumbo builds where msi_util_win.cc was grouped
with code using browser_process.h which includes openssl headers.

Bug: 746957
Change-Id: Ibaaf60ab6b5b46f9a86e90e0f5a7de9d4ecd57d7
Reviewed-on: https://chromium-review.googlesource.com/924072
Reviewed-by: Patrick Monette <pmonette@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#537304}
bratell
Support jumbo in chrome/browser, saving another 10% compile time
Of the code pieces left to add jumbo support to, the one which benefit
the most from jumbo is //chrome/browser:browser which goes from 90 to
10 CPU minutes, a reduction of more than a CPU hour. This is about 10%
of the total effort compiling chrome+content_shell+blink_tests.

In jumbo builds many cc files compile in the same translation unit
which reduces the time spent generating debug data and machine code
for headers, as well as the time to actually process the headers.

Bug: 746957
Change-Id: I856f3fca1f16fa2b0738678444c455c303985962
Reviewed-on: https://chromium-review.googlesource.com/899368
Reviewed-by: Scott Violet <sky@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#537284}
jl
Enable jumbo/unity build for //content test support targets
Change-Id: Ibc5e0d946c57a4a3be7fc24a9c0773ec830514f0
Reviewed-on: https://chromium-review.googlesource.com/922822
Reviewed-by: Scott Violet <sky@chromium.org>
Commit-Queue: Jens Widell <jl@opera.com>
Cr-Commit-Position: refs/heads/master@{#537257}
fs
Simplify/improve ElementStyleResources "is sprite" heuristic
The HasBackgroundImage check is redundant because the helper function is
called within an equivalent check.
Also change so that current layer is checked, rather than always
checking the first (top-most) layer. Update the test to include a case
where doing this will help.
Rename the helper method to BackgroundLayerMayBeSprite since it's no
longer operating on a ComputedStyle.

Change-Id: Ibfabfc4a3c68d042ab356f43cb6031697d4daf98
Reviewed-on: https://chromium-review.googlesource.com/852255
Reviewed-by: rajendrant <rajendrant@chromium.org>
Reviewed-by: Scott Little <sclittle@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#536998}
bratell
Jumbo compile fix: renamed two content/browser symbols
Recent additions created duplicate symbols in content/browser
of the variable g_url_loader_factory_callback_for_test and of
the method BlobStorageContextGetter. BlobStorageContextGetter is
a duplicate method but small enough that it's probably ok.

This renames one BlobStorageContextGetter to
BlobStorageContextGetterForStorage (lacking a suitable place for
sharing the method) and one of the
g_url_loader_factory_callback_for_test variables to
g_create_network_factory_callback_for_test to better describe what it
contains.

These errors don't appear in the jumbo configurations covered by
the bots because the files are far enough apart in file lists
to normally not be grouped with each other.

Change-Id: I17ecc36d2271c71f6b7affcc41ef4935b107743f
Reviewed-on: https://chromium-review.googlesource.com/915367
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Avi Drissman <avi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#536987}
bratell
[jumbo] Stop complaining about strange files in sources
People put lots of files in gn's sources lists. Rather than
being upset, jumbo should just live with it. They do no harm
and can be safely ignored.

Change-Id: I15c3930cfeb50e5bd7ce121ca7b7c17db088b63f
Reviewed-on: https://chromium-review.googlesource.com/916246
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#536978}
fs
Setting "" as <track> 'src' should fail the first time
When setting a track .src to "", we would resolve the URL to a null URL,
which matched the default initialized HTMLTrackElement::url_, meaning
that readyState was not advanced and no 'error' event fired in this
case.

Extend the "url == url_" check with a check for readyState differing from
'none'. Also rewrite HTMLTrackElement::getReadyState to avoid using
EnsureTrack().

Bug: 811713
Change-Id: Icd190492639c53e09a7e018202b69ac6e919a94c
Reviewed-on: https://chromium-review.googlesource.com/916004
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: srirama chandra sekhar <srirama.m@samsung.com>
Cr-Commit-Position: refs/heads/master@{#536685}
bratell
Renamed an enum value DEBUG->DEVTOOLS to avoid a Windows macro
Windows's ATL headers (atldef.h) does
#ifdef _DEBUG
#define DEBUG
#endif

which makes it hard to also use the word DEBUG in code that might
intentionally or accidentally be compiled with that header. This
happened in jumbo build experiments where many cc files are compiled
in the same translation unit for dramatically faster compilation.

This preparatory patch for jumbo in chrome/browser renames an
enum value from WebappInstallSource::DEBUG to
WebappInstallSource::DEVTOOLS.

Bug: 746957
Change-Id: I128018246b94310c0cee67eaa404ab7749bd3ae0
Reviewed-on: https://chromium-review.googlesource.com/902042
Reviewed-by: Dominick Ng <dominickn@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#536325}
fs
[CI] Add SVGGradientElement::InvalidateGradient
Add a new helper method on SVGGradientElement that encapsulates the code
that invalidates the gradient data/cache. Use this method where
appropriate.

Add an InvalidateCacheAndMarkForLayout overload taking a
LayoutInvalidationReason to LayoutSVGResourceContainer, and use it in
SVGElement::InvalidateRelativeLengthClients and the new method, which
also takes a LayoutInvalidationReason to improve fidelity of reporting.

The change to use SVGGradientElement::InvalidateGradient in
ChildrenChanged constitutes a minor change in behavior since it
previously didn't have the SelfNeedsLayout() check. Said check should be
reasonable to have in this code-path as well though.

Bug: 661598, 769774
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: Ia5c318a4df958960aabb56f71ad3c384791a46b0
Reviewed-on: https://chromium-review.googlesource.com/913688
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#536107}
fs
[CI] Move SVGTreeScopeResources::Resource to its own file
Make it no longer be an inner class and rename to it SVGResource.

Bug: 769774
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: Ifb60050cf6d3ebea360f00209031dbc7b0995d23
Reviewed-on: https://chromium-review.googlesource.com/911112
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#535780}
bratell
Added base::TimeToISO8601 and deleted all other instances
It is not uncommon to want to convert from base::Time to an
ISO-8601 string so instead of having half a dozen implementations,
it's better to have one implementation.

This was noticed in the jumbo project because two of
the implementations ended up in the same translation unit.

Bug: 746957
Change-Id: Ib88832c53930aff7a6c24a0df81afc28cbbecc35
Reviewed-on: https://chromium-review.googlesource.com/895456
Reviewed-by: Yuri Wiitala <miu@chromium.org>
Reviewed-by: Yoshiki Iguchi <yoshiki@chromium.org>
Reviewed-by: Josh Karlin <jkarlin@chromium.org>
Reviewed-by: Jochen Eisinger <jochen@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#535691}
mpichlinski
Fixed missing mojo interfaces dependencies for bindings_modules_impl.
Bug: 803441
Change-Id: Ie076c368a0dbfb8178362bb8a79e29f0feff9197
Reviewed-on: https://chromium-review.googlesource.com/873642
Commit-Queue: Colin Blundell <blundell@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Reviewed-by: Colin Blundell <blundell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#534968}
bratell
Jumbo build fix: Use unique names of constants in message_center
A recent CL got rid of the shared constants and instead copied
them to relevant files. To work in jumbo builds they must then
have unique names.

(The alternative to find a shared location for the constants
seems not applicable in this case)

Bug: 783018,723882
Change-Id: I8e64dcf56bfe74d30279549291e89bdec80bc3d2
Reviewed-on: https://chromium-review.googlesource.com/905304
Commit-Queue: Daniel Bratell <bratell@opera.com>
Commit-Queue: Mostyn Bramley-Moore <mostynb@vewd.com>
Reviewed-by: Evan Stade <estade@chromium.org>
Cr-Commit-Position: refs/heads/master@{#534793}
fs
[CI] Reference-ify SVGResources/SVGResourcesCache
Make the SVGResources and SVGResourcesCache interfaces take a
LayoutObject& instead of a LayoutObject* where appropriate, and then
update users (transitively) as reasonable.

Bug: 769774
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: Idfa28bb01551332064ca1ab6d6260d29d3264145
Reviewed-on: https://chromium-review.googlesource.com/904529
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#534789}
bratell
Avoid using the Windows type SpeechRecognizerState
SpeechRecognizerState is an enum in the Windows platform
API for speech so using that name for a Chrome internal
type means that you get compilation errors if the platform
headers and the internal headers end up in the same
translation unit.

In jumbo builds that could happen (and in general it can also
happen) so this renames
SpeechRecognizerState -> SpeechRecognizerStatus
to avoid that.

An alternative would be to move the enum to a different, more
limited, scope.

Bug: 746957
Change-Id: I479470340ea2c582480b2692424a15bc6fb4581a
Reviewed-on: https://chromium-review.googlesource.com/901247
Reviewed-by: Dominic Mazzoni <dmazzoni@chromium.org>
Reviewed-by: David Tseng <dtseng@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#534709}
bratell
Moved some duplicate password_manager constants into shared code
chrome/browser/password_manager had a couple of trivial constants
and helper functiosn defined multiple times.

In jumbo builds many cc files compile in the same translation
unit and then they share the same anonymous namespace. With multiple
definitions of a constant, with the same name, you get compilation
errors.

In preparation for jumbo in chrome/browser, this patch moves the
constants into the shared file and it removes a random
constant for "". The code doesn't normally use constants
for "".

Bug: 746957
Change-Id: I069e6c9e18b23ce4597c9f23aee829f85e2d17a1
Reviewed-on: https://chromium-review.googlesource.com/897814
Reviewed-by: Vadym Doroshenko <dvadym@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#534438}
bratell
Only compile notification test code into tests
The file mock_itoastnotification.cc was compiled for the
chrome.dll binary instead of being in the test_support section
with the test-only code.

Noticed in jumbo build experiments since it ended up in a larger
obj file where the code was no longer ignored as before, ending
with a linker error because of inconsistent settings.

Bug: 746957
Change-Id: Ibf259cb729889f26226ff87b068fa1051898b11d
Reviewed-on: https://chromium-review.googlesource.com/901627
Commit-Queue: Peter Beverloo <peter@chromium.org>
Reviewed-by: Peter Beverloo <peter@chromium.org>
Cr-Commit-Position: refs/heads/master@{#534425}
bratell
Deduplicate some lookup keys in the profile keys
Some lookup keys were defined multiple times which caused problems
for jumbo build experiments.

In jumbo builds many cc files compile in the same translation
unit and then they share the same anonymous namespace. Having
many variables with the same name will then result in compilation
failures.

In preparation for jumbo in chrome/browser, this patch moves the
common constants into ProfileAttributesEntry so they can be used
by all the callers.

Bug: 746957
Change-Id: I58a4d4fb10834c50ec3dd0a6b03e10f284120bce
Reviewed-on: https://chromium-review.googlesource.com/895367
Reviewed-by: Bernhard Bauer <bauerb@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#534419}
bratell
Inlined a small media_galleries helper function
In jumbo builds many cc files compile in the same translation
unit and then they share the same anonymous namespace. With multiple
definitions of an albeit small helper function, you get collisions
and compilation errors.

In preparation for jumbo in chrome/browser, this patch inlines the
helper function GetMTPDeviceDelegate since it's small, and could be
made smaller

Bug: 746957
Change-Id: I492606b21595c3ae5d961e260befdee2e0df0b5c
Reviewed-on: https://chromium-review.googlesource.com/901183
Reviewed-by: Reilly Grant <reillyg@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#534408}
bratell
Remove dead enum BrowserProcess
Nobody is using the BrowserProcess enum in
chrome/browser/memory_details_win.cc and in jumbo builds
it clash with the BrowserProcess class in
chrome/browser/browser_process.h.

Bug: 746957
Change-Id: Ib946dd4a05b36e99df070726e20672ca687393f2
Reviewed-on: https://chromium-review.googlesource.com/901602
Reviewed-by: Jochen Eisinger <jochen@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#534393}
bratell
Renames two GetScoreDictForSettings methods
When building with jumbo many files are compiled in the
same compilation unit and then they will share the same
namespaces, including the anonymous namespace. If code
use the same names those will clash and cause compilation
errors.

There are two more or less identical GetScoreDictForSettings
methods, one in site_engagement_score.cc, one in
media_engagement_score.cc but since there is no
good place to merge them, this just renames them. These
files are now on a list to be refactored to solve the
code duplication.

Bug: 746957
Change-Id: I8e853e761df1c8c0a31c7f2064c0d70f0610d5f8
Reviewed-on: https://chromium-review.googlesource.com/868438
Reviewed-by: Dominick Ng <dominickn@chromium.org>
Reviewed-by: Mounir Lamouri (slow) <mlamouri@chromium.org>
Commit-Queue: Mounir Lamouri (slow) <mlamouri@chromium.org>
Cr-Commit-Position: refs/heads/master@{#534386}
bratell
Avoid using the Windows macro PLATFORM_UNKNOWN
windows.h defines a macro PLATFORM_UNKNOWN (value 0) which
means that if that word is used in a header, that header can't
be mixed with windows.h and still compile successfully.

This collision happened in jumbo experiment so to avoid that
this patch renames PLATFORM_UNKNOWN -> PLATFORM_UNSPECIFIED

Bug: 746957
Change-Id: Id2045a7682d499181d5ea53c4ceb3ed98236005b
Reviewed-on: https://chromium-review.googlesource.com/901266
Reviewed-by: Peter Beverloo <peter@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#534382}
fs
[PE] Update/fix UA stylesheet for SVG roots in shadow trees
The the UA stylesheet would not set 'transform-origin' correctly for
<svg> outermost roots being direct descendants of the shadow root.

Update the UA stylesheet to fix this, and also match what's currently
specced by CSS transforms [1]. Removing prefixes as appropriate.

[1] https://drafts.csswg.org/css-transforms/#transform-origin-property

Bug: 808228
Change-Id: Ic36ce331797eb7ba80a046af88d22c08fe76d6fc
Reviewed-on: https://chromium-review.googlesource.com/901263
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Rune Lillesveen <futhark@chromium.org>
Cr-Commit-Position: refs/heads/master@{#534371}
bratell
Prevent FocusIn and FocusOut from leaking from x11.h
FocusIn and FocusOut are function names in parts of the code. To
make sure that X11 headers don't cause problems, even in jumbo
builds, this patch moves those constants to the x11 namespace.

Bug: 782184
Change-Id: I6c694557653c7c1119a134960a59a38a2670b103
Reviewed-on: https://chromium-review.googlesource.com/891322
Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org>
Reviewed-by: Dan Erat <derat@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#534270}
bratell
Deduplicate a helper function in android/ntp
The function GetRemoteSuggestionsScheduler was defined
twice which caused some problems for jumbo build experiments.

In jumbo builds many cc files compile in the same translation
unit and then they share the same anonymous namespace. Having
a function twice (with the same name) will then result
in compilation failures.

In preparation for jumbo in chrome/browser, this patch moves the
helper function to its own file because no existing place seemed
to work fine.

Bug: 746957
Change-Id: I581c5f3815949081989156701c3591bcbf866782
Reviewed-on: https://chromium-review.googlesource.com/897613
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Bernhard Bauer <bauerb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#534269}
bratell
Inlined some kZeroTime constants in metrics/desktop_session_duration
In jumbo builds many cc files compile in the same translation
unit and then they share the same anonymous namespace. Having
the same constant twice with the same name will then result
in compilation failures.

In preparation for jumbo in chrome/browser, this patch inlines
the constants in chrome_visibility_observer.cc and
desktop_session_duration_tracker.cc.

Bug: 746957
Change-Id: I1b7d4b2f4a83a8a75c248f07199af6f4e72e87f5
Reviewed-on: https://chromium-review.googlesource.com/897533
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Gayane Petrosyan <gayane@chromium.org>
Cr-Commit-Position: refs/heads/master@{#534198}
bratell
Gave three OnAcquireFileAccessPermissionDone their own names
In jumbo builds many cc files compile in the same translation
unit and if that causes there to be overloaded functions,
the address operator won't know what function's address the
code refers to. This happens in base::Bind, and results
in compilation failures.

In preparation for jumbo in chrome/browser, this patch renames
the three OnAcquireFileAccessPermissionDone to
OnDownloadAcquireFileAccessPermissionDone
OnThrottleAcquireFileAccessPermissionDone
OnOfflinePageAcquireFileAccessPermissionDone

Bug: 746957
Change-Id: I6bd1fa44e9cc1ab44d9bdb653dd8117280ff9325
Reviewed-on: https://chromium-review.googlesource.com/897943
Reviewed-by: Cathy Li <chili@chromium.org>
Reviewed-by: David Trainor <dtrainor@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#534197}
bratell
Deduplicate some chrome/browser/android constants and helpers
In jumbo builds many cc files compile in the same translation
unit and then they share the same anonymous namespace. Having
the same constants and helper functions in several files will
then result in compilation failures.

In preparation for jumbo in chrome/browser, this patch
deduplicates the GetWebContents() helper function and the constants
kOMADrmMessageMimeType, kOMADrmContentMimeType,
kOMADrmRightsMimeType1, kOMADrmRightsMimeType2.

Bug: 746957
Change-Id: Ie268f77c7a099a8de01ae08c70870306f38fc05a
Reviewed-on: https://chromium-review.googlesource.com/897612
Reviewed-by: David Trainor <dtrainor@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#534182}
bratell
Deduplicated or renamed supervised_user variables
This is a preparatory patch for jumbo compilations where several
cc files are compiled in the same translation unit. Then you get
compilation errors if they all define their own kNumRetries and
kBackoffPolicy, kApiPath and so on.

This patch gives the 5 different kNumRetries variables and 3
different kBackoffPolicy variables in chrome/browser
their own name. It also renames kApiPath, kApiUrl and kApiScope.

It also deduplicates a kAuthorizationHeaderFormat string that had
4 different instances.

Bug: 746957
Change-Id: Ib14ccaa372d3b28cd505b2e7cec519a5635e3173
Reviewed-on: https://chromium-review.googlesource.com/868335
Reviewed-by: David Roger <droger@chromium.org>
Reviewed-by: Paul Jensen <pauljensen@chromium.org>
Reviewed-by: Cathy Li <chili@chromium.org>
Reviewed-by: Marc Treib <treib@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#534084}
jl
Drop conflicting `kIgnoreRoutingId` constant
In jumbo/unity builds, it conflicts with another constant in bindings/
api_event_listeners.cc (that has a different value.)

This particular constant didn't seem to add too much. It was only used in
one place; in a function with a comment that talks about the constant's
value. It could be argued that the code is easier to follow if the (very
simple) function implementation then uses the value directly. (In
particular since the "value" is in fact the name of another constant.)

Change-Id: I728a34b0a8b43382e742c6b640ace3baadc4d2db
Reviewed-on: https://chromium-review.googlesource.com/897489
Reviewed-by: Devlin <rdevlin.cronin@chromium.org>
Commit-Queue: Jens Widell <jl@opera.com>
Cr-Commit-Position: refs/heads/master@{#534008}
jl
Rename conflicting `ReadAndDeleteFile()` functions
They conflict in jumbo/unity builds.

Since one read a file as binary data (into a `std::vector<uint8_t>`) and
one as text (into a `std::string`), it seems reasonable to change the
names to `ReadAndDeleteBinaryFile()` and `ReadAndDeleteTextFile()`.

Change-Id: I8d8402c64cfe45132df9640bd5664df28742d6d7
Reviewed-on: https://chromium-review.googlesource.com/897603
Reviewed-by: Ken Rockot <rockot@chromium.org>
Commit-Queue: Jens Widell <jl@opera.com>
Cr-Commit-Position: refs/heads/master@{#534007}
jl
Rename conflicting `g_client` variables in anonymous namespace
They conflict in jumbo/unity builds.

Change-Id: Ie5eae8aa303f5a163eabb74ff931f696127ff032
Reviewed-on: https://chromium-review.googlesource.com/897602
Reviewed-by: Ken Rockot <rockot@chromium.org>
Commit-Queue: Jens Widell <jl@opera.com>
Cr-Commit-Position: refs/heads/master@{#534005}
jl
Declare string constants in named namespace instead of anonymous
In jumbo/unity builds, some of the constants conflicted with (identical)
declarations in the anonymous namespace in verified_content.cc.

Change-Id: I66e9ecb180e99cfd468c914ddce44613a5013242
Reviewed-on: https://chromium-review.googlesource.com/897604
Reviewed-by: Ken Rockot <rockot@chromium.org>
Commit-Queue: Jens Widell <jl@opera.com>
Cr-Commit-Position: refs/heads/master@{#533999}
jl
Rename conflicting `Static` classes/structs
They conflict in jumbo/unity builds.

Also rename the overly generic `g_static`/`g_lazy_instance` variables.
They did not conflict with anything currently, but generic names in the
anonymous namespace are likely to become a problem eventually, sadly.

Change-Id: Ie90ca3c7eee3d357c3aca205a5551034b768eb77
Reviewed-on: https://chromium-review.googlesource.com/897488
Reviewed-by: Devlin <rdevlin.cronin@chromium.org>
Commit-Queue: Jens Widell <jl@opera.com>
Cr-Commit-Position: refs/heads/master@{#533993}
bratell
Rename some history_report functions to have unique names
In jumbo builds many cc files compile in the same translation
unit and then they share the same anonymous namespace. Having
the functions with the same names will then result in compilation
failures.

In preparation for jumbo in chrome/browser, this patch renames
a number of helper functions in chrome/browser/android/history_report
to have unique names.

An alternative would have been to make the functions static private
functions inside the classes.

Bug: 746957
Change-Id: I2df32461d170c5411418cab78abc3020dc0a8109
Reviewed-on: https://chromium-review.googlesource.com/897536
Reviewed-by: Wei-Yin Chen (陳威尹) <wychen@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#533841}
bratell
Use the right ref count macros for base::Bind call
chrome/browser/android/cdm/media_drm_credential_manager.cc sent
a g_browser_process->system_request_context() into a Bind call
without using any ref counting macros. That is prohibited by the
bind system but the code got away with it when the pointer
was just forward declared so that Bind didn't know that it was
a ref counted type.

In jumbo builds the compiler knew more about the return type of
g_browser_process->system_request_context() and failed to compile
because of static_asserts in bind_internal.h.

This patch adds base::Unretained() since that seems to be the
right macro for this type of value.

Bug: 746957
Change-Id: Idfc3ad9bd6708dbc5ef4f295397d05d961595b4a
Reviewed-on: https://chromium-review.googlesource.com/897535
Reviewed-by: Chrome Cunningham <chcunningham@chromium.org>
Reviewed-by: Xiaohan Wang <xhwang@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#533839}
bratell
Use different names for two offline_pages delegate classes
In jumbo builds many cc files compile in the same translation
unit and then they share the same anonymous namespace. Having
two classes with the same name will then result in compilation
failures.

In preparation for jumbo in chrome/browser, this patch renames
two classes named DefaultDelegate so that they have different names.

Bug: 746957
Change-Id: I15cdab5fd9e51223a76d295991513e6e815e3c51
Reviewed-on: https://chromium-review.googlesource.com/897942
Reviewed-by: Cathy Li <chili@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#533765}
bratell
Have one kMHTMLExtension constant instead of two
In jumbo builds many cc files compile in the same translation
unit and then they share the same anonymous namespace. Having
the same constant several times will then result in compilation
failures.

In preparation for jumbo in chrome/browser, this patch
deduplicates the kMHTMLExtension constant and puts it in the
utility class.

An alternative would be to use the literal string "mhtml" without
going through a constant at all.

Bug: 746957
Change-Id: I869f15c17bcf14a633a3e0711c7e469159e3083f
Reviewed-on: https://chromium-review.googlesource.com/897944
Reviewed-by: Cathy Li <chili@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#533764}
bratell
Gave three constants in feature_engagement unique names
In jumbo builds many cc files compile in the same translation
unit and then they all share the same anonymous namespace. If
two or more variables have the same name, they will cause
compilation errors and that happened with the three
kDefaultPromoShowTimeInHour constants.

As a preparatory patch to jumbo in chrome/browser this renames
those by adding a relevant prefix to each of them.

Bug: 746957
Change-Id: If17d8103a6916c14b493e203e445208bb1b1b2d6
Reviewed-on: https://chromium-review.googlesource.com/893273
Reviewed-by: David Trainor <dtrainor@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#533728}
fs
[PE] Support 'pathLength' for <path>s referenced from <textPath>
A 'pathLength' attribute on a <path> referenced from <textPath> will
affect the starting offset on the path as computed from 'startOffset'
attribute.
Refactor the PathPositionMapper setup a bit so that the start offset is
computed together with all the other path related state.

Bug: 803127
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: Id12c88580dd74db403598d2aa05ac9764ad68cdb
Reviewed-on: https://chromium-review.googlesource.com/897626
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#533712}
bratell
Give all the different kTrafficAnnotations unique names
In jumbo builds many cc files compile in the same translation
unit and then they share the same anonymous namespace. Having
many variables with the same name will then result in compilation
failures.

In preparation for jumbo in chrome/browser, this patch renames
all the chrome/browser kTrafficAnnotation variables so that they
don't share the same name. This is an equivalent change
to what was already done in //content a couple of months back.

Bug: 746957
Change-Id: I4972cbb767720ac8114b9a01878df1f3ea32a735
Reviewed-on: https://chromium-review.googlesource.com/895369
Reviewed-by: Lei Zhang <thestig@chromium.org>
Reviewed-by: Ramin Halavati <rhalavati@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#533610}
bratell
Use different names for two settings lookup functions
In jumbo builds many cc files compile in the same translation
unit and then they share the same anonymous namespace. Having
many variables with the same name will then result in compilation
failures.

In preparation for jumbo in chrome/browser, this patch renames
two functions that fetch a DictionaryValue settings object so that
they have different names.

Bug: 746957
Change-Id: I109751abd13397b61e2eceaccbd95decf493d0c4
Reviewed-on: https://chromium-review.googlesource.com/895368
Reviewed-by: Raymes Khoury <raymes@chromium.org>
Reviewed-by: Ben Wells <benwells@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#533609}
bratell
Giving some ssl metrics functions unique names
In jumbo builds many cc files compile in the same translation
unit and then they share the same anonymous namespace. Having
two methods with the same name will then result in compilation
failures.

In preparation for jumbo in chrome/browser, this patch renames
some functions and metrics related to ssl interstitial pages.

Bug: 746957
Change-Id: If8218168d38a7ddae9f2fcdb09b2956018aacd8f
Reviewed-on: https://chromium-review.googlesource.com/895370
Reviewed-by: Emily Stark <estark@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#533608}
bratell
Use different names for different histogram constants
In jumbo builds many cc files compile in the same translation
unit and then they share the same anonymous namespace. Having
many variables with the same name will then result in compilation
failures.

In preparation for jumbo in chrome/browser, this patch renames
some page_load_metrics constants so that they have unique names.

Bug: 746957
Change-Id: Ibfad7c1dbb7b193a2afca5998e5265ec7f8df896
Reviewed-on: https://chromium-review.googlesource.com/895455
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Josh Karlin <jkarlin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#533427}
bratell
Gave two tracing OnUploadComplete methods unique names
In jumbo builds many cc files compile in the same translation
unit and then they share the same anonymous namespace. Having
two methods with the same name will then result in compilation
failures.

In preparation for jumbo in chrome/browser, this patch renames
two OnUploadComplete methods. They are identical so an alternative
is to find a common definition for them but they are also tiny,
really just 1-2 lines of code, so it is not a big thing to have
two of them.

Bug: 746957
Change-Id: I39835ee002fb48216211c37c4c3d047c1dff2eaa
Reviewed-on: https://chromium-review.googlesource.com/895457
Reviewed-by: dsinclair <dsinclair@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#533398}
fs
[PE] Fix edge-cases in SVGGeometryElement::PathLengthScaleFactor
Update the computation of the scale factor to match what the spec [1]
has to say about a value of zero: i.e yield (near) infinity rather than
zero. Also update the case where the computed path length is zero.

[1] https://svgwg.org/svg2-draft/paths.html#PathLengthAttribute

Bug: 803127
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I6816b6bdd47cbaee90e8ad22e16d1dcf44498c7d
Reviewed-on: https://chromium-review.googlesource.com/893184
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#533003}
fs
[CI] Remove broken IsSVG*Element overload
The:

 template<typename T> bool IsSVG*Element(const T*)

overload is a remnant after RawPtr<T>, but in its current form it would
only produce infinite recursion.

Also update some nearby documentation and rewrite the const Node&
overload to use the same form of condition as the other ones.

Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: Iecbc75423010bf26383dfd7504831bf1768a722d
Reviewed-on: https://chromium-review.googlesource.com/893270
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#533001}
bratell
There is both ::prefs and ::metrics::prefs so be explicit
When code inside metrics say "prefs" the default assumption is
that it means "::metrics::prefs", *if* the compiler knows that
::metrics::prefs exists. This code wants to use ::prefs which
failed in jumbo build experiments where the compiler knew
that ::metrics::prefs exists.

This patch makes the namespace lookup explicit by writing
::prefs instead of just prefs.

Higher level: The coding standard discourages sub namespaces with
the same name as a top level namespace so it is possible
::metrics::prefs should change name at some time.

Bug: 746957
Change-Id: Ia68378e6a3e7937f5d1b2ebcc960b9111e426fe6
Reviewed-on: https://chromium-review.googlesource.com/890455
Reviewed-by: Gayane Petrosyan <gayane@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#532934}
bratell
Gave two BindConnectorRequest methods unique names
In jumbo builds, many cc files share the same anonymous namespace
since they are compiled in the same translation unit. Then
methods that would otherwise not clash cause symbol collisions.

This patch renames two identical BindConnectorRequest methods.
A better fix may be to find a shared location but there is no
obvious shared location between media/casting and pepper/flash.

Bug: 746957
Change-Id: I80b4806140720824fefd1d0019537b6fd89683da
Reviewed-on: https://chromium-review.googlesource.com/878363
Reviewed-by: Ken Rockot <rockot@chromium.org>
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
Cr-Commit-Position: refs/heads/master@{#532181}
bratell
Correct include guard in aom_context_ax_tree.h
A trailing "}" was not included in the include guard so if
included multiple time, you would get "extraneous }" errors.

Change-Id: I32582e928220ee9428acbefa9a4833d9d36d2eec
Reviewed-on: https://chromium-review.googlesource.com/888581
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#532172}
fs
Fix operator precedence in SizesCalcParser
Pop all operators with greater/equal precedence rather than just the
top-most.

Bug: 803824
Change-Id: I5f106a0e82ed98ba2510c86ed157bf4b133cb5b8
Reviewed-on: https://chromium-review.googlesource.com/888919
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Yoav Weiss <yoav@yoav.ws>
Cr-Commit-Position: refs/heads/master@{#532100}
bratell
Allow error free multiple inclusion of print_messages.h
In jumbo builds, there is no careful inclusion of headers
so files that require very careful handling of when they are
included cause problems. One such file was print_messages.h
because of an undef it did of another include guard.

This patch moves the undef one layer out of print_messages.h
so that print_messages.h itself can be included many time.

Bug: 746957
Change-Id: Ie44fe5dbd4665cc487788fe7b6e42ebcd20cc50f
Reviewed-on: https://chromium-review.googlesource.com/878325
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
Cr-Commit-Position: refs/heads/master@{#532092}
Avoid loading v8_context_snapshot.bin if it's disabled at build-time
Don't list the context snapshot in the mojo manifest's required_files
in builds with use_v8_context_snapshot=false. Tweak existing manifest
overlay functionality to allow merging of required_files lists from
multiple manifests.

This avoids an "Ignoring invalid file v8_context_snapshot.bin" warning
on each browser stratup in use_v8_context_snapshot=false builds.

Bug: 804293
Change-Id: I0f4731811044980b7466887bedcaf115ee1fb288
Reviewed-on: https://chromium-review.googlesource.com/878371
Reviewed-by: Hitoshi Yoshida <peria@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Ken Rockot <rockot@chromium.org>
Commit-Queue: Tomasz Śniatowski <tsniatowski@vewd.com>
Cr-Commit-Position: refs/heads/master@{#532088}
fs
[CI] Avoid using FillLayer::Size() in BackgroundImageGeometry
FillLayer::Size() returns a FillSize, which is made up of a copy of the
FillLayer's |size_length_| and |size_type_| fields.
This is unnecessarily costly (both in cycles and bytes/footprint), so
use the appropriate (const) accessors instead.

Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I678095d4d9cb8a1b44a7fad7c7e7cf25c4557225
Reviewed-on: https://chromium-review.googlesource.com/883345
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#531529}
msimonides
Add support for include_dirs to gn check.
With this change "gn check" no longer assumes all #include paths are
relative to the source root. Instead it searches for the includes by
checking each of the directories listed in include_dirs for the target.

A number of new issues have been discovered. The trivial ones have been
fixed, the larger and more complex ones have been reported and the related
parts of the project have been excluded from the default gn check run.

BUG=794926

Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel
Change-Id: I39c17a7ac47dc024dd374c8891ce4911809195cb
Reviewed-on: https://chromium-review.googlesource.com/827014
Commit-Queue: Brett Wilson <brettw@chromium.org>
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Reviewed-by: David Reveman <reveman@chromium.org>
Reviewed-by: Yuzhu Shen <yzshen@chromium.org>
Reviewed-by: Greg Thompson <grt@chromium.org>
Reviewed-by: Jochen Eisinger <jochen@chromium.org>
Reviewed-by: Brett Wilson <brettw@chromium.org>
Reviewed-by: Peter Kasting <pkasting@chromium.org>
Cr-Commit-Position: refs/heads/master@{#531334}
bratell
Give some kFilteredMessageClasses variables unique names
In jumbo builds multiple cc files are compiled in the same
translation unit and then they will all share the
anonymous namespace which can cause collisions if
variables have the same name. That was the case for two
kFilteredMessageClasses variables.

This renames them to:
kExtensionFilteredMessageClasses
kRenderFilteredMessageClasses

This is a followup to an equivalent change done in //content
https://chromium-review.googlesource.com/721279

Bug: 746957
Change-Id: I959600adcc81dbd6e405c25aa0272acefc0387d9
Reviewed-on: https://chromium-review.googlesource.com/878362
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#531325}
bratell
Gave two kNotificationPrefix strings unique name
In jumbo build experiments, two kNotificationPrefix variables
ended up in the same translation unit and clashed. This patch
gives those two variables unique names.

Bug: 746957
Change-Id: I200e9cb47129a1f20b8edec91ff0ff432a3c22d9
Reviewed-on: https://chromium-review.googlesource.com/874072
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Drew Wilson <atwilson@chromium.org>
Cr-Commit-Position: refs/heads/master@{#531324}
fs
[CI] Move SVG dependency graph notification into SVGElement
This moves a chunk of code pertaining to notifications of dependent
elements from a helper LayoutSVGResourceContainer.cpp, thus collection
all such operations within the realms of the SVGElement DOM.

Bug: 454767, 661598, 769774
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I18b9a982b43767f2d8f0b8f458ea93e5bdd5e786
Reviewed-on: https://chromium-review.googlesource.com/881502
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#531285}
fs
[CI] Use TransformationMatrix::Zoom in SVGElement::CalculateTransform
Replaces Scale(1 / zoom) and Scale(zoom) with Zoom(1 / zoom), and merges
the two ApplyTransform calls into one.

Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: If36fe60292adf4ac0a02030415e6756fc7305ea8
Reviewed-on: https://chromium-review.googlesource.com/880959
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Cr-Commit-Position: refs/heads/master@{#531268}
fs
[CI] Use FloatSizeForLengthSize and FloatPointForLengthPoint some more
Some callsites that are currently using FloatValueForLength would be
better suited using the "pair" helpers (either LengthSize or
LengthPoint.) Also remove an almost-duplicate and use the one from
LengthFunctions.h instead.

Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: Ic628bfe32b07f000054a9da3bf58c3eb6894d241
Reviewed-on: https://chromium-review.googlesource.com/881341
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#531264}
bratell
Removing dead engine_ field i libjingle_xmpp
Jumbo build experiments noticed that no code ever read engine_
in XmppIqEntry in libjingle_xmpp. Normal build didn't because
"friend class XmppEngineImpl" required the compiler to know
what XmppEngineImpl does as well.

Bug: 777434
Change-Id: I661a5346617a92ee912060bebf35801dbe1a8797
Reviewed-on: https://chromium-review.googlesource.com/873371
Reviewed-by: Tommi <tommi@chromium.org>
Commit-Queue: Harald Alvestrand <hta@chromium.org>
Cr-Commit-Position: refs/heads/master@{#531039}
bratell
Have only one function named DidStartWorker
Both content/browser/background_sync and
content/browser/service_worker had local functions named
DidStartWorker. If those ended up in the same translation unit,
which can happen in extreme jumbo configurations
(jumbo_file_merge_limit = 999999999) there would be a collision.

This renames them to unique names, just to make things easy.

Change-Id: I33dbc5ad2f5eee6a8e89e0e7624ba033774e3fdb
Reviewed-on: https://chromium-review.googlesource.com/873926
Commit-Queue: Avi Drissman <avi@chromium.org>
Reviewed-by: Avi Drissman <avi@chromium.org>
Reviewed-by: Matt Falkenhagen <falken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#530938}
fs
[CI] DOM-based SVG resource tracking (1/n)
This starts the transition away from tracking SVG resources based on LayoutObjects.
In the new (probably transitional) model, the resources are track via a Resource
object (inner class) on SVGTreeScopeResources. These Resource objects are
IdTargetObservers, meaning that id mutations no longer are tracked via hooks in
SVGElement. The "pending resource handling" mechanism is also moved to the Resource
objects in the form of a "pending clients" set. The old mechanism (i.e
NeedsPendingResourceHandling() and BuildPendingResourcesIfNeeded()) are no longer
needed and hence removed.

Next step will be to eliminate all remaining tracking logic from
LayoutSVGResourceContainer.

Somewhat independently, a new entry point ResourceReferenceChanged is added to
SVGResourcesCache, codifying the sequence that previously involved calls to
ClientStyleChanged and MarkForLayoutAndParentResourceInvalidation.

Bug: 454767, 661598, 769774, 784435
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I268f2e2a2a5e2e01f077a6b0a5b6270f668a2a6f
Reviewed-on: https://chromium-review.googlesource.com/689998
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#530930}
bratell
Gave two kUrlKey variables unique names
In jumbo builds, two kUrlKey constants (with the same string value)
ended up in the same translation unit and this renames them to
avoid colliding. A better fix would be to find a good common
location.

Bug: 746958
Change-Id: I7c0f0e19455c5ab070a8e0e16714f84ee205133d
Reviewed-on: https://chromium-review.googlesource.com/874071
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Marc Treib <treib@chromium.org>
Reviewed-by: Drew Wilson <atwilson@chromium.org>
Cr-Commit-Position: refs/heads/master@{#530897}
tmoniuszko
Make sure LayoutScrollbarPart margins are integers
Bug: 801123
Change-Id: I875cd6431b9ac5e9cded7ab947242d451e889d04
Reviewed-on: https://chromium-review.googlesource.com/860929
Reviewed-by: Steve Kobes <skobes@chromium.org>
Commit-Queue: Tomasz Moniuszko <tmoniuszko@opera.com>
Cr-Commit-Position: refs/heads/master@{#530885}
bratell
Move and deduplicate ProfileLoadedCallback
There were 4 identical ProfileLoadedCallback methods and a TODO
to move them somewhere. This makes it one shared method in
NotificationDisplayServiceImpl.

This change was triggered by a jumbo symbo collision between these
ProfileLoadedCallbacks and one in profiles/profile_window.cc

Bug: 746957
Change-Id: Ic30c5883d9741b6cf5829ec4fe1481e7d32655dc
Reviewed-on: https://chromium-review.googlesource.com/878222
Reviewed-by: Peter Beverloo <peter@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#530875}
bratell
Inline a duplicated kCrlfLineEnding constant
A kCrlfLineEndine constant was recently copied from
QuotedPrintable.cpp to MHTMLArchive.cpp which caused problems
in certain non default jumbo build configurations because of
the symbol clash.

MHTMLArchive.cpp already uses the literal string "\r\n" all over
the place and no other code in Blink uses a constant for CRLF
so inlining the constant both makes the code consistent and
solves the symbol clash.

An alternative would be to create a shared kCrlfĹineEnding constant,
for instance in platform/test/LineEnding.h, and use it all over
Blink.

Change-Id: I280e9f6217e68d79f764397c469f2022d0f9dc04
Reviewed-on: https://chromium-review.googlesource.com/878219
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#530842}
tmoniuszko
Add missing includes to hwnd_message_handler_delegate.h
Bug: 796644
Change-Id: I9c0b2ecc77eb72e97dec373297d2b2031ad68c82
Reviewed-on: https://chromium-review.googlesource.com/873648
Reviewed-by: Bruce Dawson <brucedawson@chromium.org>
Reviewed-by: Scott Violet <sky@chromium.org>
Commit-Queue: Tomasz Moniuszko <tmoniuszko@opera.com>
Cr-Commit-Position: refs/heads/master@{#530826}
fs
[CI] Remove LayoutObject dependency from CSS*GradientValue
Rather than passing a LayoutObject around we can pass around the
<Document, ComputedStyle> tuple that is the bits of data that is needed.

While a it, change CSSGradientValue::GetStopColors to return the vector
of Colors instead of using an out-variable.

Bug: 803224
Change-Id: Ib89bf3c0e47495886b5b715504a90b262348c6f2
Reviewed-on: https://chromium-review.googlesource.com/875925
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#530626}
fs
[CI] Share more text-clip masking code between NG and non-NG painters
Split out a PaintTextClipMask method and make that virtual instead of
PaintFillLayerTextFillBox. Move PaintFillLayerTextFillBox to
BoxPainterBase and call PaintTextClipMask for the bits that differ.

Bug: 803382
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_layout_ng;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: Ie44a64a6e70eac8a5a1029650fd206fc9b2852f7
Reviewed-on: https://chromium-review.googlesource.com/874074
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Reviewed-by: Emil A Eklund <eae@chromium.org>
Commit-Queue: Emil A Eklund <eae@chromium.org>
Cr-Commit-Position: refs/heads/master@{#530573}
fs
[CI] Remove unused argument from CSSImageGeneratorValue::AddClient
An "empty" size is always passed to AddClient, so the argument can be
removed. This also allows simplifying the caching logic (since the
size is always empty, which won't create a cache entry.)

Also change the find()+insert() sequence for |clients_| to use
only insert() instead, saving a hash lookup. Simplify the SizeAndCount
constructor since it never needs any non-zero initialization.

Bug: 803224
Change-Id: I7efc7a130e8e93c1e2680116c429cb93e57d2d3f
Reviewed-on: https://chromium-review.googlesource.com/876086
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#530547}
bratell
Inlined a GetLocalState() method
The GetLocalState() method in cryptauth clashes with another
GetLocalState() in jumbo builds, and since there is only one
caller off this one, it might as well be inlined.

Bug: 746957
Change-Id: I63e33c5c94930cd0dfeaa27c1421ce81c9865feb
Reviewed-on: https://chromium-review.googlesource.com/873922
Reviewed-by: Kyle Horimoto <khorimoto@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#530357}
bratell
Deduplicated a usb helper function, GetBrowser()
Two files both used identical helper functions, GetBrowser(). This
patch moves that function to a common utility file so that
there is only one.

This was noticed while doing jumbo compilation experiments, where
the double GetBrowser() ended up in the same translation unit.

Bug: 746957
Change-Id: I8ceaab0d4bd08395821b296dbd1bbda13c1aef78
Reviewed-on: https://chromium-review.googlesource.com/873921
Reviewed-by: Jun Cai <juncai@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#530344}
fs
[CI] Rework size-based caching logic in CSSImageGeneratorValue
Rather than (ab)using AddClient/RemoveClient when updating the
cache for a client, move the actual cache to a helper class
(GeneratedImageCache) and then call the appropriate methods on
that object instead.

Bug: 803224
Change-Id: Ifbb3edf8f25dbeef2f9f1fdd9840a0b32991e274
Reviewed-on: https://chromium-review.googlesource.com/873875
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#530261}
fs
[PE] Fix background-blend-mode interaction background-clip: text
When applying background-blend-mode to a background layer that uses
"background-clip: text", perform the blending after the background has
been clipped by the text.

Bug: 803382
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: Ie834b1503ec90341aec846f4d2dfc8c94732fe12
Reviewed-on: https://chromium-review.googlesource.com/873636
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#530232}
bratell
Avoid "using base::Time;" because of X11 Time typedef
if any X11 header has been included, there is an unavoidable
Time typedef in global scope. When there is also a
"using base::Time;" both end up in the global scope which
cause compilation issues. Specifically this happened in
jumbo build experiments.

Bug: 803406
Change-Id: Ib7cd99b98552a209d1432ecb4ee060d16c9da39f
Reviewed-on: https://chromium-review.googlesource.com/873976
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Michael Wasserman <msw@chromium.org>
Cr-Commit-Position: refs/heads/master@{#530215}
bratell
Avoid "using base::Time;" since Time is an X11 typedef
X11 headers have an unavoidable typedef that creates the
type ::Time. "using base::Time" in the global scope will
clash with that one if X11 headers are included in the
translation unit.

A few files in the chrome/browser target has "using base::Time"
and those cause issues if you try to use jumbo (unity) compilation
for chrome/browser. This patch changes the code to be more
explicit.

Bug: 746957
Change-Id: I619c589071a01302086d81fdce35e0c779b121a0
Reviewed-on: https://chromium-review.googlesource.com/866838
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#530109}
bratell
Gave two OnFetchComplete methods more descriptive names
When experimenting with jumbo (unity) builds in Chromium
two overloaded OnFetchComplete ended up in the same
translation unit and then Bind() could not determine which
one to use.

This patch gives two OnFetchComplete methods more unique and
descriptive names: OnCookieFetchComplete and
OnAppCacheInfoFetchComplete.

Bug: 746957
Change-Id: Ie165f6dd8365257181ba7f48b9b5809043ec25f3
Reviewed-on: https://chromium-review.googlesource.com/860462
Reviewed-by: Christian Dullweber <dullweber@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#529797}
bratell
Removed "using namespace" from a password_manager file
"using namespace" is not allowed by the coding style, and also
it is not compatible with jumbo builds. This patch removes
using namespace and gives the three symbols namespace prefixes
instead.

Bug: 746957
Change-Id: Ibf3810287deb370ad1ac90968ba0e24020f681fb
Reviewed-on: https://chromium-review.googlesource.com/868334
Reviewed-by: Maxim Kolosovskiy <kolos@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#529757}
bratell
Fix erroneous DictionaryValue forward declaration
Claiming that there is a ::DictionaryValue is not true and
it clashes with other code doing using base::DictionaryValue.

Fix is to do the forward decalaration in the right namespace.

Bug: 746957
Change-Id: I777dd92baaec876cd2085911e00a96c74efe58f2
Reviewed-on: https://chromium-review.googlesource.com/866843
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Matt Giuca <mgiuca@chromium.org>
Cr-Commit-Position: refs/heads/master@{#529716}
bratell
Gave kUploadContentType and kCrashMultipartBoundary unique names
crash_service_uploader.cc and webrtc_log_uploader.cc are similar
and use variables named the same. If those files end up in the
same translation unit in a jumbo build, they will clash and break
the compilation.

Since there is no good place to share the two strings, this patch
gives them unique names.

Bug: 746957
Change-Id: Ic349606814cff229529b135f3c1da11ac2279158
Reviewed-on: https://chromium-review.googlesource.com/867918
Reviewed-by: dsinclair <dsinclair@chromium.org>
Reviewed-by: Sergey Ulanov <sergeyu@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#529710}
bratell
Gave three kDefaultUpdatePeriod variables unique name
This is a preparatory patch for adding jumbo support to
chrome/browser. If more than one kDefaultUpdatePeriod variable
ended up in the same translation unit, they would clash and
cause compilation errors.

Bug: 746957
Change-Id: Iff2579b15fa00648823a4a3bf890b40252856028
Reviewed-on: https://chromium-review.googlesource.com/868155
Reviewed-by: Sergey Ulanov <sergeyu@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#529706}
bratell
Replacing custom http status constants with net::HTTP_*
A couple of places defined their own kHttpResponseOk which
is a bit unnecessary when there already is a net::HTTP_OK which
the rest of the code uses.

This was noticed in jumbo build experiments because two
kHttpResponseOk ended up in the same translation unit and caused
compilation errors.

Bug: 746957
Change-Id: Ia5cf32636bbcf8e0e1d7b8e1c161c5b4a5cdcbdf
Reviewed-on: https://chromium-review.googlesource.com/868156
Reviewed-by: dsinclair <dsinclair@chromium.org>
Reviewed-by: Sergey Ulanov <sergeyu@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#529705}
bratell
Give each ShutdownNotifierFactory class its own class name
In jumbo builds many cc files are compiled in the same translation
unit and then classes with the same name, that are normally
shielded from each other, can start clashing and causing
compilation errors.

One observation is that there are many ShutdownNotifier classes and
this patch gives each a long and unique name following the typical
naming standard.

Bug: 746957
Change-Id: I2bcca0ac41685fdf78c491ed969b91669e520772
Reviewed-on: https://chromium-review.googlesource.com/867919
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#529504}
bratell
Remove erroneous UsbDevice forward declaration
There is no ::UsbDevice so forward declaring such a class confused
other code trying to import ::device::UsbDevice into the global
scope with using device::UsbDevice. This happened in jumbo build
experiments.

Bug: 746957
Change-Id: If1073d24b9e4c302b0873e91df386039c526c49f
Reviewed-on: https://chromium-review.googlesource.com/868331
Reviewed-by: Ken Rockot <rockot@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#529429}
bratell
Give two GetAllOriginsInfoCallback methods unique names
In jumbo build experiments the two very similar files
browsing_data_cache_storage_helper.cc and
browsing_data_service_worker_helper.cc were compiled in the same
translation unit and then the methods with the same name
collided.

This gives the methods unique names to avoid that.

Bug: 746957
Change-Id: I261c61fb178178c91d3a6aac8800e21510038ed8
Reviewed-on: https://chromium-review.googlesource.com/868333
Reviewed-by: Christian Dullweber <dullweber@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#529426}
fs
[PE] Fix offset computation for multi-line flow box 'background-clip: text'
Since the background of a flow box is painted in a 'sliced' fashion, the
paint rect/offset will be offset based on the "virtual" position of the
line box relative to the first line box in the flow.
When painting text for 'background-clip: text', adjust with this offset.

Bug: 658326
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: Ia12c3d65025199fbcdeb1df647df08174ae88c24
Reviewed-on: https://chromium-review.googlesource.com/868151
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Cr-Commit-Position: refs/heads/master@{#529425}
fs
Fix offset-anchor alignment for offset-path
The anchor point should align with the point on the path/shape/...

Also avoid recomputing transform-origin in ApplyMotionPathTransform
since the function takes origin_x/y as arguments, so those can be used
rather than recomputing the value(s).

Change-Id: I3c173cdc3d307057a37564a37b0e87044dbeaf9d
Reviewed-on: https://chromium-review.googlesource.com/808885
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Eric Willigers <ericwilligers@chromium.org>
Cr-Commit-Position: refs/heads/master@{#529282}
bratell
Deduplicate IsScaleAndIntegerTranslate
There are two identical implementations iof IsScaleAndIntegerTranslate() in
components/viz/service/display. One in skia_renderer.cc and one in
software_renderer.cc.

When building components/viz with jumbo (not yet on master) those end
up in the same translation unit and cause compilation errors.

This CL deduplicates the functions and puts it in a shared utility file,
renderer_utils.cc.

Bug: 801580
Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel
Change-Id: Ifcc39032bffcfcb752cee60719689d94dfbd2df6
Reviewed-on: https://chromium-review.googlesource.com/864643
Reviewed-by: enne <enne@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#529245}
bratell
Restore the UNICODE macro after third_party/ced has undefined it
third_party/ced (more specifically
third_party/ced/src/util/encodings/encodings.h) undefs UNICODE
which is a central define in Windows. It controls whether
Windows SDK headers should have 2 byte or 1 byte strings and must
always be set in a modern application.

In Jumbo builds this include of the dangerous ced header happen
in the same translation unit as the include of Windows headers
which will then fail to do the right thing.

Restoring the UNICODE define is a workaround.

This change is to make every include of the header do the same
thing. There is not currently any known problem from this instance of
the include.

Change-Id: Ic4a5386e61390533061e0021dddfb0fc4dad8e7e
Reviewed-on: https://chromium-review.googlesource.com/862402
Reviewed-by: Bruce Dawson <brucedawson@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#528919}
bratell
Restore the UNICODE macro after third_party/ced has undefined it
third_party/ced (more specifically
third_party/ced/src/util/encodings/encodings.h) undefs UNICODE
which is a central define in Windows. It controls whether
Windows SDK headers should have 2 byte or 1 byte strings and must
always be set in a modern application.

In Jumbo builds this include of the dangerous ced header happen
in the same translation unit as the include of Windows headers
which will then fail to do the right thing.

Restoring the UNICODE define is a workaround.

Bug: 775547
Change-Id: I7323cf6f9fff3efe2780c3125b9b099a8f9faa09
Reviewed-on: https://chromium-review.googlesource.com/861883
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#528803}
fs
[PE] Fix hit-test of zoomed <clipPath> 'clip-path'
<clipPath> geometry is not subjected to zoom, so the hit-test location
and reference box has to be adjusted to make the coordinate spaces
match.

Bug: 800605
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: Ic03e24f0289a5019ea722e3931f6217d918a1b56
Reviewed-on: https://chromium-review.googlesource.com/859784
Reviewed-by: Chris Harrelson <chrishtr@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#528743}
jl
Share implementations of `GetPerContextData()`
There were some largely duplicated functions that fetched per-context
data objects, optionally creating them if missing. Replace them with a
template function.

This also fixes the issue in jumbo/unity builds that the different
GetPerContextData() functions collided.

Change-Id: I04197a01aa647a07c026eca1ba9c158742fedf3e
Reviewed-on: https://chromium-review.googlesource.com/850115
Commit-Queue: Jens Widell <jl@opera.com>
Reviewed-by: Devlin <rdevlin.cronin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#528739}
jl
Rename conflicting `CallbackHelper` functions
They conflict in jumbo/unity builds.

Change-Id: I29da5bde4bb2d99b6fa93aaf163c79d160b30c69
Reviewed-on: https://chromium-review.googlesource.com/860650
Reviewed-by: Devlin <rdevlin.cronin@chromium.org>
Commit-Queue: Jens Widell <jl@opera.com>
Cr-Commit-Position: refs/heads/master@{#528736}
bratell
Don't compile unused multiprocess_test.cc for ios and nacl
The file multiprocess_test.cc was being compiled for ios and nacl
and then, normally, discarded by the linker since nothing in the
object file was referenced. In jumbo builds the unused code
piggy-backed on used code and then the linker noticed that
multiprocess_test.cc referenced non-existing symbols and linking
failed.

Change-Id: Id14e125d1f62fc0cefeb919ad63e8457bb680407
Reviewed-on: https://chromium-review.googlesource.com/860064
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#528713}
bratell
Include tcmalloc's config before tcmalloc.h
Certain things in tcmalloc.h depend on tcmalloc's config.h file,
for instance whether struct mallinfo exist or not. Depending
on how the functions are used, it may or may not work correctly
without including config.h, but to be safe, always include it.

This was an issue in jumbo builds if base/process/memory_linux.cc
and base/allocator/allocator_shim_default_dispatch_to_tcmalloc.cc
were compiled in the same translation unit. The wrong includes from
memory_linux.cc caused the other file to fail to compile.

Bug: 775547
Change-Id: Iab9b8172281c55b8cbfbc8c21a79f95d2bae5847
Reviewed-on: https://chromium-review.googlesource.com/860646
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#528704}
fs
[CI] Add intrinsic-dimensions-changed notifier to FrameOwner
This CL adds a notifier callback that is called whenever a property or
attribute that may affect the intrinsic dimensions of an <svg> is
changed - this includes 'width', 'height' and 'viewBox' as well as
'writing-mode' and font properties.
At present this callback doesn't do anything, but is expected to
eventually schedule a layout on the embedding object.

Bug: 442939, 798974
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I761ccaaec6b5dec20c2bfa4b5f06cf16d6c7eb24
Reviewed-on: https://chromium-review.googlesource.com/860932
Reviewed-by: Chris Harrelson <chrishtr@chromium.org>
Commit-Queue: Chris Harrelson <chrishtr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#528689}
bratell
Give two PrefixTitle functions more unique names
When experimenting with jumbo builds (Chromium unity builds) in
chrome, the compiler ended up with two PrefixTitle in the same
translation unit. By using more unique names, that is not a
problem anymore.

The methods are similar and there are other methods building
titles that share similar patterns but there does not seem
to be any useful refactoring that reduces the number of methods.

Bug: 746957
Change-Id: I82f3ce3dd88ef024bb935d09895befda3e5bf76b
Reviewed-on: https://chromium-review.googlesource.com/860461
Reviewed-by: Ahmed Fakhry <afakhry@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#528688}
amlynarczyk
Cleanup extensions unittests to use constant for extensions settings preference
Bug: 
Change-Id: I00d7ff48486400e111150cad2b654dd2700a90b6
Reviewed-on: https://chromium-review.googlesource.com/861625
Reviewed-by: Finnur Thorarinsson <finnur@chromium.org>
Commit-Queue: Finnur Thorarinsson <finnur@chromium.org>
Cr-Commit-Position: refs/heads/master@{#528620}
fs
[CI] Refactor replaced element nested intrinsic sizing info extraction
This moves the access to a nested layout contexts (either a frame
embedded via LayoutEmbeddedObject or an SVG image via LayoutImage)
LayoutReplaced (LayoutSVGRoot) from LayoutReplaced to the relevant
subclasses (LayoutEmbeddedObject or LayoutImage.) The goal with this is
to eliminate the use of EmbeddedReplacedContent in LayoutReplaced.

Rather than accessing EmbeddedReplacedContent() and calling
ComputeIntrinsicSizingInfo() on the returned LayoutReplaced, a new
method GetNestedIntrinsicSizingInfo is added instead, and implemented in
the relevant subclasses. In LayoutImage the EmbeddedReplacedContent()
method is kept around (for now), but in LayoutEmbeddedObject it's
removed, and instead rerouted via LocalFrameView.

NeedsPreferredWidthsRecalculation is moved from LayoutEmbeddedContent to
its subclass LayoutEmbeddedObject since this is the only subclass that
can modify its behavior - i.e can represent content that may can affect
the size of its embedder.

The IntrinsicSizingInfo struct is moved out from being an inner class of
LayoutReplaced.

Bug: 798974
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_layout_ng;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: Ia617a40d631e6b2e6bb2c9f39a1799766d7f58d6
Reviewed-on: https://chromium-review.googlesource.com/860140
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Chris Harrelson <chrishtr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#528524}
bratell
Avoid exporting read_buf renaming from zlib
zlib.h includes a macro that renames read_buf->Cr_z_read_buf. Since
read_buf is a common name in other parts of the code, it causes
some random confusion depending on whether zlib.h has been
included or not.

The renaming macro is a side effect of the 0001-simd.patch that
exposes an internal read_buf method to other files in zlib. This
patch renames read_buf as it is exposed so that it has the less
common name deflate_read_buf.

Bug: 799448
Change-Id: Icdc4eba973891dfd28d82017415048eded62d577
Reviewed-on: https://chromium-review.googlesource.com/852257
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Chris Blume <cblume@chromium.org>
Cr-Commit-Position: refs/heads/master@{#528512}
bratell
Changed g_instance and g_factory to more unique names
Jumbo, the Chromium unity build system, combines many cc files
in the same translation unity. Those cc files will share the
same anonymous namespace so there can be clashes if names
are not unique enough.

In //chrome there is a lot of variables named g_instance or
similar and in jumbo builds some of them collide. This patch
gives all of the g_instance* variables more specific names, in
a very similar fashion to what was done in //content.

Bug: 746957
Change-Id: Idb2c64b2289aa0487fd62fd140498af909986079
Reviewed-on: https://chromium-review.googlesource.com/846769
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Scott Violet <sky@chromium.org>
Cr-Commit-Position: refs/heads/master@{#528489}
bratell
Fixing include guards for MetricsHelper include files
Newly added file had no include guards which made it be included
many times in jumbo builds, breaking those builds and two other
header files had the same include guard so you could only include
one of them.

TBR=altimin@chromium.org

Change-Id: I6dc277b6c3a1129a640fd15d2743f875a021925a
Reviewed-on: https://chromium-review.googlesource.com/860038
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Alexander Timin <altimin@chromium.org>
Reviewed-by: Bruce Dawson <brucedawson@chromium.org>
Reviewed-by: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#528410}
fs
[CI] Remove unused arguments to CSSImageGeneratorValue::GetImage
The Document and ComputedStyle are not used. (This also makes it look
less like the other GetImage method on this object.)

Change-Id: I920497b6c835223bcc558669f1014d832787da9c
Reviewed-on: https://chromium-review.googlesource.com/860100
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Cr-Commit-Position: refs/heads/master@{#528400}
bratell
Changed an html code constant kDefaultWidth to have a unique name
In certain jumbo configurations HTMLCanvasElement.cpp and
track/vtt/VTTRegion.cpp end up in the same translation unit
and then the two different kDefaultWidth clash.

This patch gives kDefaultWidth more specific names and
changes the constants to be constexpr and be in an
anonymous namespace to better match the current coding style.

Change-Id: I116171382d172ff00c20eec13210494393190fc9
Reviewed-on: https://chromium-review.googlesource.com/859781
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#528323}
bratell
Deduplicate two dom helper methods.
There were two ShadowFor and two CanBeDistributedToV0InsertionPoint
methods which clashed in certain jumbo build configurations
(when FlatTreeTraversal.cpp and flag_tree_traversal_ng.cc ended
up in the same translation unit).

If this knowledge is widely needed, maybe the methods should move
to Node, but this just makes the old code use the method in the
new code.

Change-Id: Ia26f6fa2631e72ddf5bfdcb5150486025bb1d4a8
Reviewed-on: https://chromium-review.googlesource.com/859759
Reviewed-by: Hayato Ito <hayato@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#528309}
bratell
Deduplicate printing HoldRefCallback helper
Both print_job.cc and print_job_worker.cc wanted a helper
function for certain callbacks. Rather than having two of them,
let us have one.

Bug: 746957
Change-Id: If770b8f18479847489d9c2a28ba1b1d75bdc11e1
Reviewed-on: https://chromium-review.googlesource.com/857501
Commit-Queue: Lei Zhang <thestig@chromium.org>
Reviewed-by: Lei Zhang <thestig@chromium.org>
Cr-Commit-Position: refs/heads/master@{#528083}
jl
Use ':' directly instead of declaring a `kColon` constant
In jumbo/unity builds the constant declarations conflicts with an identical
declaration in socket_permission_entry.cc.

Change-Id: Ib5d2770caa327119407f618073ac2316bc1a5a9c
Reviewed-on: https://chromium-review.googlesource.com/849213
Commit-Queue: Jens Widell <jl@opera.com>
Reviewed-by: Devlin <rdevlin.cronin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#527981}
bratell
Correcting include guard for safe_browsing/features.h
Change-Id: Ie3bbe6779eeb321c72b76a255549afd10d9eb460
Reviewed-on: https://chromium-review.googlesource.com/853869
Reviewed-by: Varun Khaneja <vakh@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#527955}
bratell
Deduplicate a CreateExtensionPrefStore helper function
Noticed while experimenting with jumbo in chrome/browser. Symbols
that are duplicated cause compilation problems if they end up
in the same translation unit.

Bug: 746957
Change-Id: I07a5bcb690026359e7d74be81a0a26ce9f40958b
Reviewed-on: https://chromium-review.googlesource.com/846747
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Bernhard Bauer <bauerb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#527631}
bratell
Deduplicate some icon handling code and symbols in task_manager
Jumbo build experiments handled the multiple GetDefaultIcon
and g_default_icon pointers badly and since the code was more
or less identucal, this patch moves the code to a shared location
and leaves just the icon constant and the icon cache in
each task_manager Task class.

Bug: 746957
Change-Id: Ib7dc221113b29b5e6d17c22539ccb47da1b6a5ce
Reviewed-on: https://chromium-review.googlesource.com/852216
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Ahmed Fakhry <afakhry@chromium.org>
Cr-Commit-Position: refs/heads/master@{#527518}
fs
Clean up includes in Style*Image.cpp
Get rid of includes of LayoutObject.h and StyleResolver.h, replacing
them with something more appropriate (layering-wise for the former.)

Change-Id: I759c371d557d008bdb385fc3bdcfa440bff33c9d
Reviewed-on: https://chromium-review.googlesource.com/852493
Reviewed-by: Daniel Bratell <bratell@opera.com>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#527374}
jl
Rename conflicting `g_instance` variables
They conflict in jumbo/unity builds.

Change-Id: Ia1a1bb20873e4695e742ab485027a5185415d175
Reviewed-on: https://chromium-review.googlesource.com/849932
Reviewed-by: Devlin <rdevlin.cronin@chromium.org>
Commit-Queue: Jens Widell <jl@opera.com>
Cr-Commit-Position: refs/heads/master@{#527966}
bratell
Give each kPublicSHA256 variable a unique name
This patch is preparing for jumbo build support in
//chrome/browser. Since each component has its own
kPublicSHA256 variable with its own public key, and those
variables clash in jumbo builds where all installers are combined
in a single translation unit, they are here given unique and
descriptive names.

Bug: 746957
Change-Id: I7fe1c927d58fd323e8a80897c45d639e24f8a38d
Reviewed-on: https://chromium-review.googlesource.com/850558
Reviewed-by: Joshua Pawlicki <waffles@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#527287}
jl
Improve jumbo chunk generation code
The main improvement is that source files with unhandled extensions
other than .h, for example .json and .idl, are not counted towards the
merge limit, and thus can't lead to too many chunks being generated.

By restructuring, the code also iterates the source file list once
instead of twice, and calls get_path_info() once per source file instead
of twice.

Change-Id: I130c815c84fff08b6ad2d6f36434140efbeb2d29
Reviewed-on: https://chromium-review.googlesource.com/850397
Reviewed-by: Daniel Bratell <bratell@opera.com>
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#527099}
jl
Use a fully qualified name to access the `::switches` namespace
In jumbo/unity builds, `::extensions::switches` comes into scope, which
changes the meaning of the "relative" `switches::` qualifier used inside
the `extensions` namespace.

Change-Id: I49757b132e51bb4207a6fac4dac1e8d2237d5801
Reviewed-on: https://chromium-review.googlesource.com/849212
Reviewed-by: Ken Rockot <rockot@chromium.org>
Commit-Queue: Jens Widell <jl@opera.com>
Cr-Commit-Position: refs/heads/master@{#527967}
bratell
Renamed one of the HeaderFlattener classes
There are two HeaderFlattener classes that do similar things
but not identical things. If they end up in the same
translation unit (can happen in some extreme jumbo configurations)
there will be a clash so this patch renames one of them to
HeaderToString.

Bug: 746953
Change-Id: I1fa37f86bcf13487fd8b18da766f440b3ad85545
Reviewed-on: https://chromium-review.googlesource.com/848915
Commit-Queue: Avi Drissman <avi@chromium.org>
Reviewed-by: Avi Drissman <avi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#527078}
jl
Drop some jumbo-incompatible namespace aliases
Many source files declare a namespace alias `errors` for a specific
namespace containing error constants. This practice is incompatible with
jumbo/unity builds, when different namespaces are aliased.

The by far most common namespace to alias is `manifest_errors`. These
aliases are kept, since they are not a problem as long as there are no
other conflicting aliases. Other aliases are simply dropped, and the full
namespace is used instead.

Change-Id: Ie90f7e7a8f8be52b811b0b1e9c9839970669d96c
Reviewed-on: https://chromium-review.googlesource.com/848918
Reviewed-by: Ken Rockot <rockot@chromium.org>
Commit-Queue: Jens Widell <jl@opera.com>
Cr-Commit-Position: refs/heads/master@{#526952}
bratell
Rename GetRestrictedCookieManager for more uniqueness
There are two overloaded GetRestrictedCookieManager functions in
different files which in certain non-standard jumbo configurations
end up in the same translation unit. When that happens,
base::Bind doesn't know which one to use and there is a compilation
error.

This patch renames one of them
GetRestrictedCookieManagerForWorker so that there will never be
any confusion.

Bug: 746953
Change-Id: I7b3e6ba32aed44e575ee108111871e45b5e2689c
Reviewed-on: https://chromium-review.googlesource.com/847010
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Sam McNally <sammc@chromium.org>
Reviewed-by: Avi Drissman <avi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#526754}
bratell
Avoid importing base::Time into the global scope because X11
base::Time in the global scope collides with X11 headers which
have a global typedef of Time to int. This patch moves the code so
that the symbols are imported into the local namespace (content)
instead.

X11 headers appear in some non-standard jumbo configurations
(extremely large jumbo chunks) but could happen at any time
otherwise as well.

Bug: 746953
Change-Id: Iadc929ca4eb7d556490d58c791bbe8b2ef119726
Reviewed-on: https://chromium-review.googlesource.com/848916
Commit-Queue: Avi Drissman <avi@chromium.org>
Reviewed-by: Avi Drissman <avi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#526731}
bratell
Avoid collision between two ScriptExecutionCallbackHelper
ScriptExecutionCallbackHelper is the name of two different
helper functions which in some non-standard jumbo configurations
(huuuge jumbo chunks) end up in the same translation unit. This
patch changes the scope of one of the classes to not clash.

Bug: 745732
Change-Id: Ifed9bcd247c43afb110c9b008062383a2a7d74df
Reviewed-on: https://chromium-review.googlesource.com/848835
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#526690}
bratell
Changed some test code to avoid jumbo problems
In certain non-standard jumbo configurations (very large
jumbo units) there were some symbol clashes that do not
appear in normal jumbo builds. This resolves them by
renaming one test class to better match the test, and by
wrapping the other test in a custom namespace as done in other
places in blink tests.

Bug: 745732
Change-Id: Ic0388e9abd19b24366133c577059f59ef63a6b6b
Reviewed-on: https://chromium-review.googlesource.com/847009
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#526543}
bratell
Hide DeviceMode from X11 headers
X11 headers create a lot of macros using fairly normal names which
causes collisions in code that was written without X11 headers in
mind.

DeviceMode is also a type in components/policy and if that and
X11 includes end up in the same translation unit, there will be
compilation errors.

This was encountered in non-standard jumbo configurations and will
not affect currently supported code.

Bug: 782184
Change-Id: I84f9874d2858fc60c7e7c0e017d028dc8b710661
Reviewed-on: https://chromium-review.googlesource.com/847577
Reviewed-by: Dan Erat <derat@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#526524}
bratell
Rename one set of kDataPrefix/kMetadataPrefix to make them unique
There are two sets of kDataPrefix and kMetadataPrefix in
components/sync and they have different values. In non-standard
jumbo configurations (much larger jumbo chunks than normal) those
will end up in the same translation unit and clash.

This renames one set of constants, leaving the other one as is
since its name already matches the use well.

Change-Id: I3640f1c1e7bc599c7d20317cd60d2f1ac7d90b15
Reviewed-on: https://chromium-review.googlesource.com/847593
Reviewed-by: Pavel Yatsuk <pavely@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#526522}
bratell
Rename ChildAt and Parent to get unique names.
To help jumbo compilations, this code has already renamed
Children -> LayerChildren so this follows the same pattern
to help some other jumbo configurations where the plurality
of ChildAt and Parent methods caused problems.

Bug: 786926
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel
Change-Id: I086022931622b1bb670bc1313987ff69182c0990
Reviewed-on: https://chromium-review.googlesource.com/847473
Reviewed-by: enne <enne@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#526521}
bratell
Add include guards to highcontrast_classifier.h
Several files include highcontrast_classifier.h so jumbo builds
got duplicate instances of everything in the header file.

Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: Ibfe824f52d4b1f6046b75e4621f662ce0bf1d0c3
Reviewed-on: https://chromium-review.googlesource.com/847572
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#526470}
bratell
Removed dead GetImageInfo() function noticed in jumbo builds
There are two identical GetImageInfo functions in the blink/html
code and only one of them is used. This patch deletes the unused
one.

This was noticed in a non-standard jumbo configuration because both
instances ended up in the same translation unit.

Change-Id: I4b0959fcc1bf9a0902a6d8574023e9b59de60375
Reviewed-on: https://chromium-review.googlesource.com/847474
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#526467}
bratell
Undefine Win32 macros IsMinimized, IsRestored, IsMaximized
Names used in the BaseWindow class are also windows.h macros.
That the names are the same as in the Windows API is
no coincidence but for now we don't want the Windows macros
to interfere so we undef them.

There are already undefs in widgets.h but depending on the order
of includes they might not be effective.

Bug: 773275
Change-Id: I2be80c8a3f64f4741163def9c27e386c95753a40
Reviewed-on: https://chromium-review.googlesource.com/845582
Reviewed-by: Scott Violet <sky@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#526694}
bratell
Make timeit.bat handle some non-US locales better
timeit.bat assumed the decimal separator was a period. Sometimes
it's a comma.

Change-Id: Id8d04f980907dda0d80af96be8568b1704b61399
Reviewed-on: https://chromium-review.googlesource.com/844322
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Bruce Dawson <brucedawson@chromium.org>
Cr-Commit-Position: refs/heads/master@{#526285}
bratell
Be explicit about base::Time to not mix it up with X11 Time.
There is an X11 typedef for a type called ::Time so if becomes
complicated if code imports another type named Time into the
global namespace with "using base::Time". Better is to just
write base::Time whenever you mean base::Time.

This was an issue that hit the jumbo project, implementing
unity builds for Chromium.

Bug: 773275
Change-Id: Ic06f701eba210ef43899d0dc47ba5c891cb71866
Reviewed-on: https://chromium-review.googlesource.com/844695
Commit-Queue: Sadrul Chowdhury <sadrul@chromium.org>
Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org>
Cr-Commit-Position: refs/heads/master@{#526360}
bratell
Move kWebURLsWithTitlesPboardType from global scope in ui/base
There is a kWebURLsWithTitlesPboardType in
third_party/mozilla/NSPasteBoard+Utils.h which causes confusion
with the kWebURLsWithTitlesPboardType in ui/base. This code
moves the definition to a tighter scope which makes symbol lookup
obvious to the compiler.

This caused issues with jumbo builds. Most likely the Mozilla
header doesn't get included in the same translation unit as
clipboard_util_mac.mm in non-jumbo builds.

Bug: 773275
Change-Id: I77e9cc6c7a3beaa600cb620bddc000b1846ab985
Reviewed-on: https://chromium-review.googlesource.com/844697
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Avi Drissman <avi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#526287}
bratell
Don't compile input_method_auralinux.cc in chromeos.
ChromeOS has an input_method_chromeos.cc which contains
for instance GetEngine(). With input_method_auralinux.cc
there will be two GetEngine() which is one too many.

Seen in jumbo builds where code ends up in the same translation
unit so that the compiler notices things like this.

Bug: 773275
Change-Id: I64598e346e0dcbbac5348bd6ec9d903d2041d298
Reviewed-on: https://chromium-review.googlesource.com/844676
Reviewed-by: Shu Chen <shuchen@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#526284}
bratell
Remove non-ios code from ui/base's ios build
Touch code isn't used by ios so should not be compiled.

In jumbo builds some touch symbols but not others ended up
in an object file and then the ios linker got unhappy. This
used to work by "luck" (i.e. if not a single symbol is used in
an object file, then it doesn't matter if that object file
refers to non-existing symbols).

Bug: 773275
Change-Id: I08ea7005665a62728aeac1bf7cce16bca8be8402
Reviewed-on: https://chromium-review.googlesource.com/844714
Commit-Queue: Daniel Bratell <bratell@opera.com>
Commit-Queue: Avi Drissman <avi@chromium.org>
Reviewed-by: Avi Drissman <avi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#526228}
fs
Remove SVGElementRareData::owner_
This appears to have been dead/unused since the complicated weak
handling for SVGCursorElement was removed in
https://codereview.chromium.org/2522443002 (together with
SVGCursorElement itself.)

Simplify SVGElement::EnsureSVGRareData a little while at it.

Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I0e29e2830bc20fd595d41d72eb9c3ec23c2df2ce
Reviewed-on: https://chromium-review.googlesource.com/843023
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#526071}
bratell
Add missing include guard to test_overscroll_delegate.h
Change-Id: I3a9785519bfe9d6b10972bbe7b70a3c9c3f5fdbc
Reviewed-on: https://chromium-review.googlesource.com/842803
Reviewed-by: Camille Lamy <clamy@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#526029}
mpichlinski
Allow delegate to handle ContentMainRunner fatal initialization error.
Report ContentMainRunner fatal error during initialization to the delegate,
which may gracefuly exit with some message instead crashing.
Default behavior is CHECK(false).

Bug: 792839
Change-Id: I1e7c85c58f1a008e8818e2efb00dbba7f4774826
Reviewed-on: https://chromium-review.googlesource.com/815054
Reviewed-by: Ken Rockot <rockot@chromium.org>
Commit-Queue: Ken Rockot <rockot@chromium.org>
Cr-Commit-Position: refs/heads/master@{#527056}
bratell
Giving two different kDefaultTransationDurationMs unique names
The animation code has two different
kDefaultTransationDurationMs depending on what code is used.
This caused issues with jumbo builds where one of them
shadowed the other one (scary). This renames them so that they
have unique names, and also moves them into the same scope to
keep things consistent.

Bug: 773275
Change-Id: I77b5ab72e48a9c967105d8eb0b2610cfbd6f0b40
Reviewed-on: https://chromium-review.googlesource.com/841063
Reviewed-by: danakj <danakj@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#526028}
bratell
Deduplicate kInchInMm so that they don't clash in jumbo builds
There is one kInchInMm in the anonymous namespace in
fake_display_snapshot.cc and one in
chromeos/display_change_observer.cc. In jumbo builds they
end up in the same translation unit and have the same
anonymous namespace.

Since the constant is needed in more than one place, an easy change
is to move it to display_util.h.

Bug: 773275
Change-Id: I579a587786ea3fac5dd6dde85f51bd5ae1a62e69
Reviewed-on: https://chromium-review.googlesource.com/840024
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Dan Erat <derat@chromium.org>
Cr-Commit-Position: refs/heads/master@{#525814}
fs
[PE] Avoid integer overflows in EnclosingIntRect(const FloatRect&)
The size computation could potentially overflow, yielding an "empty"
result, which could have different consequences depending on the user.
In CullRect::UpdateCullRect for instance, the MapRect call could make
the cull rectangle appear empty causing visible elements to be culled.

Rather than using integers for the computing the enclosing rect, use
floats, and then cast that to an IntRect at the end. (The
IntRect(const FloatRect&) constructor clamps the input using clampTo.)

Adjust EnclosedIntRect similarly because it shares the same deficiency.

Bug: 793676
Change-Id: I63bcff3747dea7f29dac39a05d9cf179b0770030
Reviewed-on: https://chromium-review.googlesource.com/839521
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Xianzhu Wang <wangxianzhu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#525812}
bratell
Renamed two g_lock in ui/gfx to have more unique names
Recently a second g_lock joined the first g_lock in ui/gfx and
then they clashed in jumbo builds. This patch renames them
to match their use.

Bug: 773275
Change-Id: I9b13a8f225d0ee22aca621fa32d4c6872429af0a
Reviewed-on: https://chromium-review.googlesource.com/839765
Reviewed-by: Eric Willigers <ericwilligers@chromium.org>
Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#525771}
bratell
Give two different EnumMonitorCallback functions unique names
There are two classes in ui::display that enumerate monitors
to get information about them. They both used a local
callback named "EnumMonitorCallback" and those two functions
clashed in jumbo builds where they shared the same translation
unit.

Bug: 773275
Change-Id: Ibb0889705d28c0169a210bc3e83411adb66216c7
Reviewed-on: https://chromium-review.googlesource.com/836560
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Robert Liao <robliao@chromium.org>
Cr-Commit-Position: refs/heads/master@{#525672}
bratell
Rename one of two DisplayInfoLists in ui/display
There is a display::DisplayInfoList in
display_manager.h so creating another one by the same name
inside display is confusing. At least that is what the
compiler thinks in the jumbo project where they end up
being known in the same translation unit.

Bug: 773275
Change-Id: I545cc9e8a64cbf3e61435da49c50cd72e360c61e
Reviewed-on: https://chromium-review.googlesource.com/837761
Reviewed-by: Dan Erat <derat@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#525512}
bratell
Use differently named functions for each jpeg codec.
In ChromeOS there are two JPEG decoders. They have the same API
structure so the helper functions look the same. Unfortunately
they also have the same names so they clash in jumbo builds.

The methods are also unfortunately not reusable since they work
on different types (one work on libjpeg_turbo types, the other
on the IJG jpeg decoder types).

This patch adds the Ijg prefix to the types and functions used by
the "robust" codec.

Bug: 773275
Change-Id: I73b44c019ca72adbc3db04011c61550a0034ec85
Reviewed-on: https://chromium-review.googlesource.com/836899
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Cr-Commit-Position: refs/heads/master@{#525447}
bratell
Rename one of the two NOTIFY_OBSERVERS macros
There was still two NOTIFY_OBSERVERS macros and in jumbo builds
they triggered an error about macros being redeclared. This
patch renames the macro that implements observer handling
methods for Windows from NOTIFY_OBSERVERS to NOTIFY_OBSERVERS_METHOD.

Bug: 773275
Change-Id: Ie58fd1793b144b694a0a34bfa552569db3f8a200
Reviewed-on: https://chromium-review.googlesource.com/836611
Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#525333}
bratell
Use large (non-goma) jumbo chunks for Jumbo Linux x64
When you build with goma jumbo uses smaller units (up to
8 files per jumbo chunk). This is to be more parallel and
take advantage of the -j 1000 hardware.

Unfortunately many problems are only detected if you combine
many files in a unit so default goma builds would not find
those problems.

This patch changes one of the three Jumbo fyi builders to use
jumbo_file_merge_limit=50 which is the normal value for
non-goma jumbo builds. This way we should notice more problems
through the fyi builders.

Change-Id: Id7d49148e778a92648a1871d15dbf1c8a958af7e
Reviewed-on: https://chromium-review.googlesource.com/832435
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Reviewed-by: Bruce Dawson <brucedawson@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#524990}
jl
Rename conflicting `g_test_observer` variables
Two source files declared `g_test_observer` variables in the anonymous
namespace. In jumbo/unity builds, these conflict and cause compilation
errors. Give them more unique names to avoid the collision.

Change-Id: I904c5409039a9599480ca3a8fd7bbed4f48db1f6
Reviewed-on: https://chromium-review.googlesource.com/829173
Commit-Queue: Jens Widell <jl@opera.com>
Reviewed-by: Ken Rockot <rockot@chromium.org>
Cr-Commit-Position: refs/heads/master@{#524796}
jl
Drop `using namespace X` directives
They are not allowed by the Google C++ coding style.

Also, in jumbo/unity builds where the source files are included into a
larger translation unit, clang treats the them as header files, and warns
about such directives in the global namespace (-Wheader-hygiene).

Change-Id: I3079677651430f1fbeff2a79101aa7314a484488
Reviewed-on: https://chromium-review.googlesource.com/829135
Reviewed-by: Ken Rockot <rockot@chromium.org>
Commit-Queue: Jens Widell <jl@opera.com>
Cr-Commit-Position: refs/heads/master@{#524791}
bratell
Renaming one of the NOTIFY_OBSERVERS macros
ui/events/devices have two NOTIFY_OBSERVERS macros, similar but
not identical. This renames one of them NOTIFY_ANDROID_OBSERVERS
to avoid clashes in jumbo builds where they ended up in the
same translation unit.

Bug: 773275
Change-Id: I626bf809be342993bc9f455aab977e4918538446
Reviewed-on: https://chromium-review.googlesource.com/824882
Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#524752}
bratell
Deduplicated a kAnimationStartOrAfterHideOpacity constant
Both the floating keyboard container and the full width
keyboard container need kAnimationStartOrAfterHideOpacity
so instead of having two of them, this patch moves it to
container_behavior.h.

Bug: 773275
Change-Id: I1196570016881bd58e9f3c73f33f3a674d8fc607
Reviewed-on: https://chromium-review.googlesource.com/824274
Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#524746}
fs
[CI] Add SVGLengthContext::ResolveLengthPair helper
With geometric presentation attributes it's quite common to need to
resolve an <x, y> pair of Lengths to produce a point or a size.
Add a helper ResolveLengthPair() that accepts a pair of Lengths and
return a FloatPoint. Except for a reduction in LoC, it also amortizes
the cost of determining a viewport when percentages are used.

Use the new helper for 'cx' / 'cy' and 'rx' / 'ry' on <ellipse>,
'cx' / 'cy' on <circle>, 'x' / 'y', 'width' / 'height' and 'rx' / 'ry'
on <rect>, 'x' / 'y' and 'width' / 'height' on <image> as well as
'x' / 'y' on <use>.

Since this means using FloatPoint/FloatSize to a larger degree than
before, use the abilities (operators et.c) of these a bit more where
possible.

Bug: 400725
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I15f5c17190b060a7e8312d5e3e124846301804b9
Reviewed-on: https://chromium-review.googlesource.com/832606
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#524740}
fs
[PE] Invalidate <use> instances even when mutating from the parser
When a layout is triggered when the parser is interrupted, an instance
tree can be built for a <use> that references a subtree that contains
the insertion point of the parser. This <use> instance (or instances)
would then not be invalidated when the parsing resumed.

Invalidate instances of an element when its children changes even when
the mutation originates from the parser. (This condition was added in
3c2310f2e9e0947e390c25911b61cfe69e162a78 without further explanation
"Only invalidate SVGElementInstances when !changedByParser is set.". Due
to the lazyness of the shadow tree/instance rebuilding this will
hopefully not regress performance.)

Bug: 794594
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I58f3a74ef9812503c0111d3564dad8ee3527d27b
Reviewed-on: https://chromium-review.googlesource.com/832386
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#524726}
bratell
Compile fix jumbo builds, be specific about which testing to use
There are two namespaces named testing, there is ::testing
and there is ::blink::testing. Inside blink code you have to
write ::testing to be sure to get the root ::testing namespace.

Depending on how ignorant the compiler is, it might work anyway,
but in jumbo builds the compiler often knows about the
blink::testing namespace.

TBR=leon.han@intel.com

Change-Id: I7617e074dba5cabb813c3a823757e0ba0ce15008
Reviewed-on: https://chromium-review.googlesource.com/832607
Reviewed-by: Daniel Bratell <bratell@opera.com>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#524711}
tmoniuszko
Fix bookmark importing from Firefox
Bug: 638977
Change-Id: I3336f64fc9497417831afa24f8403a63b77797bb
Reviewed-on: https://chromium-review.googlesource.com/817435
Commit-Queue: Tomasz Moniuszko <tmoniuszko@opera.com>
Reviewed-by: Ilya Sherman <isherman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#524685}
wdzierzanowski
Avoid race in MSE_Widevine tests
When run with the stub Widevine CDM, these tests suffer from a race
between the result of a failed StubCdm::Decrypt() and a failed
StubCdm::UpdateSession().  The tests expect the latter, but the former
often arrives first.

By allowing the stub to InitializeVideoDecoder() successfully and
returning cdm::kNoKey upon DecryptAndDecodeFrame() attempt we avoid the
DecryptingDemuxerStream errors altogether, so there is no race anymore.

Bug: 768745
Test: 'browser_tests --gtest_filter=*MSE_Widevine*' pass when run with the stub Widevine CDM

Change-Id: I35a35d006d118f8f7f9a8a64cf9334017644f4ea
Reviewed-on: https://chromium-review.googlesource.com/831026
Reviewed-by: Xiaohan Wang <xhwang@chromium.org>
Commit-Queue: Wojciech Dzierżanowski <wdzierzanowski@opera.com>
Cr-Commit-Position: refs/heads/master@{#524663}
fs
[PE] SVG <use> 'x' and 'y' are presentation attributes
'x' and 'y' were turned into presentation attributes in
https://codereview.chromium.org/896773002 (r190180), but the property
values were not actually applied.
Apply the property values from ComputedStyle, cleaning up the
surrounding code a bit in the process by moving the "is a <use> element"
check into a method. Also fix the FIXME in SVGUseElement::ToClipPath by
using the computed transform from the LayoutObject, rather than
"manually" recomputing it. This code-path should already require a
LayoutObject for the element in question.

Bug: 400725, 697052
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: Iff261e468c4476cfb98efbadd6989ada027e47ab
Reviewed-on: https://chromium-review.googlesource.com/829314
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#524385}
bratell
Prepare service_worker tests for jumbo compilation
To avoid clashes between test data variables and similar changes,
this patch puts tests that would collide in custom namespaces
following a pattern used successfully in Blink.

content unittests needs about 60 CPU minutes to compile normally.
With jumbo that can be brought down to 4-6.

Bug: 746953
Change-Id: Ic573361fed81bbd46a97823e9761f94088d51814
Reviewed-on: https://chromium-review.googlesource.com/826637
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Tsuyoshi Horo <horo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#524357}
jl
Undefine another ENUM_CASE macro after use
This avoids collisions in jumbo/unity builds.

Change-Id: Ibd47b3c0be950c6f9fb5baf206612203c99e9b35
Reviewed-on: https://chromium-review.googlesource.com/827132
Reviewed-by: Pavel Yatsuk <pavely@chromium.org>
Commit-Queue: Jens Widell <jl@opera.com>
Cr-Commit-Position: refs/heads/master@{#524351}
bratell
Prepare various storage tests in content for jumbo compilation
To avoid clashes between test data variables and similar changes,
this patch puts tests that would collide in custom namespaces
following a pattern used successfully in Blink.

Bug: 746953
Change-Id: I093f221ca2017c095f0751d52d70efa44e3fed31
Reviewed-on: https://chromium-review.googlesource.com/826636
Reviewed-by: Joshua Bell <jsbell@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#524271}
bratell
Deduplicate and rename some constants in X11 clipboard code
In jumbo builds symbols with the same name that end up in
the same translation unit might clash even if they don't
normally clash. That was the case with a couple of constants
in the ui/base clipboard code for X11.

This patch shares some of the constants (the ones with the same
value) and renames the remaining one.

Bug: 773275
Change-Id: I718cecdf5e490de17217962767322f3c847a3e53
Reviewed-on: https://chromium-review.googlesource.com/824522
Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#524067}
bratell
Add support for jumbo in content/renderer
Jumbo is a unity build system for Chromium, aimed at dramatically
reducing the compilation times.

So far support has been added to blink, v8, content/browser and
a few smaller targets, reducing the effort by about half. How
that maps to real time depends on hardware. It scales proportionally
for 4 core/8 thread machines, but not in 48 core machines or in
goma.

The effort to compile content/renderer in a use_jumbo_build=true
build is right now about 6% of the total effort when compiling
chrome+content_shell+blink_tests. That is about 51 CPU minutes
on the test hardware. With jumbo that can be brought down to 6-7
CPU minutes, saving about 5 minutes real time on a 4 core/8 thread
machine for every full compilation.

Part of the support is to split away IPC code generation since
its macro based design isn't compatible with jumbo. See
comment in the code for more information.

Bug: 746953
Change-Id: If0cfe05986cdfbdd4974f03119c46c3493f6c63e
Reviewed-on: https://chromium-review.googlesource.com/822417
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#524063}
bratell
Prepare appcache tests for jumbo compilation
To avoid clashes between test data variables and similar changes,
this patch puts tests that would collide in custom namespaces
following a pattern used successfully in Blink.

Bug: 746953
Change-Id: I49b9d127c513ead92c4743d6e5701b80a91db69e
Reviewed-on: https://chromium-review.googlesource.com/824268
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Joshua Bell <jsbell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#524042}
bratell
Removing dead TransportDIB member sequence_num_
Nobody set or read the ui::surface::TransportDIB member
sequence_num_ and that made the compiler upset in jumbo builds
where the compiler sees more of the whole picture.

Change-Id: Ia59e824e9e6175870065336c6403958878d2dba0
Reviewed-on: https://chromium-review.googlesource.com/826063
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#524031}
bratell
Renaming one of two g_linux_input_method_context_factory
Both the real and the testing version of
ui::LinuxInputMethodContextFactory were named
g_linux_input_method_context_factory which caused collisions
in jumbo builds. This renames the testing one to
g_linux_input_method_context_factory_for_testing

Bug: 773275
Change-Id: Ia11a8a16ce5a40ef4a6469fe5bdcfeab2323e068
Reviewed-on: https://chromium-review.googlesource.com/826064
Reviewed-by: Yuichiro Hanada <yhanada@chromium.org>
Reviewed-by: Shu Chen <shuchen@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#524030}
bratell
Gave two kClassIdentifiers unique names
In jumbo builds several cc files are compiled in the same
translation unit and then the different kClassIdentifier
symbols clashed. This renames them to
kPeerConnectionRemoteTrackIdentifier
and
kProcessedLocalAudioSourceIdentifier

Bug: 746953
Change-Id: I7fe95ebbef69f4dd3b47258417cc917ba441dd91
Reviewed-on: https://chromium-review.googlesource.com/822191
Reviewed-by: Sergey Ulanov <sergeyu@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#524029}
jl
Enable jumbo for //components/sync
This reduces basic compile time by approximately 90 % (from 830 CPU
seconds to 83 CPU seconds on a pretty standard machine.)

Change-Id: I75a8c0d9e2d057380f89628891987f0acbaa86e5
Reviewed-on: https://chromium-review.googlesource.com/823033
Reviewed-by: Pavel Yatsuk <pavely@chromium.org>
Commit-Queue: Jens Widell <jl@opera.com>
Cr-Commit-Position: refs/heads/master@{#526224}
bratell
Declare //ui template instantiations so that all know about it
There were code in ui/views that didn't know about the class
property type specialization for ::wm::ShadowElevation. This was
solved by the linker later since there was other instances
of the right template.

In jumbo builds the compiler noticed that there was code
trying to access the template before the specialization was known
and that is a C++ error so the code did not compile.

The fix is to declare the specialization so that all code knows
about it.

Bug: 773275
Change-Id: Ifa4bc0088a8525a7a9907037d746ecb542dfbf71
Reviewed-on: https://chromium-review.googlesource.com/824665
Reviewed-by: Scott Violet <sky@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#523903}
bratell
Removing "using namespace" from ui/events code
using namespace includes a full other namespace into the
global scope and that doesn't work well with jumbo builds for two
reasons: Too many symbols, and "using namespace" isn't allowed
in something that is included.

It is also not allowed by the style guide.

This patch removes the using namespace and uses explicit
namespaces instead. It also changes some repetitive code
to use macros to make it less repetitive and easier to read.

Bug: 773275
Change-Id: If45f81b435920bd9048567ec65f9b142046e86ea
Reviewed-on: https://chromium-review.googlesource.com/824843
Reviewed-by: Timothy Dresser <tdresser@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#523808}
fs
[PE] Fix text selection of <svg:text> subject to 'textLength'
With 'textLength' and 'lengthAdjust' with the value 'spacingAndGlyphs',
each SVGTextFragment is subject to an additional scale factor that
stretches the glyphs along the x- or y-axis.
This scale factor was not (any longer) taken into account by
SVGInlineTextBox::OffsetForPositionInFragment, which resulted in the
incorrect offset being calculcated.
Apply the (inverse) length_adjust_scale from SVGTextFragment before
querying the font for an offset.

Remove the |include_partial_glyphs| argument from
SVGInlineTextBox::OffsetForPositionInFragment since it's always true,
and also use 'float' rather LayoutUnit for the position.
Remove the dead |horizontal_glyph_stretch_| member variable from TextRun
since it's no longer used (since the simple shaper path was removed.)

Bug: 793075
Change-Id: Ia7d369d914f5afd87d198b7b21077e180fc8bc59
Reviewed-on: https://chromium-review.googlesource.com/824162
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Cr-Commit-Position: refs/heads/master@{#523787}
bratell
Moved two kSlopEpsilon constants that clashed in jumbo builds
Both gesture_detector.cc and scale_gesture_detector.cc have
a local constant kSlopEpison with the same value. Since
I could find no suitable shared place for it, I moved them
into a tighter scope. That way they will not clash in jumbo
builds where several cc files share the same translation
unit.

Bug: 773275
Change-Id: I22c6a452532fbe0b2be3fddb29388a2d65aa901a
Reviewed-on: https://chromium-review.googlesource.com/824241
Reviewed-by: Timothy Dresser <tdresser@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#523784}
bratell
Rename one of two ItemView classes
There is one ItemView class in notification_view_md.h so if that
header is in the same translation unit as notification_view.cc
then the local ItemView class will fail to compile. That happens
in jumbo builds.

Bug: 773275
Change-Id: I2911c4cbcc73df186d9520d4182a186a76d2ce34
Reviewed-on: https://chromium-review.googlesource.com/824364
Commit-Queue: Daniel Bratell <bratell@opera.com>
Commit-Queue: Peter Beverloo <peter@chromium.org>
Reviewed-by: Peter Beverloo <peter@chromium.org>
Cr-Commit-Position: refs/heads/master@{#523774}
mharanczyk
Add missing blink_header dep to //third_party/WebKit/Source/platform/heap.
Bug: 794207
Change-Id: Icc7a0654a643c53ecc6cd68d2c3a73e6bd394a81
Reviewed-on: https://chromium-review.googlesource.com/823030
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Commit-Queue: Kentaro Hara <haraken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#523749}
bratell
Give some ServiceWorker and TLS related symbols more unique names
In jumbo builds more code compile in the same translation unit
so it's more important to keep the names unique to avoid
compilation clashes.

Bug: 746953
Change-Id: I649731d0725a9c5b5ab0ec72775cc81ea54434a9
Reviewed-on: https://chromium-review.googlesource.com/819556
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Reviewed-by: Tsuyoshi Horo <horo@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#523737}
bratell
Gave 3 kMaxMessageChunkSize constants unique names.
There are three very similar pieces of code with identical
constants controlling and this patch renames them so
that they don't clash in jumbo builds.

Jumbo builds compile multiple cc files in the same translation
unit which means that those cc files will share the same
anonymous namespace.

Bug: 746953
Change-Id: I85462687798819212b78926c92d3351f44039583
Reviewed-on: https://chromium-review.googlesource.com/822474
Reviewed-by: Tsuyoshi Horo <horo@chromium.org>
Reviewed-by: Dmitry Gozman <dgozman@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#523723}
bratell
Avoid importing the symbol name "Result"
There are many types in Chromium named Result. When importing
that name into the global (or content) namespace with a
using statement, you run the risk of clashing with another
Result type. That happened in jumbo builds where more code
is compiled per translation unit.

This patch uses the fully qualified name instead of just
Result instead.

Bug: 746953
Change-Id: I5ccfb5e6b70712372a764c89b40a2a9340cc33fb
Reviewed-on: https://chromium-review.googlesource.com/822335
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Takashi Toyoshima <toyoshim@chromium.org>
Cr-Commit-Position: refs/heads/master@{#523722}
bratell
Renamed local BindInterface since it clashed with template
There is a template named BindInterface in
content/public/common/bind_interface_helpers.h so to avoid
compilation failures when that header is included directly
or indirectly (as in jumbo builds), it's better to call
local functions something else than BindInterface.

This renames BindInterface -> BindNamedInterface.

Bug: 746953
Change-Id: Ib595232b8c6c9ae58b5321ff58ad1c2927787631
Reviewed-on: https://chromium-review.googlesource.com/822433
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#523721}
jl
Stop importing syncable::WriteTransaction into syncer namespace
In jumbo/unity builds it conflicts with syncer::WriteTransaction defined
in components/sync/syncable/write_transaction.h.

Change-Id: I19a325af6299d955577aec10d36f21b948859035
Reviewed-on: https://chromium-review.googlesource.com/822091
Reviewed-by: Pavel Yatsuk <pavely@chromium.org>
Commit-Queue: Jens Widell <jl@opera.com>
Cr-Commit-Position: refs/heads/master@{#523502}
jl
Stop importing crypto::Encryptor into syncer namespace
In jumbo/unity builds, it conflicts with syncer::Encryptor defined in
components/sync/base/encryptor.h.

Change-Id: I0b9c4e6eafd88eae46892ff97f2ade41f8c0b99a
Reviewed-on: https://chromium-review.googlesource.com/822090
Reviewed-by: Pavel Yatsuk <pavely@chromium.org>
Commit-Queue: Jens Widell <jl@opera.com>
Cr-Commit-Position: refs/heads/master@{#523491}
jl
Undefine ENUM_CASE macro after use
Multiple source files in components/sync/ define and use a macro named
ENUM_CASE. Some already undefine it afterwards, but some don't and that
causes issues in jumbo/unity builds where all the source files are
compiled in a single translation unit.

Change-Id: I0ce5d1d0e2008f52c68c8dd174d537b7ef1a42f1
Reviewed-on: https://chromium-review.googlesource.com/817280
Reviewed-by: Pavel Yatsuk <pavely@chromium.org>
Commit-Queue: Jens Widell <jl@opera.com>
Cr-Commit-Position: refs/heads/master@{#523378}
bratell
Rename one of the FrameMaps to FrameProxyMap
There are two types named FrameMap, one in render_frame_impl.cc
and one in render_frame_proxy.cc. As long as the type isn't
exported that works, but in jumbo builds the cc files are
compiled in the same translation unit which causes collisions.

Bug: 746953
Change-Id: I582d7f032caba1a201ac72c8181eb4c2432cc5bf
Reviewed-on: https://chromium-review.googlesource.com/819636
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#523369}
bratell
Renamed two identical methods that checked hwacc state
There is two identical methods named
PP_HardwareAccelerationCompatible and I'm not sure what is
a good place to deduplicate them so this patch only renames
them to unblock jumbo work in content/renderer. The methods
with the same name clashes in jumbo builds where many
cc files are compiled in the same translation unit.

Bug: 746953
Change-Id: I12361f3226bdc7a3c6113201183ec26b263917f4
Reviewed-on: https://chromium-review.googlesource.com/819950
Reviewed-by: Bill Budge <bbudge@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#523221}
bratell
Rename two of the ReleaseOriginalFrame methods
In jumbo builds, the three different ReleaseOriginalFrame
methods in content/renderer/media ended up in the same
translation unit and then Bind() didn't know which one to use

Bug: 746953
Change-Id: I584df28230d29bbc80d9d6cd2884300b7a3d9409
Reviewed-on: https://chromium-review.googlesource.com/819611
Reviewed-by: Guido Urdaneta <guidou@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#523213}
bratell
Remove the last X11 includes in //ui outside ui/gfx/x/*
X11 header files are infamous for creating macros with common
names such as None, True, False, Status, Bool, ...

To save oursaves the mess that creates, they are now wrapped
in a header, ui/gfx/x/x11.h, which puts those symbols in the
x11 namespace and removes the global macros.

This means we can remove various undefs in files that have had
problems in the past.

Bug: 782184
Change-Id: Ie48fe619e3101344d53ea837b0b21570516185ca
Reviewed-on: https://chromium-review.googlesource.com/814676
Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#523149}
bratell
[jumbo] Too many CurrentWorkerId()
cache_storage and notifications both had "CurrentWorkerId()" with
the same (trivial) implementation but used differently. For
jumbo builds to not have those clash, this patch renames the
one in notifications -> NotificationWorkerId()

Bug: 746953
Change-Id: Ic00a4e23448bd2d50315a5561f798ed40be56fdc
Reviewed-on: https://chromium-review.googlesource.com/819558
Commit-Queue: Daniel Bratell <bratell@opera.com>
Commit-Queue: Avi Drissman <avi@chromium.org>
Reviewed-by: Avi Drissman <avi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#523146}
bratell
[jumbo] Avoid using the same kMaxNumberOfBuffer name everywhere
In jumbo many files compile together in the same translation
unit and then they share anonymous namespace so if they
use the same constant name, such as kMaxNumberOfBuffers or
kDefaultNumberOfBuffers, they will clash.

Bug: 746953
Change-Id: I0ce707eac13d4f928e482ee62f0d112c69900dae
Reviewed-on: https://chromium-review.googlesource.com/819830
Commit-Queue: Daniel Bratell <bratell@opera.com>
Commit-Queue: Avi Drissman <avi@chromium.org>
Reviewed-by: Avi Drissman <avi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#523142}
fs
[PE] Fix transform-origin on SVG <text>
LayoutSVGText would not compute the correct transform if subjected to a
transform-origin (or transform) with percentages, since the transform
had to be computed early in UpdateLayout in order to allow a font to be
chosen based on the current transform.

Rearrange the code in LayoutSVGText::UpdateLayout a bit to allow the
transform computation to use the correct bounding box, but also compute
a tentative transform before updating the font and its metrics.

Remove the special-case in SVGElement::CalculateTransform and simplify
accordingly.

Bug: 225799
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I34728dfeaafba72c9f3195a29fbdd14673d186c2
Reviewed-on: https://chromium-review.googlesource.com/817734
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#523141}
bratell
Remove X11 includes and replace with the ui/gfx/x/x11.h wrapper
X11 headers pollute the global namespace with macros with
common words like None, Status, False. To avoid problems
because of that we now wrap X11 includes in ui/gfx/x/x11.h
and move all problematic words to the x11 namespace.

Bug: 782184
Change-Id: I81859c8aabae677c40614d3c26036c5d4d1e715a
Reviewed-on: https://chromium-review.googlesource.com/819731
Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#523121}
bratell
[jumbo] undef STATIC_ASSERT_ENUM after use
Many files define their own STATIC_ASSERT_ENUM macro. When
those files, in a jumbo build, end up in the same translation
unit, there will be clashes.

For macros that clash, the simplest fix is to undef them after
use to reduce the scope where the symbol is available.

Bug: 746953
Change-Id: Id0d22ed46663c79ce5a43e5f09420b1758bf1d88
Reviewed-on: https://chromium-review.googlesource.com/819633
Commit-Queue: Daniel Bratell <bratell@opera.com>
Commit-Queue: Avi Drissman <avi@chromium.org>
Reviewed-by: Avi Drissman <avi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#523116}
bratell
Avoid using GetMessage in Windows since its a Win macro.
Depending on whether certain headers had been included,
GetMessage was a macro that expanded to GetMessageW. This
caused later linker errors in jumbo builds.

This patch renames the function GetIpcMessage to avoid any
confusion.
Alternatives are:
* #undef the macro (can cause problems with later code)
* Make sure that everyone that includes dwrite_font_fake_sender_win.h
also has Windows.h included so that the macro is always there.

Bug: 746953
Change-Id: Ia172ee74dc430c5fb25d676f018695dc001f3470
Reviewed-on: https://chromium-review.googlesource.com/819552
Commit-Queue: Avi Drissman <avi@chromium.org>
Reviewed-by: Avi Drissman <avi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#523107}
bratell
Windows jumbo compile fix. NO_ERROR is a macro in Windows
Windows headers define a macro named NO_ERROR so it is
best to avoid that name. This renames the new NO_ERROR
enum value to CBOR_NO_ERROR, similar to GL_NO_ERROR.

Bug: 780504
Change-Id: I83aa3b83b9239659c296687a9109f255b272a1ce
Reviewed-on: https://chromium-review.googlesource.com/819251
Reviewed-by: Balazs Engedy <engedy@chromium.org>
Reviewed-by: Mike West <mkwst@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#523097}
fs
Remove local BlendFloatPoint from SVGPathBlender.cpp
AnimationUtilities.h has a Blend(...) overload for FloatPoints - which
differs only by the type of the |progress| argument (double vs. float),
so use the one from AnimationUtilities.h.
Also reduce type-impedance by making |progress_| and |add_types_count_|
from SVGPathBlender::BlendState double and float respectively, since these
conversions are otherwise done over and over.

Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I34801971030ba082a2b2ebe66c1227314b6a5709
Reviewed-on: https://chromium-review.googlesource.com/816799
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#522777}
bratell
[jumbo] Ignore some more file types people put in sources lists
*.js and *.css files (used in //extensions) are not dangerous
to have in sources lists so silently let them be.

Bug: 787836
Change-Id: I8dc2c16505594ed5342cad008dc1ca8b5a499b73
Reviewed-on: https://chromium-review.googlesource.com/814554
Reviewed-by: Bruce Dawson <brucedawson@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#522731}
bratell
Add support for jumbo builds to ui/views
Jumbo is unity build system for Chromium, where files are
merged before compilation. This gives a much lower resource
requirement for compiling since headers only have to be
compiled once and only one set of template instances has to
be generated (and because of some other reasons).

This is expected to lower the resource usage for compiling
chrome+content_shell+blink_tests by 1%.

Bug: 773275
Change-Id: I6db13afe6147a9186d48c6796b7331d502ea939c
Reviewed-on: https://chromium-review.googlesource.com/786471
Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#522724}
bratell
Replace X11 includes in media with ui/gfx/x/x11.h
X11 header files are infamous for creating macros with common
names such as None, True, False, Status, Bool, ...

To save oursaves the mess that creates, they are now wrapped
in a header, ui/gfx/x/x11.h, which puts those symbols in the
x11 namespace and removes the global macros.

I believe the references to min and max came from an include of
<X11/Xlibint.h>. I can't find such an include anymore and
the one in user_input_monitor_linux.cc doesn't seem needed so
I removed all undefs of min and max and all includes of that
header.

Bug: 782184
Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
Change-Id: I3a09cccee04eb312ab6b2575be01753df8a1f137
Reviewed-on: https://chromium-review.googlesource.com/806217
Reviewed-by: Scott Violet <sky@chromium.org>
Reviewed-by: Fredrik Hubinette <hubbe@chromium.org>
Reviewed-by: Dan Erat <derat@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#522723}
bratell
Remove a dead code block in content/common/BUILD.gn
A code block for linux without use_seccomp_bpf tried to
remove files that were never added. Since it doesn't
crash, the code is unused.

Change-Id: Ib0bd9d3c9dffa400f3be5c5027c9f959e62124d2
Reviewed-on: https://chromium-review.googlesource.com/814398
Reviewed-by: Avi Drissman <avi@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#522561}
bratell
Inline ConvertSyncSocketHandle to avoid duplicate symbols
The symbol name ConvertSyncSocketHandle is longer than the
code so inlining it makes the code shorter and possibly smaller.

This is primarily triggered by jumbo build errors.

Bug: 746953
Change-Id: I661209ae56c7c4605ed0ba7426d19eecc095f6e9
Reviewed-on: https://chromium-review.googlesource.com/814674
Reviewed-by: Bill Budge <bbudge@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#522558}
bratell
Be explicit about the testing namespace because there are two
There is both a ::testing and ::blink::testing namespace and if
you refer to just "testing" inside the ::blink namespace you can
get either one depending on what the compiler knows.

This broke jumbo builds where the compiler knew about
::blink::testing and thought "testing" meant ::blink::testing
instead of ::testing.

The fix is to use the :: prefix.

Change-Id: I15b2502a5b15ef585816faae843a97b3d2d73c93
Reviewed-on: https://chromium-review.googlesource.com/813775
Reviewed-by: Mounir Lamouri <mlamouri@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#522401}
fs
Remove dead Blend() code
(last use probably removed by https://codereview.chromium.org/2750293003
and similar earlier CLs.)

ShadowList: :Blend and BasicShape::Blend/CanBlend are no longer used
Change-Id: I3d9690768f64fa8c602b55cb1a0bf8654100e04c
Reviewed-on: https://chromium-review.googlesource.com/809012
Reviewed-by: Stephen McGruer <smcgruer@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#522104}
bratell
Declare //ui template instantiations so that all know about it
There were code in ui/views that didn't know about the class
property type specialization for gfx::Insets* and Views* so they
got the default template implementation.

In jumbo builds the compiler noticed that there was code
using the default implementation before the specialization
appeared and it triggered a compilation error.

The fix is to declare the specialization so that all code uses it.

Bug: 773275
Change-Id: Ifa925a2002ba930af16dc6940a04b2a480721438
Reviewed-on: https://chromium-review.googlesource.com/786190
Reviewed-by: Scott Violet <sky@chromium.org>
Reviewed-by: David Reveman <reveman@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#521803}
fs
Make the Length(LengthType) constructor explicit
Per coding style:

https: //google.github.io/styleguide/cppguide.html#Implicit_Conversions
Change-Id: Ic7a05422e72b3e445236b054d887b5467f79ab6c
Reviewed-on: https://chromium-review.googlesource.com/809010
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#521786}
bratell
Replace X11 includes in viz with ui/gfx/x/x11.h
X11 header files are infamous for creating macros with common
names such as None, True, False, Status, Bool, ...

To save oursaves the mess that creates, they are now wrapped
in a header, ui/gfx/x/x11.h, which puts those symbols in the
x11 namespace and removes the global macros.

Bug: 782184
Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel
Change-Id: Ida4d26422f44edda1a0120f52ffbaa4e437ab012
Reviewed-on: https://chromium-review.googlesource.com/805814
Reviewed-by: danakj <danakj@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#521740}
bratell
Replace X11 includes in //gpu with ui/gfx/x/x11.h
X11 header files are infamous for creating macros with common
names such as None, True, False, Status, Bool, ...

To save oursaves the mess that creates, they are now wrapped
in a header, ui/gfx/x/x11.h, which puts those symbols in the
x11 namespace and removes the global macros.

Bug: 782184
Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
Change-Id: I10a9acecb8e7adacd170d1080a411bc9d1e49f79
Reviewed-on: https://chromium-review.googlesource.com/806275
Reviewed-by: Victor Miura <vmiura@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#521659}
fs
Eliminate some unnecessary copies of Lengths
Using the Length store directly should work fine most of the time, and
avoids the fairly bloaty Length copy constructor and destructor pair.

Some minor massaging of ValueForPositionOffset required, but otherwise
straightforward.

Change-Id: I1b1d0b14f3897fc4173eab123cc3b241b28c70d3
Reviewed-on: https://chromium-review.googlesource.com/806834
Reviewed-by: Rune Lillesveen <futhark@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#521473}
fs
Simplify some Length comparisons with 'auto'
Using Length::IsAuto() is more efficient (and generates significantly
less code) than constructing a new Length and comparing with that.

Also replace some open-coded "is auto" checks with said method, and
simplify the surrounding code a bit.

Change-Id: I974a28a0eef969b56557428eb019f7cf1dac18c1
Reviewed-on: https://chromium-review.googlesource.com/806170
Reviewed-by: Rune Lillesveen <futhark@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#521456}
bratell
Support jumbo in content/{utility,public,gpu,network}
Jumbo is a unity build system aimed at dramatically reducing
compilation times by merging cc files into larger translation
units.

This change will remove about 6 CPU minutes from the effort to compile
chrome+content_shell+blink_tests on the reference hardware. This is
slightly less than 1% of the total effort in a jumbo build.

Bug: 746953
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_mojo
Change-Id: I19856815c50724004d11a7e5342e84bff802e6f4
Reviewed-on: https://chromium-review.googlesource.com/801013
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Jochen Eisinger <jochen@chromium.org>
Cr-Commit-Position: refs/heads/master@{#521317}
bratell
Clear //remoting from direct X11 includes
X11 headers pollute the global namespace. Instead we use a
wrapper header (ui/gfx/x/x11.h) that puts important symbols
in the x11 namespace and removes them from the global namespace.

Bug: 782184
Change-Id: I3173f2dde17e6991cc31bd89ceaee8e651ccaf3f
Reviewed-on: https://chromium-review.googlesource.com/801390
Reviewed-by: Jamie Walch <jamiewalch@chromium.org>
Reviewed-by: Dan Erat <derat@chromium.org>
Reviewed-by: Scott Violet <sky@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#521303}
bratell
Adding jumbo to blink/common.
All of blink already supports blink, except for code that has been
overlooked. This directory, third_party/WebKit/Source/common,
was such an overlooked piece of code.

Change-Id: Ifc9cd0ab64f99d686d3139c367d576a7390408d3
Reviewed-on: https://chromium-review.googlesource.com/796793
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#520918}
mpichlinski
CHR-6375: [Windows] Fixed crash on fallback from ANGLE to SwiftShader.
During fallback from ANGLE to SwiftShader it is required to unload
ANGLE libraries, otherwise SwiftShader will fail to load its own
libGLESv2.dll.

Fixed ANGLE platform reset.

Fixed order in ShutdownGL.

Bug: 760063
Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
Change-Id: If8797b49f2b5d04cb610302f96c82011dee9b3a9
Reviewed-on: https://chromium-review.googlesource.com/774296
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org>
Reviewed-by: Antoine Labour <piman@chromium.org>
Reviewed-by: Frank Liberato <liberato@chromium.org>
Cr-Commit-Position: refs/heads/master@{#520730}
bratell
Change X11/* includes to ui/gfx/x/x11.h includes
Includes from the X11 system libraries declare macros with common
names such as None, True, False, Status and those complicate
the life for other code. To avoid that complication we have
moved the common symbol names to the namespace x11 and changed
so that you include "ui/gfx/x/x11.h" instead.

Bug: 782184
Change-Id: I3d2893425bb79cb29d6c5a602512a0e8d3cc30cd
Reviewed-on: https://chromium-review.googlesource.com/800550
Reviewed-by: Scott Violet <sky@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#520671}
bratell
Support jumbo in third_party/WebKit/Source/platform/instrumentation
Jumbo is a unity build system for Chromium, aimed at reducing
compilation times by merging cc files into larger
translation units.

This is 0.1% of the total build time so not very much but also
the final remaining part of blink/platform. And all the CPU
minutes add up.

Bug: 761475
Change-Id: Id0643d869960a660a91a4f3a9a23b4585f9e0073
Reviewed-on: https://chromium-review.googlesource.com/785678
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#520656}
bratell
Forward declare WebUIMessageHandler in the right namespace
A header forward declared a WebUIMessageHandler in the global
namespace which seriously confused jumbo builds since the
actual WebUIMessageHandler is in the content namespace.

Change-Id: I623b2f729d03dbea199c27f62790f8119d0e3926
Reviewed-on: https://chromium-review.googlesource.com/800933
Commit-Queue: Achuith Bhandarkar <achuith@chromium.org>
Reviewed-by: Achuith Bhandarkar <achuith@chromium.org>
Cr-Commit-Position: refs/heads/master@{#520646}
wdzierzanowski
Prevent flakiness of histogram tests in //media
Initialize base::StatisticsRecorder early in the test suite to ensure
histogram pointers created at any moment during test execution are
available globally.

See https://codereview.chromium.org/2901703002 for a more complete
explanation.

Change-Id: Ib2c81dd8ef960168355c53dbc80f2a7833153483
Reviewed-on: https://chromium-review.googlesource.com/800431
Reviewed-by: Dale Curtis <dalecurtis@chromium.org>
Commit-Queue: Dale Curtis <dalecurtis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#520632}
bratell
Fix include guard for test_fileapi_operation_waiter.h
Change-Id: Iaa408e8195368c736370a8aee78fe3ceec741a59
Reviewed-on: https://chromium-review.googlesource.com/788050
Reviewed-by: Avi Drissman <avi@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#520346}
bratell
Clearing content from include <X11/*>
X11 headers leak a lot of macros named things like None, Status, True,
False and they cause problems with normal code. To avoid that we now
wrap all commonly named symbols in an x11 namespace and include
"ui/gfx/x/x11.h" instead of <X11/*>.

Bug: 782184
Change-Id: I37bf100f2d2acc5d51ec62051e90939b56d9f690
Reviewed-on: https://chromium-review.googlesource.com/797034
Reviewed-by: Antoine Labour <piman@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#520344}
bratell
Add support for jumbo builds to ui/aura
Jumbo is unity build system for Chromium, where files are
merged before compilation. This gives a much lower resource
requirement for compiling since headers only have to be
compiled once and only one set of template instances has to
be generated (and because of some other reasons).

This is expected to lower the resource usage for compiling
chrome+content_shell+blink_tests by 0.5%.

Bug: 773275
Change-Id: I1be67ab58e42ea8fbe8537f719b05ca3082aa3c5
Reviewed-on: https://chromium-review.googlesource.com/786470
Reviewed-by: Scott Violet <sky@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#520297}
fs
Update the computed transform when the reference box changes
When the object bounding box (for 'fill-box') or the viewport (for
'view-box') changes, we need to update the transform as well.
Add a bool to LayoutSVGShape to track if the transform depends on the
reference box, to make checking this quicker.

Bug: 595829
Change-Id: Ie7429553e78b08f7a574b1e7beae30c738250078
Reviewed-on: https://chromium-review.googlesource.com/796271
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Cr-Commit-Position: refs/heads/master@{#520259}
fs
A 'transform-box' change can yield a different transform
We wouldn't invalidate as needed if the 'transform-box' property changed
its value.

Bug: 595829
Change-Id: Ibcaa9e94b54b99724f2d3e1ca5dedd868d85b776
Reviewed-on: https://chromium-review.googlesource.com/796213
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#520211}
bratell
Adding include guard to mock_leveldb_wrapper.h
Change-Id: Idf7504a625141e1177b4fe2457608847e7120fc4
Reviewed-on: https://chromium-review.googlesource.com/797031
Commit-Queue: Avi Drissman <avi@chromium.org>
Reviewed-by: Avi Drissman <avi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#520139}
fs
WPT tests for the 'transform-box' property
Basic tests for 'fill-box' and 'view-box' with various viewport
configurations.

Bug: 595829
Change-Id: I81ec92e958c5ec240c7932219371b6c5369f5ac5
Reviewed-on: https://chromium-review.googlesource.com/796211
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#520111}
fs
Make stroke bounding boxes for <line> tighter
Since <line> elements are just a two point line segment, it does not
have any line joins and thus needn't apply any correction for the miter.

Bug: 435097, 788340
Change-Id: Ie7e9d89e0f7c741cf7cf40b3af82521869bb5b54
Reviewed-on: https://chromium-review.googlesource.com/790294
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#519779}
bratell
Renaming the Mac specific MenuController -> MenuControllerCocoa
There were two public classes, both in //ui, named MenuController
and they clashed in jumbo builds and probably contributed to
some confusion.

This patch renames the one for Mac MenuControllerCocoa

Bug: 773275
Change-Id: I3d0d3e98a120c0df3da47cc691b48cdf89e51d6f
Reviewed-on: https://chromium-review.googlesource.com/791610
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Avi Drissman <avi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#519414}
fs
Override CanRender in StyleInvalidImage
A StyleInvalidImage can never be rendered (GetImage always return
nullptr), so returning true - like the base class does - seems to be
sending the wrong signals.

Bug: 773272
Change-Id: I5ca20db512ce8b0e92546d626a4a6a2d85ed7908
Reviewed-on: https://chromium-review.googlesource.com/785651
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#519390}
fs
Add documentation to the StyleImage hierarchy
Bug: 773272
Change-Id: I643ef81395c1f5aa051265bb6fe90073289948c4
Reviewed-on: https://chromium-review.googlesource.com/785650
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Cr-Commit-Position: refs/heads/master@{#519355}
bratell
Jumbo compile fix: Rename one of the TaskQueueManagerForTest
There are two (identical but small) TaskQueueManagerForTest
classes in renderer_scheduler_test_support.cc and
create_task_queue_manager_for_test.cc.

In jumbo builds where these files are compiled in the same
translation unit, they will clash and cause compilation errors.

This patch renames on of them
TaskQueueManagerForRendererSchedulerTest

(Followup to

https: //chromium-review.googlesource.com/c/chromium/src/+/763511 )
Change-Id: Ia282d00e2982744d8842df17455eaf599f2bd280
Reviewed-on: https://chromium-review.googlesource.com/790514
Reviewed-by: Sami Kyöstilä <skyostil@chromium.org>
Reviewed-by: Alexander Timin <altimin@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#519318}
bratell
Jumbo build fix: Too many Mixin classes in oilpan tests.
Both HeapTest.cpp and IncrementalMarkingTest.cpp use local
test classes named Mixin. When compiled together in the
same translation unit, it will not compile.

TBR=haraken@chromium.org

Change-Id: Idfdfae3a9d81c5a1ad7d039818e06e11157806ef
Reviewed-on: https://chromium-review.googlesource.com/789863
Reviewed-by: Daniel Bratell <bratell@opera.com>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#519292}
bratell
Gave two global instance variables unique names
in jumbo builds two files with global variables named
instance clashed. This renames them to
g_transient_window_client_instance and
g_window_stacking_client_instance

Bug: 773275
Change-Id: I29dd9ef7e792959b128e99242b6ec6e13be183a8
Reviewed-on: https://chromium-review.googlesource.com/786236
Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#519277}
fs
A stroke-width of zero should not generate geometry
A stroke-width of 0 is a valid value, but "is not painted" according to
spec. This can be interpreted as not generating any geometry, and so not
even "pointer-events: stroke" would cause anything to be hit.

Check for a zero stroke-width in LayoutSVGShape::StrokeContains and fail
the hittest in that case. This matches what the painting code-path does,
except we don't check for the existence of a stroke here, because we
need to handle the !has-stroke case too.

Bug: 459640
Change-Id: I508fae7c43873027331ffaa4b9e20783d949fc15
Reviewed-on: https://chromium-review.googlesource.com/788853
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
Cr-Commit-Position: refs/heads/master@{#519143}
bratell
Add include guard for video_capture_jpeg_decoder.h
Change-Id: Ibd90d0f605121acfe707d27090497c97f905a312
Reviewed-on: https://chromium-review.googlesource.com/787972
Commit-Queue: Miguel Casas <mcasas@chromium.org>
Reviewed-by: Miguel Casas <mcasas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#519102}
bratell
Let jumbo ignore known strange files in sources lists
Many targets end up with stray files in their sources list,
files which trigger no toolchain. Jumbo used to assert that this
was bad but since other tools handle it silently, jumbo
should also be a bit more forgiving.

Bug: 787836
Change-Id: Ib70c3c5a053621de656af15fb4fcc413673db93c
Reviewed-on: https://chromium-review.googlesource.com/785811
Reviewed-by: Bruce Dawson <brucedawson@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#518979}
fs
Simplify SetNeedsResizeObserverUpdate invocations in LayoutSVG*
We can avoid calling this method for cases where we know the bounds have
not changed. Sink calls in the LayoutSVGShape hierarchy out of
UpdateShapeFromElement to a single callsite in
LayoutSVGShape::UpdateLayout. Also, no need to null-check the Element.

Bug: 435097
Change-Id: I2aca3056c9d016a30f6a54da29a719c9c9f3710c
Reviewed-on: https://chromium-review.googlesource.com/787650
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#518952}
fs
Use the same bounding box computation even with fallback path
LayoutSVGShape::UpdateShapeFromElement() creates a Path for the shape as
well as update the bounding box (fill/object and stroke.)
When we fallback to using a Path rather than the fast path
representation for the shape, we can still use the same code for
computing the bounding boxes. So instead of calling LayoutSVGShape's
UpdateShapeFromElement from LayoutSVGRect and LayoutSVGEllipse, just
call CreatePath() in the codepaths that transitions to the fallback/Path
codepath. Non-scaling stroke still require a "precise" stroke bbox.

This should make stroke bounding boxes for <rect>, <circle> and
<ellipse> tighter again.

Bug: 435097
Change-Id: I5361689371cb78eb405e0403f3be165bd254aab2
Reviewed-on: https://chromium-review.googlesource.com/779460
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#518880}
bratell
Typo fix in sources list. File missing .h.
Adding the missing .h.

Change-Id: Ie2d4f9df6c48ba73180cb6bdec8d55b352865928
Reviewed-on: https://chromium-review.googlesource.com/786015
Reviewed-by: Paul Jensen <pauljensen@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#518877}
bratell
Rename one of two "UseMd()" in ui/views
Both bubble/bubble_border.cc and controls/combobox/combobox.cc
have help functions "UseMd()" (that only calls
ui::MaterialDesignController::IsSecondaryUiMaterial() )

Since I cannot find a common location and the methods are small,
I just renamed one of them to UseMaterialDesign()
to avoid clashes in jumbo builds.

Bug: 773275
Change-Id: Ic5a99af09044fe46ac9aab3f858914a53399ca24
Reviewed-on: https://chromium-review.googlesource.com/786234
Reviewed-by: Michael Wasserman <msw@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#518757}
bratell
Rename one of two kThumbStroke in ui widget controls
Both the scrollbar and slider code have a kThumbStroke and
they are not the same. In jumbo builds those clash so this
patch renames the slider version to kSliderThumbStroke.

Bug: 773275
Change-Id: I53f7720bc34a3d71c9a0bb7061e0d185e1c8e68c
Reviewed-on: https://chromium-review.googlesource.com/786235
Reviewed-by: Michael Wasserman <msw@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#518743}
bratell
Support jumbo in //cc
Jumbo is the Chromium implementation of a unity build system where cc files are combined
before they are compiled. This adds support for that in //cc which can make it compile 8-9x
times "faster" by saving 10-15 CPU minutes (1-2% of the effort to
compile chrome+content_shell+blink_tests).

The mapping to wall time depends on the exact hardware. More parallel computers benefit less.

Bug: 786926

Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel
Change-Id: I687873c09abbd27f7525426c943e5bb4e64748b4
Reviewed-on: https://chromium-review.googlesource.com/776801
Reviewed-by: enne <enne@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#518730}
bratell
Remove jumbo_excludes triggered by too many Init()
The Android JNI generator generated code that cause there to be a
lot of Init() methods in Android code. The JNI generator has now
been changed to add a class name prefix to the function names
so these excludes are no longer needed.

This will speed up Android jumbo builds by a couple of seconds or so
(not measured).

Bug: 779013,746953
Change-Id: I24e550d6e493f87022e9887f7a957dc557233b20
Reviewed-on: https://chromium-review.googlesource.com/783212
Reviewed-by: Avi Drissman <avi@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#518728}
bratell
Add jumbo support for heap and heap unit_tests (-0.75 CPU minutes)
This adds support for jumbo compilation in oilpan which saves about
0.75 CPU minutes of effort (about 10% of blink/platform or 0.1% of the
total remaining compilation time).

Bug: 761475
Change-Id: Id7606583d5a97e9f6692b756acc062c73b27dbe3
Reviewed-on: https://chromium-review.googlesource.com/693098
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#518718}
bratell
Replace system header includes with gfx/x/x11.h in ui/views
X11 system headers define macros that easily clash with other code.
For instance None, True, False. To avoid that, which becomes
critical for jumbo builds, we instead have a x11.h wrapper
that protects the code from the dangerous macros.

Also removes use of the "Time" type in global scope since Time
is an X11 typedef and can't be protected by x11.h.

Bug: 782184
Change-Id: I1a605bddd8c5e4fe2f83c8432509915dc00b3700
Reviewed-on: https://chromium-review.googlesource.com/785170
Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#518648}
fs
Use approximate stroke bounding boxes for SVG shapes
This moves the stroke approximation code from
LayoutSVGPath::HitTestStrokeBoundingBox to a helper in LayoutSVGShape,
and then makes use of it in LayoutSVGShape::CalculateStrokeBoundingBox()
(which is the generic "stroke bounds" computation for shapes) as well.

This makes stroke bounding box computation O(1) (assuming a fill bbox
exists), avoiding the generation of a stroke path, which can be
expensive for the more "complex" parametrizations (primarily dashes.)

The downside is of course lower fidelity, and the approximation will
always be both larger than the fill bbox and larger than the "exact"
stroke bbox.

Also fix an issue where a miter-limit < 1 would incorrectly shrink the
resulting bounding box in some cases.

Bug: 435097
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: Id0228bc78bb7d8db223be082106f3c3d2bcb038a
Reviewed-on: https://chromium-review.googlesource.com/774746
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
Cr-Commit-Position: refs/heads/master@{#518392}
bratell
Use "gfx/x/x11.h" instead of system headers in ui/events
By using x11.h instead of X11 system headers we prevent spreading
some common macros named None, Status, True, False, ... in the
global namespace. These macros forced various workarounds in
innocent code and made jumbo builds harder.

This moves a lot of X11 configuration and defines from ui/event
headers into ui/gfx/x/x11.h to make sure no code has to manually
include X11 headers.

Bug: 782184
Change-Id: Iab069db82d71cd27df395afefa34a54c252b874d
Reviewed-on: https://chromium-review.googlesource.com/779144
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org>
Cr-Commit-Position: refs/heads/master@{#518334}
bratell
Rename two ImageDecodeTaskImpl classes
There were two ImageDecodeTaskImpl classes in cc, one for the
GPU image handling and one for the Software image handling they
were small and slightly different so no reason trying to merge them
Instead this renames them so that their names don't clash in
jumbo builds where cc files are merged into large translation units.

Bug: 786956
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel
Change-Id: I9e481a969d9a897665855f05a5dedbc86e194eb1
Reviewed-on: https://chromium-review.googlesource.com/779194
Reviewed-by: enne <enne@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#518313}
bratell
Add the classname to JNI method names to make them unique
Our JNI code generator generated a lot of Init(...) methods which
collided in jumbo builds. This patch adds a class name prefix to
them, and all other JNI methods, so that they have locally unique names.

TBR=erikchen@chromium.org,fgorski@chromium.org,sergeyu@chromium.org,dtrainor@chromium.org,rouslan@chromium.org,vakh@chromium.org,rogerta@chromium.org,holte@chromium.org,bajones@chromium.org

Bug: 779013
Cq-Include-Trybots: master.tryserver.chromium.android:android_cronet_tester;master.tryserver.chromium.linux:linux_site_isolation;master.tryserver.chromium.mac:ios-simulator-cronet
Change-Id: I86b6ac83c8e0a3507bd1d0efc48d625c12b4bb2b
Reviewed-on: https://chromium-review.googlesource.com/765973
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Daniel Bratell <bratell@opera.com>
Reviewed-by: Peter Beverloo <peter@chromium.org>
Reviewed-by: Avi Drissman <avi@chromium.org>
Reviewed-by: Rouslan Solomakhin <rouslan@chromium.org>
Reviewed-by: Sky Malice <skym@chromium.org>
Reviewed-by: Lambros Lambrou <lambroslambrou@chromium.org>
Reviewed-by: Yaron Friedman <yfriedman@chromium.org>
Reviewed-by: Luke Halliwell <halliwell@chromium.org>
Reviewed-by: Ken Rockot <rockot@chromium.org>
Reviewed-by: Richard Coles <torne@chromium.org>
Reviewed-by: Wei-Yin Chen (陳威尹) <wychen@chromium.org>
Reviewed-by: Miguel Casas <mcasas@chromium.org>
Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org>
Reviewed-by: Paul Jensen <pauljensen@chromium.org>
Reviewed-by: Peter Kasting <pkasting@chromium.org>
Reviewed-by: Bernhard Bauer <bauerb@chromium.org>
Reviewed-by: agrieve <agrieve@chromium.org>
Cr-Commit-Position: refs/heads/master@{#518300}
bratell
Wrap test in namespace to avoid jumbo collisions
Tests often use the same symbols because of copy/paste or
the repetitive nature of testing and

flat_tree_traversal_ng_test.cc has a TestCommonAncestor, same as
FlatTreeTraversalTest.cpp. Since tests don't export any symbols
wrapping them in a namespace is a simple way to avoid jumbo
clashes.

Bug: 745732
Change-Id: I91f7e732a28d67ebe5495791cb632a06c87534cc
Reviewed-on: https://chromium-review.googlesource.com/781779
Reviewed-by: Morten Stenshorne <mstensho@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#518236}
bratell
Renamed some cache size constants that shared names.
Both the GPU image cache and the software image cache
used the same name for its cache size constants. This caused
collisions in jumbo builds where the cc files were
compiled together in the same translation unit.

Bug: 786956
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel
Change-Id: Ic6a66f45daacc94040e1cc11410b85d674651548
Reviewed-on: https://chromium-review.googlesource.com/779401
Reviewed-by: enne <enne@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#518228}
bratell
Rename one set of Children() -> LayerChildren()
There are two template based iterators in
trees/property_tree_builder.cc and layers/layer_list_iterator.cc
that both use static |Children()| functions to define what the
template instances will do. If these end up in the same
translation unit in a jumbo build (where cc files are merged into
the same translation unit), then they will clash.

Since the functions are small and I don't know where a good place
would be, this CL does not merge them. Instead one of the instances
is renamed LayerChildren().

Bug: 786956
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel
Change-Id: I076ad4725ce571a667344145fd4a995be1edafff
Reviewed-on: https://chromium-review.googlesource.com/779140
Reviewed-by: enne <enne@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#518222}
bratell
Add presubmit test that Blink doesn't expose -blink.h headers
mojo's -blink.h headers are for internal use in Blink. There
are -shared.h headers for use outside blink.

Change-Id: I2539a6ddab9cf878ddd8e31d27497dbedede6a76
Reviewed-on: https://chromium-review.googlesource.com/753451
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Cr-Commit-Position: refs/heads/master@{#518215}
bratell
Rename two RasterBufferImpl to make the names more unique
In jumbo builds (use_jumbo_build=true), cc files are merged so local
symbols, such as these RasterBufferImpl, will end up in the same
translation unit and prevent the code from compiling.

Having unique names have other benefits as well in debugging and
documentation so this CL renames them ZeroCopyRasterBufferImpl
and BitmapRasterBufferImpl.

Bug: 786926
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel
Change-Id: I0b0af89cc1c0b3581a18a685742ad3e8c6e6b429
Reviewed-on: https://chromium-review.googlesource.com/779119
Reviewed-by: enne <enne@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#518210}
bratell
Rename two different kInitialResourceId
In jumbo builds two different kInitialResourceId constants
(one with value 1 and one with value 2) ended up in the same
translation unit which then would not compile.

This renames them to kDisplayInitialResourceId and
kLayerTreeInitialResourceId.

Bug: 786956
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel
Change-Id: I00cba4916459598d2240510f2c4c12fd18787538
Reviewed-on: https://chromium-review.googlesource.com/779260
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: enne <enne@chromium.org>
Cr-Commit-Position: refs/heads/master@{#518209}
bratell
Inlined two RoundOutRect to avoid jumbo clash
Two identical helper functions named RoundOutRect clashed
in jumbo builds where they ended up in the same
translation unit. If they had been larger it would have been
better to find a common place to define the, then shared, function
but since they are small, inlining works.

Bug: 786926
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel
Change-Id: I11fdeb9ab1a9d063cb4f8b91f17c12ab250627a3
Reviewed-on: https://chromium-review.googlesource.com/779198
Reviewed-by: enne <enne@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#518207}
bratell
Use the X11 header wrapper in ui/gl
The X11 header wrapper prevents us from polluting the global
namespace with risky macros such as None, True, False, Status.
This is in particular necessary for jumbo builds since they
are more vulnerable to headers doing unexpected things.

Bug: 782184
Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
Change-Id: Icd39a959c24a6b8f5a74e044e3fd1e6b959c6280
Reviewed-on: https://chromium-review.googlesource.com/771195
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Scott Violet <sky@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#517799}
karlo
[LayoutNG] Implement support for text-align: -webkit-*
Add NG support for the -webkit-center/right/left properties, and
implicitly the ALIGN html attribute.

Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: I9c90e4ded306f2560dd82e4ed17b876a592e599e
Reviewed-on: https://chromium-review.googlesource.com/763249
Commit-Queue: Karl Anders Øygard <karlo@opera.com>
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#517568}
fs
Remove expectations for a few media/track tests
After https://chromium-review.googlesource.com/756848 and
https://chromium-review.googlesource.com/757102 these tests appear to
have stabilized.

TBR=srirama.m@samsung.com

Bug: 664844
Change-Id: Ie97611e52a579e6d2f18833f5faaedef662038fc
Reviewed-on: https://chromium-review.googlesource.com/771794
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#516732}
fs
Specify fill-box transform-box for circle.animation-{end,keyframe-}point
The transform-origin is supposed to be relative to the fill-box (the
object's/circle's bounding box) and not the viewport (which is the
initial value.)

Bug: 783985, 595829
Change-Id: I80b5b64a3bbeaca1d305972733820d361a7c064e
Reviewed-on: https://chromium-review.googlesource.com/765887
Reviewed-by: Andrey Kosyakov <caseq@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#516671}
fs
Tidy ImageResourceContent Image accesses and related code
Make better use of local variables to make the code a bit more compact
and improve readability. Also rename variables to attempt to better
differentiate between ImageResourceContent and Image. In general call
the former |image_content| and the latter |image|.

Bug: 773272
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I0c1a1a1020cfc3a515459104e1bdb37827553455
Reviewed-on: https://chromium-review.googlesource.com/768819
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#516511}
bratell
Add jumbo support to //content/browser (-66 CPU minutes)
Enables support for jumbo in //content/browser so that if you build
with use_umbo_build=true, content/browser will jumbo compile. Jumbo is
Chromium's unity build implementation and is already supported in Blink
and v8.

Building content/browser with jumbo is 66 CPU minutes faster than
without jumbo. How that maps to wall time depends on the hardware. On
a 4 core/8 thread machine that is about 8-9 minutes.

It took 50 cleanup patches to get here, and there is 1 remaining issue
(see patch) that we will try to solve after this has landed.

Bug: 746953
Change-Id: I14f9d340abdba387e6520f8c255ebe7395565439
Reviewed-on: https://chromium-review.googlesource.com/768745
Reviewed-by: Bruce Dawson <brucedawson@chromium.org>
Reviewed-by: Avi Drissman <avi@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#516450}
fs
Reimplement ImageElementBase::IsOpaque
Don't use Element::ImageContents(), which is a method primarily meant
for the WebElement interface (and not actually implemented by
SVGImageElement.) Use the local ImageLoader and related helpers instead.

Bug: 773272
Change-Id: Idbbf8a85b6905e072db2bf4ac12e38ff9756025d
Reviewed-on: https://chromium-review.googlesource.com/768872
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#516437}
tmoniuszko
Allow consulting ThemeProvider when asking TypographyProvider for color
Any custom View may provide ThemeProvider. TypographyProvider
implementation should have possibility to consult the ThemeProvider in
similar way NativeTheme can be consulted.

Bug: 691891
Change-Id: I4d67dfa870d9c439292f74c96e408bb7a9471059
Reviewed-on: https://chromium-review.googlesource.com/730583
Commit-Queue: Tomasz Moniuszko <tmoniuszko@opera.com>
Reviewed-by: Scott Violet <sky@chromium.org>
Cr-Commit-Position: refs/heads/master@{#516308}
bratell
Avoid using the name SendMessage because of Windows
In Windows SendMessage is a macro that maps to either
SendMessageA (Ascii) or SendMessageW (Unicode) so if you have
a local function SendMessage it can be magically renamed.

The code tried to avoid SendMessage problems by removing the
macro, but in jumbo builds that made other headers in Windows
fail because that code tried to use SendMessage.

Instead the method is renamed SendIpcMessage for lack of
better imagination.

Bug: 784443
Change-Id: I75651542f0dae2a4df0f0dec1ca253de8c1def9b
Reviewed-on: https://chromium-review.googlesource.com/766374
Reviewed-by: Matt Falkenhagen <falken@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#516269}
bratell
Rename the different LevelDBStatusToStatus functions to help jumbo
In jumbo builds (use_jumbo_build=true) the two different
LevelDBStatusToStatus could end up in the same translation unit which
would then cause compilation errors since they only differed by return
value.

This CL gives them unique names, ToServiceWorkerStatus() and
ToNotificationDatabaseStatus().

Bug: 746953
Change-Id: Iceaf6facc3142990d62769f693eb57bfc5c5f143
Reviewed-on: https://chromium-review.googlesource.com/760358
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Reviewed-by: Peter Beverloo <peter@chromium.org>
Reviewed-by: Matt Falkenhagen <falken@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#515974}
fs
Avoid track 'load' race in a few media/track/ tests
In media/track/, the following tests seemed to exhibit the same timeout
behavior as track-kind.html:

  track-default-attribute.html
  track-load-error-readyState.html
  track-load-from-element-readyState.html

The default track could finish loading before the event handler was
added. Move the external <script>s earlier (to within <head>) and attach
event handlers before </video>.

Bug: 782095
Change-Id: I103e6d24a20f8b164a38a9014eae98528a6caf92
Reviewed-on: https://chromium-review.googlesource.com/757012
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: srirama chandra sekhar <srirama.m@samsung.com>
Cr-Commit-Position: refs/heads/master@{#515925}
fs
Explicitly reset preferred lang and text track state in media/track
Add cleanup handlers that resets "user preferred languages" and "text
track kind user preference", or just reset them outright, to see if this
has any bearing on the problem (works locally.)

Bug: 664844
Change-Id: I6237ace717fbaf6f5203d8a051950763547e191f
Reviewed-on: https://chromium-review.googlesource.com/757102
Reviewed-by: srirama chandra sekhar <srirama.m@samsung.com>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#515919}
fs
Make TextTrackCue::CueDidChange ordering updates fine-grained
Only do an remove-add cycle for the cue when the start or end time is
updated. This will avoid changing the cue order for cues which need to
make use of the "tie-breaker" (have same 'startTime' and 'endTime'.)
It should also make non-time updates to a cue faster.

Remove media/track/opera/interfaces/VTTCue/snapToLines.html since it's
a duplicate of the WPT test.

Bug: 783779
Change-Id: I919b0acdb6ec2e6f0b6e11fb75996e7292168f95
Reviewed-on: https://chromium-review.googlesource.com/763527
Reviewed-by: srirama chandra sekhar <srirama.m@samsung.com>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#515845}
fs
Fix target reference update for "absolute local" 'href's
When the <use> 'href' was specified as an absolute URL, we would not
consider it local and attempt to request and use the URL as an "external"
resource instead. Because of state inconsistencies and the resource
requested being of the wrong type, this would make shadow tree expansion
fail for nested <use>.

Bug: 783761
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: Ic4ee946c17e16d5dac96263874792ec3f1d882ea
Reviewed-on: https://chromium-review.googlesource.com/763459
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#515664}
bratell
Made some constant names more unique for jumbo
In jumbo builds cc files are compiled together as one translation
unit to local constants need to not have the same names as other
local constants or there will be a compilation error.

This patch renames
kCurrentSchemaVersion ->
  kCurrentLocalStorageSchemaVersion
  kCurrentServiceWorkerSchemaVersion

kKeySeparator ->
  kNotificationKeySeparator
  kServiceWorkerKeySeparator

Bug: 746953
Change-Id: I1cc52eebe8979ea83746f4aad00c7dd063791b94
Reviewed-on: https://chromium-review.googlesource.com/758869
Reviewed-by: Camille Lamy <clamy@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#515604}
bratell
Don't expose blink internal types from public headers
Mojo's -blink.h headers expose all the cool internal
Blink types which means they can't be used in public headers.
Instead use the -shared.h versions.

(There is a presubmit coming to prevent accidents like this)

Change-Id: I6e27c66aba3b625a96885c6261fd481bdaa50cf0
Reviewed-on: https://chromium-review.googlesource.com/763227
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#515568}
bratell
Avoid clash between two NSAccessibilitySelectedTextMarkerRangeAttribute
There are two
NSString* const NSAccessibilitySelectedTextMarkerRangeAttribute =
    @"AXSelectedTextMarkerRange";
and in jumbo builds they will end up in the same translation unit
and trigger compilation errors.

This patch moves one of them to where its used which will prevent
the clash and let the compilation proceed.

Bug: 746953
Change-Id: Iaf440412f7780141f8d22f648dfef59358ef610c
Reviewed-on: https://chromium-review.googlesource.com/758845
Reviewed-by: Elly Fong-Jones <ellyjones@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#515515}
bratell
Wrap X11 headers in ui/gfx/x/x11.h
X11 headers define a lot of common symbols and that will interfere
with other code, in particular in jumbo builds where the X11 headers
get wider visibility. This wraps common X11 headers in
ui/gfx/x/x11.h and adds the necessary symbols to the namespace x11
instead.

So instead of writing

XAtom prop_type = None;

you now write

XAtom prop_type = x11::None;

and the same for True, False, Status and a few others.

Bug: 782184
Change-Id: I0d1b83720da615c808a2f7a291ddbf7664b26cd8
Reviewed-on: https://chromium-review.googlesource.com/756711
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Thomas Anderson <thomasanderson@chromium.org>
Reviewed-by: Dan Erat <derat@chromium.org>
Reviewed-by: Elliot Glaysher <erg@chromium.org>
Reviewed-by: Scott Violet <sky@chromium.org>
Cr-Commit-Position: refs/heads/master@{#515373}
bratell
Make kMaxRedirects into a C++ constant
Followup from https://chromium-review.googlesource.com/c/chromium/src/+/751744
Make the value a C++ constant instead of an enum.

Cq-Include-Trybots: master.tryserver.chromium.android:android_cronet_tester;master.tryserver.chromium.mac:ios-simulator-cronet
Change-Id: I996f05877f7d68f468cdb41b4c7c1a5dcc1c62fc
Reviewed-on: https://chromium-review.googlesource.com/757398
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Ryan Hamilton <rch@chromium.org>
Cr-Commit-Position: refs/heads/master@{#515328}
bratell
Rename two kTrafficAnnotation variables that clash in jumbo builds
In jumbo builds several cc files are merged into one
translation unit and then a variable that is intended to be local
can collide. That happened with kTrafficAnnotation.

This patch renames them
kTrafficAnnotation ->
  kAppCacheTrafficAnnotation
  kNavigationUrlLoaderTrafficAnnotation

Bug: 746953
Change-Id: Ia46c25b80956ed04aa081348167883264c57b894
Reviewed-on: https://chromium-review.googlesource.com/758782
Reviewed-by: Joshua Bell <jsbell@chromium.org>
Reviewed-by: Charlie Harrison <csharrison@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#515327}
karlo
[LayoutNG] Change table cells to use NG layout.
Switch table cells over to use NG layout, so they can establish
NG block formatting contexts.

Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I08bbe28bb14d7b4041cc207ef499cf2d426ce219
Reviewed-on: https://chromium-review.googlesource.com/649698
Commit-Queue: Karl Anders Øygard <karlo@opera.com>
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#515308}
fs
Ship the CSS 'transform-box' property
Intent-to-ship thread:

 https://groups.google.com/a/chromium.org/d/topic/blink-dev/4ZWHz8tCONI/discussion

Bug: 595829
Change-Id: I8b25037046efeeffcc52bf3835aff06c8d110549
Reviewed-on: https://chromium-review.googlesource.com/759040
Reviewed-by: Daniel Bratell <bratell@opera.com>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#515282}
bratell
Fix jumbo compilation for Android in //base
The define of "Long" to "long" ended up changing some "Long"
strings in jni code to "long" which broke compilation.

Bug: 775547
Change-Id: If9dab9f193b0cad5067903f46ade98155254c7de
Reviewed-on: https://chromium-review.googlesource.com/758366
Reviewed-by: danakj <danakj@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#514883}
fs
Remove media/track/track-kind.html
Remove this test in favor of the existing and overlapping coverage in
Web Platform Tests:

  html/semantics/embedded-content/media-elements/interfaces/
    HTMLElement/HTMLTrackElement/kind.html
    TextTrack/kind.html

Bug: 782095
Change-Id: Iff866ddabaa69a30e24f6126f202c6cbd431425a
Reviewed-on: https://chromium-review.googlesource.com/756752
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: srirama chandra sekhar <srirama.m@samsung.com>
Cr-Commit-Position: refs/heads/master@{#514817}
bratell
Merge all KMaxRedirects=20
Too much code took upon itself to define 20 as the constant
for number of redirects. If it's going to be a constant, let it
be a single constant, in this case in the network URLRequest class.

This was noticed because the multiple kMaxRedirects in
content/browser collided in jumbo experiments.

Cq-Include-Trybots: master.tryserver.chromium.android:android_cronet_tester;master.tryserver.chromium.mac:ios-simulator-cronet
Change-Id: Ib11c1ea77ea0f1da0adb5966eb992a8f82e31177
Reviewed-on: https://chromium-review.googlesource.com/751744
Reviewed-by: Ryan Hamilton <rch@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Reviewed-by: Joshua Bell <jsbell@chromium.org>
Reviewed-by: Makoto Shimazu <shimazu@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#514791}
fs
Fix media/track/track-cue-rendering-tree-is-removed-properly.html
The way media/track/track-cue-rendering-tree-is-removed-properly.html is
using assert_throws is no longer valid, so replace it with a different
construct.
Also, <track> does not have a 'mode' content attribute. Using 'default
here seems like it should DTRT.

Bug: 664844
Change-Id: I7cf035dc262160f4748a22f7f92fbc45c2bfe13b
Reviewed-on: https://chromium-review.googlesource.com/756848
Reviewed-by: srirama chandra sekhar <srirama.m@samsung.com>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#514789}
bratell
Deduplicate InputEventDispositionToAck
There were two identical InputEventDispositionToAck in
input_handler_manager.cc and widget_input_handler_manager.cc and
in jumbo builds those clashed. This exports the function from
input_handler_manager.cc/.h so that it can be used in
widget_input_handler_manager.cc

Bug: 746953
Change-Id: I8c032a4f283b0eeb601b75e3d15efddbff360578
Reviewed-on: https://chromium-review.googlesource.com/753325
Reviewed-by: Dave Tapuska <dtapuska@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#514239}
bratell
Rename one of two different ClampToValidDimension
There are two ClampToValidDimension in content/render and in
jumbo builds where files are merged those functions clashed.

This patch renames one of them ClampToValidScreenCastDimension
which is a more unique, and descriptive, name.

Bug: 746953
Change-Id: Ib331422044e87b683dde1fb20cffd0395e79a6ea
Reviewed-on: https://chromium-review.googlesource.com/753369
Reviewed-by: Dale Curtis <dalecurtis@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#514225}
bratell
Avoid leaking mojo -blink.h headers outside blink
mojo's -blink.h headers are for use inside blink. For the rest there
is -shared.h headers.

Change-Id: Iffb6bd56656545c35056ba49badfe06e8519ec29
Reviewed-on: https://chromium-review.googlesource.com/753884
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#514111}
fs
Special-case the 'is2D' case in DOMMatrix::invertSelf
When the DOMMatrix is supposedly well-formed according to the 'is2D'
restrictions, we can perform the inversion on the relevant submatrix
rather than the full matrix. This should avoid some numerical errors
sneaking in, breaking the 'is2D' invariant. It is probably a bit faster
as well.

Bug: 781172
Change-Id: I0e7678ccaf2baae9c40cff0acebb9d0fc498be11
Reviewed-on: https://chromium-review.googlesource.com/753685
Reviewed-by: Jinho Bang <jinho.bang@samsung.com>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#514044}
fs
Handle failed dictionary conversion in DOMPointReadOnly::matrixTransform
DOMMatrixReadOnly::fromMatrix can fail, returning null and generating an
exception.

Bug: 781172
Change-Id: If77e4cd57d02e8a09d79875aa96f0bc243f08b40
Reviewed-on: https://chromium-review.googlesource.com/753485
Reviewed-by: Jinho Bang <jinho.bang@samsung.com>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#514041}
bratell
Don't leak blink headers outside Blink.
WebCORS.h leaked internal Blink headers that could collide with
other code in for instance content (noticed in jumbo).

Change-Id: Ic874d3b0bfaed843cf1209944685b8368bb56a1c
Reviewed-on: https://chromium-review.googlesource.com/753881
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#513828}
bratell
Avoid importing base::Time into global scope
X11 headers add a Time typedef to global scope and in jumbo builds
(where files are merges so more code and headers become visible), that
Time typedef and the "using base::Time" clashed.

This patch imports the constant the code wanted directly, which is less
code (fewer characters) as well.

Bug: 746953
Change-Id: I130cd78080eda80ffaf75ef22afab5b9a68d4e59
Reviewed-on: https://chromium-review.googlesource.com/753447
Reviewed-by: Max Morin <maxmorin@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#513804}
bratell
Use PostMessageW instead of PostMessage to avoid undefs
There are code that does #undef PostMessage to avoid
the win32 defines and if such code/headers get included in
render_widget_host_view_event_handler.cc, then there won't be
a PostMessage to call.

The easiest solution is to call PostMessageW instead (the Unicode
version of the API) since that is the function we want to call
anyway.

Bug: 746953
Change-Id: I6bb61404e2685846b4298223fe588d51fa0704d5
Reviewed-on: https://chromium-review.googlesource.com/753582
Commit-Queue: Avi Drissman <avi@chromium.org>
Reviewed-by: Avi Drissman <avi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#513785}
bratell
Avoid clashing two IsUsingMus() functions in jumbo builds
In some jumbo configurations the two IsUsingMus would end up
in the same compilation unit and cause compilation errors.
The function is small enough (barely) to have in two copies so
this patch moves them to a tighter namespace.

Bug: 746953
Change-Id: I08b67606fd6dc68ee5ae9a8c91c79386051f8976
Reviewed-on: https://chromium-review.googlesource.com/749386
Reviewed-by: Avi Drissman <avi@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#513732}
fs
Cleanup extraction of intervals for raster shapes
This restructures Shape::CreateRasterShape so that the raster data is
extracted, followed by the actual extraction of intervals from the
raster data. Move the size restriction from ShapeOutsideInfo to Shape.
The code is generally left as-was with some minor exceptions, like
using IntSize::Area() and using size types for |max_image_size_bytes|.
The console messages previously emitted for "too large" images are
dropped.
This makes error handling slightly easier and hopefully also improves
readability.

Change-Id: I3e0a1bfb08f1c50d73f5ce7c909d98a6e31df5a0
Reviewed-on: https://chromium-review.googlesource.com/750962
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#513591}
bratell
Add missing include guard for VideoFrameSubmitter.h
Noticed in jumbo experiments.

Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: Ida9ad9a3dec791cca3992e5b68c1f3bc722ead5e
Reviewed-on: https://chromium-review.googlesource.com/749401
Reviewed-by: Philip Rogers <pdr@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#513491}
bratell
Replace the NOTIMPLEMENTED_POLICY macro with an explicit macro
NOTIMPLEMENTED_POLICY could be used to control what the
NOTIMPLEMENTED macro did, but *only* if set before the first
include of base/logging.h. That made it hard to use and
not at all compatible with jumbo builds.

There were only a few users of NOTIMPLEMENTED_POLICY and they all
set NOTIMPLEMENTED_POLICY to 5 so a better solution seems to be
to have NOTIMPLEMENTED and NOTIMPLEMENTED_LOG_ONCE for places
where spam is feared.

Bug: 777852
Change-Id: Id1b454200a64d43e27df39b2c9a02f07ba4710cf
Reviewed-on: https://chromium-review.googlesource.com/749143
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Scott Violet <sky@chromium.org>
Reviewed-by: danakj <danakj@chromium.org>
Cr-Commit-Position: refs/heads/master@{#513481}
bratell
Add some missing include guards in third_party/WebKit/Source
Some of these are technically not needed, but to avoid future
accidents it's best to be consistent.

Note that there is another Forward.h but that one has WTF_Forward_h as
include guard so there won't be a clash.

R=pdr@chromium.org

Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I6f42004c4810e960038c51f47d8e2714f00a7c2d
Reviewed-on: https://chromium-review.googlesource.com/749462
Reviewed-by: Philip Rogers <pdr@chromium.org>
Reviewed-by: Guido Urdaneta <guidou@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#513460}
bratell
Unduplicate a kMaxListSize constant that broke jumbo builds
The two kMaxListSize constants collided in jumbo builds where
files are merged before compilation, for higher build performance.

This patch makes the constants be shared.

Bug: 777470
Change-Id: Idf90fcf389ba3895b4f0e28b4649f11ff5f8257e
Reviewed-on: https://chromium-review.googlesource.com/749142
Commit-Queue: Daniel Bratell <bratell@opera.com>
Commit-Queue: Rouslan Solomakhin <rouslan@chromium.org>
Reviewed-by: Rouslan Solomakhin <rouslan@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Reviewed-by: Ganggui Tang <gogerald@chromium.org>
Cr-Commit-Position: refs/heads/master@{#513119}
fs
Fold ImageResourceContent::{Uses,}Image{Container,HasRelative}Size
These methods - UsesImageContainerSize and ImageHasRelativeSize - are
only simple wrappers for similarly named methods on Image. Callers have
access to Image without any hoop-jumping, so just fold these methods.

Bug: 773272
Change-Id: Ie6a02b7e1c4643c5ebfafa0b6281503194904852
Reviewed-on: https://chromium-review.googlesource.com/747102
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#512912}
fs
Percent-decode fragments before using them for SVG references
We were using the "raw" form of the fragment, meaning that any percent-
encoded fragments would not resolve correctly.

Bug: 779420
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: Ic091e775589fd59d25ad1878115f2ad2593bc733
Reviewed-on: https://chromium-review.googlesource.com/746885
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#512895}
fs
The empty string is a not a valid <length> for SVGLength
SVGLength::SetValueAsString was allowing "" to "reset" the value without
signaling an error. Because of how the handling of removeAttribute works
we can't shut down this entirely, but still need to handle the null
string resulting from that.

Convert svg/custom/invalid-length-units.html to testharness.js. (This
test had one item for "" and " ".)

Bug: 779454
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I055b77b07d833a252b325df8fc1a908271c86005
Reviewed-on: https://chromium-review.googlesource.com/746707
Reviewed-by: Philip Rogers <pdr@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#512871}
bratell
Adding include guards for print_messages.h
We have had IPC headers where it was up to the user
to carefully only include them once. Jumbo builds where
cc files are compiled together are not that careful so they
need include guards.

This is a followup to equivalent work done in chrome and content.

Bug: 746953
Change-Id: I3dc4067e2c4e23ee41be0def78a34bf4f7cd4b96
Reviewed-on: https://chromium-review.googlesource.com/741597
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#512844}
bratell
Rename an empty function to be more unique.
There were two empty functions named "IgnoreError" and this
caused clashes in jumbo build experiments. This patch renames
one of them "EmptyErrorHandler" which is also a good name.

There is no natural place to share the functions, and being empty
there is not that much value in sharing them either.

Bug: 746953
Change-Id: I7c7507cf485710159e64b3945eeea558e2e4f901
Reviewed-on: https://chromium-review.googlesource.com/743786
Reviewed-by: Dan Elphick <delphick@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#512555}
msimonides
Express the last scroll offset in DIPs.
The RWHVAura::GetLastScrollOffset() method should return values in view
coordinates (device independent pixels) as do other implementations of
RWHV.

When zoom-for-DSF is enabled the coordinates from compositor are
expressed in pixel coordinates which are different from view coordinates
on HiDPI screens.  Therefore the last_scroll_offset_ value needs to be
scaled to view coordinates

BUG: 778228
Change-Id: Ic8da1fdbf821d0073fb2a22a75ecbc40441ce00e
Reviewed-on: https://chromium-review.googlesource.com/610148
Commit-Queue: David Bokan <bokan@chromium.org>
Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org>
Reviewed-by: David Bokan <bokan@chromium.org>
Reviewed-by: Mitsuru Oshima <oshima@chromium.org>
Cr-Commit-Position: refs/heads/master@{#512549}
bratell
Disable //base jumbo for iOS
Something with allocators goes wrong in iOS (similar to nacl) and
not having a good way to debug it, and not very mich interest for
jumbo on iOS, it's easiest to just disable it.

Bug: 776313
Change-Id: Ifc8c77fd19aa6fc5bcd790cc8c7056fd8a57640a
Reviewed-on: https://chromium-review.googlesource.com/741804
Reviewed-by: Nico Weber <thakis@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#512263}
bratell
Adding include guard to debugging_client.h header
A header missing include guards caused problem in jumbo
build experiments.

Change-Id: Ibef82467108600c566ed71cec00970ec6301f012
Reviewed-on: https://chromium-review.googlesource.com/741504
Reviewed-by: David Trainor <dtrainor@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#512257}
fs
Deduplicate PaintScrollbar
CompositedLayerMapping.cpp and PaintLayerCompositor.cpp has almost
identical (differs by a null-check) PaintScrollbar helpers.
Move a cleaned up version to ScrollableAreaPainter (being the least bad
common location.)
This fixes Jumbo compilation.

Bug: 713137
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: Icc36e57ed364b18716fd56b0363431f352ef0d72
Reviewed-on: https://chromium-review.googlesource.com/741595
Commit-Queue: Xianzhu Wang <wangxianzhu@chromium.org>
Reviewed-by: Xianzhu Wang <wangxianzhu@chromium.org>
Reviewed-by: Philip Rogers <pdr@chromium.org>
Reviewed-by: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#512224}
bratell
Removed IsOriginSecure clone and removed "using namespace"
Importing namespaces with "using namespace" can have surprising
results (which is why the coding standard disallows them).

This patch's main motivation is to remove a "using namespace content"
which made indexed_db code unable to distinguish between ::indexed_db 
and ::content::indexed_db in jumbo builds, but in the process it
was realized that the local IsOriginSecure was only partly used
and also seemed to be close enough to content::IsOriginSecure that
one of them should suffice.

There were two IsOriginSecure(). One in {anon ns}::IsOriginSecure() and
one in content::IsOriginSecure(). In mixed_content_navigation_throttle.cc
there are two calls to unqualified "IsOriginSecure()". One was 
supposed to resolve to {anon ns}::IsOriginSecure() and
the other one to content::IsOriginSecure().

After this patch both calls will go to content::IsOriginSecure().

Bug: 629059, 746953
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_site_isolation
Change-Id: Id572c05707545e6303f63f2c4a18acf7fda2a4c4
Reviewed-on: https://chromium-review.googlesource.com/738175
Reviewed-by: Camille Lamy <clamy@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#512174}
fs
Update baselines after Skia SkOffsetImageFilter change
TBR=mtklein@chromium.org,senorblanco@chromium.org

Bug: 778204
Change-Id: I7e531d55d2e8c3daf19ed93226c21d9698037d05
Reviewed-on: https://chromium-review.googlesource.com/741233
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#512162}
bratell
Fix for reference counted variable being passed the wrong way
Passing pointers to reference counted variables as raw pointers in
bind is disallowed so this wraps it in base::Unretained like the
other types.

This was discovered while making the code able to be jumbo
compiled because in jumbo builds the type URLRequestContextGetter
was no longer a undefined forward declared type. As long as it
was a pointer to something "unknown" bind.h was fine with it.

Bug: 746953
Change-Id: I72a0d2c2957b885f967c246b1575f6609ae8c9c3
Reviewed-on: https://chromium-review.googlesource.com/739861
Reviewed-by: Charlie Harrison <csharrison@chromium.org>
Reviewed-by: Camille Lamy <clamy@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#512155}
bratell
Deduplicate UMALogDeviceAuthorizationTime
There were two implementations of UMALogDeviceAuthorizationTime and
in jumbo builds those clashed. This makes it one implementation and
moves it to AudioOutputAuthorizationHandler since it also
has Authorization in the name.

Bug: 746953
Change-Id: I63159187bd81b355ad6c94398a44e2ce188464bb
Reviewed-on: https://chromium-review.googlesource.com/739901
Reviewed-by: Dale Curtis <dalecurtis@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#512126}
bratell
Let jumbo use root_build_dir relative paths
Up until now include paths have been relative to the location
of the generated jumbo files. That can make paths rather long 
with many "../../.." in them.

In some circumstances, the paths are now too long for some
Win32 APIs (260 chars) so let us try with 
root_build_dir relative paths instead.

Bug: 778627
Change-Id: Ic7202789f75caf5134b38b174cb5b24a217d0035
Reviewed-on: https://chromium-review.googlesource.com/737836
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Bruce Dawson <brucedawson@chromium.org>
Cr-Commit-Position: refs/heads/master@{#511920}
fs
Rework computed style handling for 'width' and 'height'
getComputedStyle(...) for 'width' and 'height' would always return
'auto' for layout objects to which said property did not "apply" (by
some fuzzy heuristic.) This specifically broke for some SVG elements
where 'width' and 'height' apply (<rect>, <image> and <foreignObject>),
but is also wrong more generally - per CSSOM [1].

Rework the relevant parts of ComputedStyleCSSValueMapping::Get to
consider if the used value or the computed value should be used for the
respective property. The new helper
(WidthOrHeightShouldReturnUsedValue) replaces the old
WidthOrHeightPropertyAppliesToObject, while removing the explicit return
of an 'auto' identifier. 'auto' (or any other computed value) will now
be returned via ZoomAdjustedPixelValueForLength if the resolved value is
not the used value.

This is a behavioral change, and matches the behavior of Gecko.

Fold the old svg/css/getComputedStyle-svg-text-width-height.html test
into a new one that cover more (SVG) cases.

[1] https://drafts.csswg.org/cssom/#resolved-value

Bug: 708888, 772707
Change-Id: I573362a03c9e0d98251bdbcf4e9854a5a5d8dd67
Reviewed-on: https://chromium-review.googlesource.com/707103
Reviewed-by: Philip Rogers <pdr@chromium.org>
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#511848}
fs
Temporarily suppress some feOffset tests
The following tests

 * svg/W3C-SVG-1.1/filters-offset-01-b.svg
 * svg/filters/feOffset.svg

show small differences (obvious progression for the former.)

TBR=mtklein@chromium.org
NOTRY=true

Bug: 778204
Change-Id: I3b7e8da7856181f920d7889d5f7ac21c764f1071
Reviewed-on: https://chromium-review.googlesource.com/739484
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#511829}
bratell
Rename two constants with the same name kVerboseLevel
In jumbo builds where cc files are merged before being
compiled, the two different kVerboseLevel clashed.

This patch renames when kJobVerboseLevel and
kWorkerVerboseLevel.

Bug: 746953
Change-Id: Id9cf152e3b5d9aeaa41990fb3fa6908c60baf43a
Reviewed-on: https://chromium-review.googlesource.com/738135
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Min Qin <qinmin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#511783}
bratell
Fix some typos in jumbo.gni documentation.
Copy+pasted documentation shows a bit too much of its origin.

Change-Id: Idb17d72c74bdff0c3544d7b5ecc23ab00c88e7c8
Reviewed-on: https://chromium-review.googlesource.com/738037
Reviewed-by: Bruce Dawson <brucedawson@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#511772}
bratell
Deduplicate two constants kBlobStorageContextKeyName
We declared the key to lookup the chrome blob storage at
two places. This caused problems in jumbo builds where
cc files are merged and the symbols clashed.

Bug: 746953
Change-Id: Icc11b256026536983841b084f6d2a74358594a47
Reviewed-on: https://chromium-review.googlesource.com/738133
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Daniel Murphy <dmurph@chromium.org>
Reviewed-by: Avi Drissman <avi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#511608}
bratell
Give two GetUniqueIdInConstructor() unique names
For jumbo builds where cc files are merged, function names need
to be a bit more unique for the code to compile. This patch chooses
two names: CreateUniqueEntryID() and CreateUniqueHandleID().

Bug: 746953
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_site_isolation
Change-Id: I7058575bece926071d2b086c959ee08cd8023b68
Reviewed-on: https://chromium-review.googlesource.com/738369
Reviewed-by: Avi Drissman <avi@chromium.org>
Commit-Queue: Avi Drissman <avi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#511574}
fs
Move ImageResourceContent::BrokenImage to LayoutImageResource
A "broken image" (fallback image) only make sense for "content images",
so LayoutImageResource seems like a better home for it. This also makes
it trivial to provide a decent device scale factor.
Fold the creation of a fallback image into LayoutImageResource too.

Bug: 773272
Change-Id: I3732f87ff8b433188920bfee9ab44acee255f6ae
Reviewed-on: https://chromium-review.googlesource.com/727904
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#511533}
fs
Simplify HTMLImageElement.currentSrc 'current request' heuristics
Rather than depending on whatever ImageResourceContent::GetImage()
returns (which is also always something non-null), just explicitly check
for there being an error or an actual image.

Bug: 773272
Change-Id: I1e71837ccdc4f9d2bf2a066cece6451154fecbf3
Reviewed-on: https://chromium-review.googlesource.com/730755
Reviewed-by: Hiroshige Hayashizaki <hiroshige@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#511517}
bratell
Give some storage size constants more unique name.
To avoid clashes in jumbo builds, let local_storage and
dom_storage use differently named constants for max area count
and max cache size.

Bug: 746953
Change-Id: I0acf3d02a938d670f67546830e3f17681b55bb0e
Reviewed-on: https://chromium-review.googlesource.com/735545
Reviewed-by: Michael Nordman <michaeln@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#511478}
fs
Remove reference for test that was removed
TBR=pdr@chromium.org

Bug: 595829
Change-Id: Ie93a136fbfb6e9425e9c48c89c8132f35ebfbc45
Reviewed-on: https://chromium-review.googlesource.com/738190
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#511439}
fs
The initial value for 'transform-box' should be 'view-box'
 https://github.com/w3c/csswg-drafts/issues/857#issuecomment-296024182

Drop support for 'border-box' for the time being, since it no longer is
just an alias for 'view-box'. Remove the test for it (which happened to
be using the wrong keyword even... Oops)

Bug: 595829
Change-Id: Ia2889848eb3355c18164ce6978a13bab9e40e698
Reviewed-on: https://chromium-review.googlesource.com/735560
Reviewed-by: Philip Rogers <pdr@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#511287}
fs
Tidy content box usage in HTMLCanvasElement::DoDeferredPaintInvalidation
Call LayoutBox::ContentBoxRect once and reuse the returned rect instead
of calling the method repeatedly (and mostly just tossing the result.)
Also cast the result to a FloatRect directly to avoid LayoutUnit<->float
impedance mismatches.
Rename some variables and update comments to reflect post-rename names.

Change-Id: Ie1a0bd1b955db7bf9e86e4e38d927c24d8e5ef4c
Reviewed-on: https://chromium-review.googlesource.com/733162
Reviewed-by: Justin Novosad <junov@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#511266}
bratell
Rename some socket buffer size constants with the same name
In jumbo builds, where cc files are merged before being compiled,
symbols that should be isolated can still clash and cause
compilation errors.

This patch renames
kReadBufferSize -> {kTcpReadBufferSize, kUdpReadBufferSize)
kRecvSocketBufferSize -> { kUdpRecvSocketBufferSize,
                           kTcpRecvSocketBufferSize}
kSendSocketBufferSize -> kTcpSendSocketBufferSize

Bug: 746953
Change-Id: I9fb6d06fa25e8a8ab02f922b247f1b76808daa94
Reviewed-on: https://chromium-review.googlesource.com/723305
Reviewed-by: Sergey Ulanov <sergeyu@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#511230}
bratell
Deduplicate GetEventAckName.
We had two GetEventAckName that both converted an
InputEventAckState to a string. This patch merges them and
moves them to input_event_ack_state.cc.

The two GetEventAckNames clashed in jumbo build experiments.

Bug: 746953
Change-Id: Ie07e8d500a0e3cfcc8a705300adc597760ea5751
Reviewed-on: https://chromium-review.googlesource.com/735155
Commit-Queue: Daniel Bratell <bratell@opera.com>
Commit-Queue: Avi Drissman <avi@chromium.org>
Reviewed-by: Avi Drissman <avi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#511178}
bratell
Add include guards to message headers in chrome and extensions
The solution without include guards isn't compatible with jumbo
builds and this is in general easier for code to manage. Now
nobody needs to be careful about where they include a message header

This is a followup to a similar patch in content (
https://chromium-review.googlesource.com/580868 )

Bug: 746953
Change-Id: I3ce252d02b9fc916cc8a2ad039214b1da08676bb
Reviewed-on: https://chromium-review.googlesource.com/735480
Reviewed-by: Jochen Eisinger <jochen@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#511154}
fs
Share content box rect in ImagePainter::PaintReplaced
Both of the drawing code-paths in said function use the full content box
rect, so we can compute it once and share it. This also avoids computing
the content size  twice.

Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I889f6440394fde75bafc8cc8ac0f6b3a1629c0c4
Reviewed-on: https://chromium-review.googlesource.com/733340
Commit-Queue: Xianzhu Wang <wangxianzhu@chromium.org>
Reviewed-by: Xianzhu Wang <wangxianzhu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#510866}
fs
Use ContentSize() for content size stored for paint invalidation
LayoutBox::ContentSize() is more to the point than calling
LayoutBox::ContentBoxRect() and then do Size() on the result (ignoring
the position.) Hopefully it is also faster (4 vs 8 virtual calls.)

Change-Id: If8c370446fad49d976d1d7576ac7041cd8d78180
Reviewed-on: https://chromium-review.googlesource.com/733164
Commit-Queue: Xianzhu Wang <wangxianzhu@chromium.org>
Reviewed-by: Xianzhu Wang <wangxianzhu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#510846}
fs
Move InterpolationQualityContext to platform/graphics
InterpolationQualityContext codifies a pattern that is used by all code
that alters the (default) image interpolation quality.
Move the tiny helper class to its own file, renaming it to
ScopedInterpolationQuality, and then use it where appropriate (which,
per above is "everywhere".)

In HTMLCanvasPainter.cpp, the FIXME referencing crbug.com/353716 is
removed, because the bug in question has been resolved as WontFix.

Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I8380cd4d20adcbc18dfa175e0d48e4947c51ca5b
Reviewed-on: https://chromium-review.googlesource.com/730205
Reviewed-by: Philip Rogers <pdr@chromium.org>
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#510825}
fs
Tidy up SVGSVGElement::CurrentViewportSize
 * Put the LayoutObject pointer in a local variable.
 * Use ContentSize rather than the fullblown ContentBoxRect() since only
   the size is used.
 * Put the zoom in a local variable.
 * Use FloatRect::Size.

Change-Id: I7b150f53212f0b0cb2524b3867bfb90398ccf6e7
Reviewed-on: https://chromium-review.googlesource.com/733087
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#510788}
bratell
Hide Blink internal types from users of WebTappedInfo.h
A few internal types were accidentally exposed to the world.

Bug: 777366
Change-Id: I293070e479e88d76926c8c463a3bec4f04475a6f
Reviewed-on: https://chromium-review.googlesource.com/733082
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#510777}
karlo
[LayoutNG] Introduce LayoutNGMixin in preparation for LayoutNGTableCell.
This class holds code shared between LayoutNG subclasses of
LayoutBlockFlow.  Inheritance is parameterized, but only valid
for LayoutBlockFlow and subclasses.

Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I973193718d046ec6e8aa1a9bf548c5fef45aa149
Reviewed-on: https://chromium-review.googlesource.com/725346
Commit-Queue: Karl Anders Øygard <karlo@opera.com>
Reviewed-by: Emil A Eklund <eae@chromium.org>
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#510749}
bratell
Reducing default jumbo chunk size from 100 to 50.
Bruce Dawson and I have mesaured what compile times you can expect
from different chunk sizes and it seems that the advantages of 100
over 50 is at best small so this patch reduces the default to 50.

It will mean that 100 becomes less likely to work without code fixing
since fewer people will compile with 100, but it should be an overall
better experience because smaller jumbo units means single-file changes
need to recompile less unchanged source.

Bug: 766294
Change-Id: I5347c39ad91fbdcd83ea975884ccdb60aa8bbe45
Reviewed-on: https://chromium-review.googlesource.com/671783
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Bruce Dawson <brucedawson@chromium.org>
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Cr-Commit-Position: refs/heads/master@{#510679}
bratell
Deduplicate the ShouldDuckFlash function
Two files had identical ShouldDuckFlash functions which clashed
in jumbo builds (chromium unity build implementation where
source files are merged).

This patch moves the function to media_switches so it can be used by
all code.

Bug: 746953
Change-Id: I0665384f82e8bb3f0dfd6a536d1535b57c9bfe78
Reviewed-on: https://chromium-review.googlesource.com/723468
Reviewed-by: Dale Curtis <dalecurtis@chromium.org>
Reviewed-by: Mounir Lamouri <mlamouri@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#510624}
karlo
[LayoutNG] Fix for painting legacy floats with margins.
The legacy painting code uses the margin box as the origin
for floats.

Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: I00f4d3c4362af62555509d2512258bb243877aa2
Reviewed-on: https://chromium-review.googlesource.com/723339
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#510613}
fs
Handle invalidation of SVG filters that are not in the layout tree
If a <filter> was not in the layout tree, we could not invalidate it
because doing that required going through the LayoutObject of the
<filter>.
If the <filter> does not have a LayoutObject associated, then invalidate
through the proxy-set directly.

Bug: 773811
Change-Id: I35612e3915a09b714b3aaa27e4b50ae344b6ff3f
Reviewed-on: https://chromium-review.googlesource.com/728001
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Xianzhu Wang <wangxianzhu@chromium.org>
Reviewed-by: Philip Rogers <pdr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#510397}
bratell
Renames two RecordCancelled functions to have unique names
In jumbo builds where source files are merged before compiled for
dramatically faster builds, functions that are intended to be local
will have a wider visibility and can clash.

This patch renames two similar, but not quite identical
RecordCancelled functions so that there will be no compilation
problems.

Bug: 746953
Change-Id: Ib31e3db19070f6cbbe0b7c383fcc5372ec02b90b
Reviewed-on: https://chromium-review.googlesource.com/727987
Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#510390}
bratell
Giving a couple of HandleRequestCallback functions unique names
The different HandleRequestCallback functions clashed in jumbo
builds so this patch renames them.

Jumbo builds are builds where cc files are merged for dramatically
higher build performance.

Bug: 746953
Change-Id: Ie854181f45d8b7d8684ed1da4c96b8ac1b644646
Reviewed-on: https://chromium-review.googlesource.com/725700
Reviewed-by: Dominic Mazzoni <dmazzoni@chromium.org>
Reviewed-by: Bence Béky <bnc@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#510203}
bratell
Fix Windows jumbo compilation by excluding the jpeg decoder
The jpeg decoder uses libjpeg_turbo which uses a "boolean" type
defined to be int. At the same time Windows has "boolean" type
which is unsigned char. If those headers meet in a
translation unit you get compilation errors.

An alternative fix would be to redefine libjpeg_turbo to use
unsigned char for its boolean type.

Bug: 775979
Change-Id: I268e0890dfc2fae79d0abe54bbd7bf5c0c23226f
Reviewed-on: https://chromium-review.googlesource.com/727980
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Reviewed-by: Bruce Dawson <brucedawson@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#510155}
fs
Fold away ImageResourceContent::ImageSize
This moves scale-handling out into the (now former) consumers of the
ImageResourceContent::ImageSize method.

Bug: 773272
Change-Id: I08760b181a48f8a5dcc5ceff68a19c67eba3601a
Reviewed-on: https://chromium-review.googlesource.com/726087
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Cr-Commit-Position: refs/heads/master@{#510061}
bratell
Refactored some buffer classes to avoid name collisions
There were three different DependentIOBuffer classes, three similar
kBufferSize constants, two similar InitializeResourceBufferConstants
functions and two identical GetNumericArg functions.

Besides being potentially confusing, it causes clashes in jumbo
build experiments (chromium unity build system in development).

This patch moves around GetNumericArg (to merge the two copies) and
InitializeResourceBufferConstants (to make them not clash).
It renames the DependentIOBuffer classes which are deceptively
similar as well as the kBufferSize contstants and some other
variables that were not actually constants.

Bug: 746953
Change-Id: Id7cfa4baac0aa67a7b086896701aeab931e23a96
Reviewed-on: https://chromium-review.googlesource.com/723302
Reviewed-by: Dmitry Gozman <dgozman@chromium.org>
Reviewed-by: Charlie Harrison <csharrison@chromium.org>
Reviewed-by: Michael Nordman <michaeln@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#510042}
mstensho
Remove mstensho@opera.com as core and core/layout OWNER.
I'm leaving Opera Software today.

TBR=eae@chromium.org
NOTRY=true

Change-Id: Id9e11f73d3a3cbc0f2a772f93945cff21e742933
Reviewed-on: https://chromium-review.googlesource.com/727981
Reviewed-by: Morten Stenshorne <mstensho@opera.com>
Commit-Queue: Morten Stenshorne <mstensho@opera.com>
Cr-Commit-Position: refs/heads/master@{#510032}
fs
Introduce ImageResourceContent::IntrinsicSize
Most non-layout/paint users that query the size of an image are
interested in the intrinsic size of the image (usually the physical
pixel dimensions.) This is currently achieved by calling the ImageSize()
method with a multiplier of 1.
Split the ImageSize() method into a part that extracts the size of the
image (if any) and one that applies the multiplier (and follow-on
adjustments.) This should allow a future cleanup where the scaling is
moved closer to the layer that uses it - i.e layout and paint.

This also reduces the type-impedance a bit since IntrinsicSize can just
return an IntSize (like Image::Size()) rather than passing through a
LayoutSize.

Bug: 773272
Change-Id: I18a1c11e9fc891dc6f19c4b2c5bd5dc23c1a5da7
Reviewed-on: https://chromium-review.googlesource.com/718747
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#509770}
bratell
Jumbo for //base - disable jumbo when cross compiling for nacl
Jumbo builds with nacl fails in the linker because of too many
instances of memory allocator functions like valloc, realloc, mallopt
when linking libnacl.a.

TBR=thakis@chromium.org,dpranke@chromium.org,oysteine@chromium.org

Bug: 775547
Change-Id: Ibeeb1caa355aa8014c4b9179f4f26e303f13fbf8
Reviewed-on: https://chromium-review.googlesource.com/725284
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#509751}
fs
Fix size keyword comparison in CSSRadialGradientValue::Equals
Said function would ignore any size keyword or explicit size
specification if there was a shape keyword.
Adjust the comparisons so that first any explicit size checked, followed
by checking the size keyword and the shape value.

Also rewrite the if-ladder for the center point (|first_x_| and
|first_y_|) to just use two DataEquivalent.

Bug: 775201
Change-Id: I44686b54d3e02e1fd4682c4288eec3aca0e3e441
Reviewed-on: https://chromium-review.googlesource.com/723460
Reviewed-by: meade_UTC10 <meade@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#509718}
fs
Refactor <filter> invalidation to use the DOM structure
This changes the path used for invalidation of filter effects (SVGFE*)
from the layout tree to the DOM tree. This is done to allow invalidation
to work when the filter is not part of the layout tree. That change
will be done in a follow-up.

Also add casting helpers for SVGFilterPrimitiveStandardAttributes and
use it where applicable.

Bug: 773811
Change-Id: I275534e59eb285c0cab805f6c09d00b1f725e4f4
Reviewed-on: https://chromium-review.googlesource.com/719837
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Reviewed-by: Philip Rogers <pdr@chromium.org>
Commit-Queue: Philip Rogers <pdr@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#509478}
bratell
Make different g_observers and g_instances have unique names
This is preporatory patch to make content/browser able to do
jumbo compiles, i.e. compilation with many cc files merged into
one translation unit. For that to compile, names need to be a bit
more unique than they are today.

Bug: 746953
Change-Id: Ie7cb7445d3662d47372bde78df705aec7b130ed5
Reviewed-on: https://chromium-review.googlesource.com/721021
Commit-Queue: Avi Drissman <avi@chromium.org>
Reviewed-by: Avi Drissman <avi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#509429}
fs
Propagate float rects further in SVGRootInlineBox::LayoutInlineBoxes
Compute the union of the children of a flow box using FloatRect too,
then convert to a LayoutRect for setting the InlineBox's logical rect.

Also restructure the physical->logical conversion a bit.

Bug: 757436
Change-Id: I6c8f3a781c3c02dfb28d87eafa3df6cd5fb864f3
Reviewed-on: https://chromium-review.googlesource.com/721320
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#509386}
rune
Remove rune@opera.com from core/OWNERS
Leaving Opera.

TBR=jochen@chromium.org,mstensho@opera.com
NOTRY=true

Change-Id: Ia6acfa96bc8a899b970cb4edd213cfb43a2abe2b
Reviewed-on: https://chromium-review.googlesource.com/721181
Reviewed-by: Rune Lillesveen <rune@opera.com>
Commit-Queue: Rune Lillesveen <rune@opera.com>
Cr-Commit-Position: refs/heads/master@{#509353}
bratell
Renamed some global cache size constants
There were several different k*Cache*Size variables controlling
different caches but with the same name. These collided in jumbo
builds but also made it harder to discuss them and their values
so renaming them seems like a good improvement.

Bug: 746953
Change-Id: I1e8dc4f687c7b1e3ca8a9f9a5e80409029f8c4b0
Reviewed-on: https://chromium-review.googlesource.com/721205
Reviewed-by: Michael Nordman <michaeln@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#509341}
bratell
Give all different kFilteredMessages unique prefixes
There are 5 different kFilteredMessages arrays in content/browser
and some of them collide in jumbo (chromium unity builds)
build experiments.

This patch renames them to:
kCacheFilteredMessageClasses
kFileApiFilteredMessageClasses
kPepperFilteredMessageClasses
kRenderFilteredMessageClasses
kServiceWorkerFilteredMessageClasses

Bug: 746953
Change-Id: I3fc1b6f6ea3d0e5ccbb2ff47d4d476e02f5c2344
Reviewed-on: https://chromium-review.googlesource.com/721279
Reviewed-by: Ken Buchanan <kenrb@chromium.org>
Reviewed-by: Michael Nordman <michaeln@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#509321}
bratell
Give the different KDataFile variables unique prefixes
In the jumbo build experiment (chromium unity builds) there is a
collision between the two different kDataFile strings. This patch
renames them kNetworkErrorDataFile and kTargetsDataFile which also
matches their intended values.

Bug: 746953
Change-Id: Ib9f47fa4d358303c7cdbb65b54b40080521a915d
Reviewed-on: https://chromium-review.googlesource.com/721299
Reviewed-by: Bence Béky <bnc@chromium.org>
Reviewed-by: Dominic Mazzoni <dmazzoni@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#509320}
mstensho
[LayoutNG] Update some test expectations for multicol.
When multicol support was introduced in NG, a lot of tests started to crash and
time out. I wanted to get rid of those as soon as possible, so I created a
separate bug report. It seems that all the crashes and timeouts introduced by
multicol are now gone.

Some caret-range-outside-columns tests still occasionally time out (they're
actually just very slow), but that doesn't seem multicol related.

Bug: 757767
Change-Id: I4827a090b23b5220e182759a458f3c5a05f115e7
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Reviewed-on: https://chromium-review.googlesource.com/720930
Reviewed-by: Emil A Eklund <eae@chromium.org>
Commit-Queue: Morten Stenshorne <mstensho@opera.com>
Cr-Commit-Position: refs/heads/master@{#509123}
bratell
Add jumbo also for core/inspector generated files (-1 CPU minute)
Just clearing up minor targets that does not use the standard
templates for third_party/WebKit/Source/core and therefore did not get
jumbo automatically.

This removes about 1 CPU minute from the build effort, which is about
3% of the total cost of building blink/core (post-jumbo), and about
0.1% of the total effort building chrome+content_shell+blink_tests.

R=fs@opera.com

Bug: 713137
Change-Id: Iba18116c3da677dd0c530b8db98327e587187368
Reviewed-on: https://chromium-review.googlesource.com/720961
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#509050}
bratell
Rename CreateFileForProcess to be more unique.
There are two CreateFileForProcess functions (similar, both for webrtc
but not identical). This causes issues in jumbo builds since you
cannot easily take the address of an overloaded function.  The fix
here is to rename one of them to CreateEventLogFileForChildProcess
which is also more descriptive.

Bug: 746953
Change-Id: I8457adc2194fc24e191ed43e3fb78536c0bb87a3
Reviewed-on: https://chromium-review.googlesource.com/721022
Reviewed-by: Tommi <tommi@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#509040}
fs
<iframe> 'sandbox' tokens are ASCII case-insensitive
Per https://html.spec.whatwg.org/multipage/#attr-iframe-sandbox, tokens
are ASCII case-sensitive.

Bug: 627682
Change-Id: I06784fc40e5561846cd5d6073614b67a5f4e7509
Reviewed-on: https://chromium-review.googlesource.com/718209
Reviewed-by: Mike West <mkwst@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#509023}
fs
Rename ImageLoader::GetImage() to GetContent()
This better reflects what it returns, avoiding some confusion.
Also take this opportunity to rename ImageLoader::image_ to
ImageLoader.
Also tidy up some code by putting the ImageResourceContent in a local
variable in some cases where it is used repeatedly.

ImageLoader: :image_content_ and similarly for local variables in
Change-Id: Idb8db822b1467b006a04ffd690df1f551ff3b7e9
Reviewed-on: https://chromium-review.googlesource.com/719098
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Hiroshige Hayashizaki <hiroshige@chromium.org>
Reviewed-by: Kouhei Ueno <kouhei@chromium.org>
Cr-Commit-Position: refs/heads/master@{#509019}
mstensho
Fix jumbo build.
TBR=bratell@opera.com, cblume@google.com, wkorman@chromium.org

Bug: 745732
Change-Id: I04e2723d7da10a9021291e59d8edeeec87ee22e9
Reviewed-on: https://chromium-review.googlesource.com/720813
Commit-Queue: Morten Stenshorne <mstensho@opera.com>
Reviewed-by: Morten Stenshorne <mstensho@opera.com>
Cr-Commit-Position: refs/heads/master@{#509011}
bratell
Jumbo for blink/platform unit_tests (-9 CPU minutes)
This adds support for jumbo compilation (merging cc files into larger
translation units for faster compilations) in blink's platform
unit tests.

It shaves 9 CPU minutes from the compilation time which is roughly half
of the remaining time needed to compile blink/platform.

Bug: 761475
Change-Id: Iaafdd9a4b00951a6274582a8e90707e7d3ee7028
Reviewed-on: https://chromium-review.googlesource.com/718203
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#508947}
bratell
Organize all ClearSessionOnlyOrigins functions the same
There are 4 different ClearSessionsOnlyOrigins functions in
content/browser and 2 of them collided in jumbo build experiments.

This makes all 4 members of their logical class:
AppCacheStorageImpl::ClearSessionsOnlyOrigins
DOMStorageContextImpl::ClearSessionOnlyOrigins
IndexedDBContextImpl::ClearSessionOnlyOrigins
ServiceWorkerStorage::ClearSessionOnlyOrigins

Two of them (AppCache and IndexedDB) had to move for that to be
accomplished.

Bug: 746953
Change-Id: I9c8931b909fc78292e892dcff07d213abde2d8d1
Reviewed-on: https://chromium-review.googlesource.com/718753
Reviewed-by: Avi Drissman <avi@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#508935}
bratell
Support jumbo builds in platform/wtf (-2 CPU minutes)
Support jumbo builds in platform/wtf for 2 CPU less effort when using
use_jumbo_build=true. This is about 0.3% of the remaining compilation
effort so don't expect any large change from this commit.

Bug: 761475
Change-Id: Ie3c4b6a4a23783b36a2e333abff457509a4534d3
Reviewed-on: https://chromium-review.googlesource.com/678954
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#508874}
bratell
Jumbo for Blink core/editing unit_tests (-8.5 CPU minutes)
Final cleanup of parts of Blink core that had not been jumbified.
Some of the tests in core/editing are very similar so they have
been given custom namespaces.

Bug: 745732
Change-Id: I4db280458053cb31461247345cc2613b38eae884
Reviewed-on: https://chromium-review.googlesource.com/718207
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#508791}
fs
Replace CanvasImageSource::Source{Width,Height} with ElementSize
The ShapeDetector is the sole user of the SourceWidth() and SourceHeight()
methods on the CanvasImageSource.
For the current uses (and hopefully future uses) these should be identical
to the ElementSize() method on the same interface, so use that instead,
and remove the SourceWidth() and SourceHeight() implementations.

Change-Id: Ib4506d567b6f703688ab31873df0a8d23f9ac773
Reviewed-on: https://chromium-review.googlesource.com/716679
Reviewed-by: Miguel Casas <mcasas@chromium.org>
Reviewed-by: Justin Novosad <junov@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#508779}
bratell
Removed "using namespace" in BidiResolver.h
If this code uses "using namespace WTF::Unicode" there can be a
conflict for kLeftToRight which also exists in the Mac SDK (in
AVLTree.h). "using namespace" is also not allowed by the coding
standard, and in this case blocks a patch to jumbo compile platform
unit tests.

Bug: 761475
Change-Id: I363dd452adb4ae7ddf7586c9f98a8869f4958c4f
Reviewed-on: https://chromium-review.googlesource.com/718701
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#508776}
bratell
Giving some g_factories objects more distinct names
In jumbo builds cc files are compiled together and then multiple
objects all named g_factory causes compilation errors. An easy
fix is to use more distinct names since that is good for other
reasons as well.

Bug: 746953
Change-Id: If91d9ec90f64c18083f60e0647ddebe86dbf42e9
Reviewed-on: https://chromium-review.googlesource.com/719006
Commit-Queue: Daniel Bratell <bratell@opera.com>
Commit-Queue: Avi Drissman <avi@chromium.org>
Reviewed-by: Avi Drissman <avi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#508752}
bratell
Remove unused member LevelDBDatabase::lru_max_size_
Jumbo builds (builds where many cc files have been merged and
are compiled together) notices some more unused code than normal
builds and protested (warned) that LevelDBDatabase::lru_max_size_
was unused.

Simple fix: remove it.

Bug: 746953
Change-Id: Iaf58d87c4b962f671350984deaff0825b35e3ad8
Reviewed-on: https://chromium-review.googlesource.com/718857
Commit-Queue: Joshua Bell <jsbell@chromium.org>
Reviewed-by: Joshua Bell <jsbell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#508743}
bratell
Remove test that has been disabled since April 2013
StringOperatorsText.cpp tried to measure how many copies a string
concatenation does but has been disabled since April 2013 and was
ultimately broken September 2014. This patch removes it because it
uses a macro in a way that is incompatibile with jumbo.

Bug: 761475
Change-Id: If224b7a7dac8660b1f50c2814deffcd2d664c0fe
Reviewed-on: https://chromium-review.googlesource.com/718703
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#508704}
fs
Fix typo in <meta charset> - uft-8 -> utf-8
Change-Id: I69bca984bba263d003b7a23a95d62b3055c69fa5
Reviewed-on: https://chromium-review.googlesource.com/718676
Reviewed-by: Daniel Bratell <bratell@opera.com>
Reviewed-by: Mike West <mkwst@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#508693}
rune
Use a singleton invalidation set for self invalidations.
We used to create separate invalidation set instances for every single
invalidation set which just contains InvalidatesSelf(). That is, every
simple selector which only appears in the rightmost compound selector:

.a {}
#b:hover {}
#parent > .c {}

The invalidation sets for ".a", "#b", ".c", and ":hover" above are all
the same with only InvalidatesSelf() set.

Instead we can use a singleton invalidation set which is shared for all
such invalidation sets. If we later add more features to the set, we
replace the singleton with a new DescendantInvalidationSet instance
with InvalidatesSelf() set and add new features to that set.

This reduces memory use for invalidation sets from ~1MB to ~256kB on
facebook.com (see measurements in 773880).

Bug: 773880
Change-Id: I1018cea1f51628f1f940c3722cc2b48a3164a777
Reviewed-on: https://chromium-review.googlesource.com/713859
Reviewed-by: Eric Willigers <ericwilligers@chromium.org>
Commit-Queue: Rune Lillesveen <rune@opera.com>
Cr-Commit-Position: refs/heads/master@{#508692}
mstensho
[LayoutNG] Able to paint line boxes established by direct multicol children.
The legacy layout write-back code for inline layout used to place the
RootInlineBox objects on the multicol container block. But everything has to be
under the flow thread (an anonymous child of the multicol container).

A few new tests pass, and some other tests regressed, mainly because lines are
now visible, but we still don't fragment them. It's been wrong all along, just
invisible.

Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: Iec5bf74056d961935de45ae027076a79c703ed5b
Reviewed-on: https://chromium-review.googlesource.com/716877
Commit-Queue: Morten Stenshorne <mstensho@opera.com>
Reviewed-by: Emil A Eklund <eae@chromium.org>
Cr-Commit-Position: refs/heads/master@{#508686}
bratell
Giving some g_factory objects more distinct names
In jumbo builds cc files are compiled together and then multiple
objects all named g_factory causes compilation errors. An easy
fix is to use more distinct names since that is good for other
reasons as well.

Bug: 746953
Change-Id: Ie6c221225721e230e8b973ab30c4907bc3713836
Reviewed-on: https://chromium-review.googlesource.com/716496
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Avi Drissman <avi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#508663}
fs
Handle small/zero pixel densities correctly for img.naturalWidth/Height
ImageResourceContent::ImageSize has some special logic for clamping
image dimension that end up as "zero" (LayoutUnits) to one after having
been scaled by the multiplier it is passed.
This "correction" means that for images with a small/zero pixel density,
we'll end up returning 1 even when the density corrected dimension is
(integral) 0.

To handle this, pass 1 as the multiplier to avoid the dimension clamping
and perform the pixel scaling "manually".
While doing this also move the pixel density correction code to
HTMLImageElement, and get rid of the code from ImageResourceContent,
since it only used for <img> naturalWidth/naturalHeight.
This makes ImageResourceContent::SizeType only have a single value, so
remove the enumeration and the argument.

Bug: 773272, 773284
Change-Id: Ie4a907d6cb7f262c876a5010bb7dd6a92af1cb9a
Reviewed-on: https://chromium-review.googlesource.com/708815
Reviewed-by: Philip Rogers <pdr@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#508646}
bratell
Add include guards to content headers missing include guards
Headers without include guards can not be included more than once
and in jumbo builds there might easily be more than one include
of the same header.

Bug: 746953
Change-Id: I8c19cc0764b5c91dd1aa276ad1f17719b0a70bca
Reviewed-on: https://chromium-review.googlesource.com/716476
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#508637}
bratell
Change mojo module from "mojo" to "ui.mojom" because of conflicts
Having the mojo module be "mojo" means that code appear inside the
C++ namespace "mojo" which then can collide with other code.

This happened while preparing for jumbo compiling mojo code and
caused compilation errors in jumbo because of a mojo::blink
namespace colliding with the ::blink namespace.

Since there already was an ui.mojom.TextInputType from ime, this changes
the code to merge the two TextInputType types.

Bug: 771153
Change-Id: Ic88ed6932a2d64f35ffb7661eedde09dc4619691
Reviewed-on: https://chromium-review.googlesource.com/704581
Reviewed-by: Scott Violet <sky@chromium.org>
Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org>
Reviewed-by: Yuzhu Shen <yzshen@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Ken Rockot <rockot@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#508634}
mstensho
[LayoutNG] Prevent >=1px clamping of columns from stretching the container.
Move the clamping code to only affect the fragmentainer block size in the
constraint space. It's needed here to ensure content progression, but it
shouldn't affect anything else.

The bug was that if height was auto and there was no non-zero height content
inside, the multicol container would still become 1px tall, which was way too
much if there was nothing to contain.

Added four unit tests. Only the two using balancing used to fail. The two
without balancing are there for coverage.

Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: I590c42dee67b83ec8db724f0ea298f0b4dacb5b0
Reviewed-on: https://chromium-review.googlesource.com/716499
Commit-Queue: Morten Stenshorne <mstensho@opera.com>
Reviewed-by: Emil A Eklund <eae@chromium.org>
Cr-Commit-Position: refs/heads/master@{#508510}
mstensho
Add LayoutTests/fragmentation/ to blink_css_fragmentation_tests watchlist.
Also remove myself. Need to keep the empty list of watchers, or presubmit
checks will fail.

Change-Id: If5be8690ee7242a2c5366cecae148c4f871b6e6f
Reviewed-on: https://chromium-review.googlesource.com/717156
Reviewed-by: Aleks Totic <atotic@chromium.org>
Commit-Queue: Aleks Totic <atotic@chromium.org>
Cr-Commit-Position: refs/heads/master@{#508476}
bratell
Remove unused using statement in legacy_router_impl.cc
Noticed because Time is also a macro in X11.

Change-Id: I827617492e82b62eeaf668e24470b5c199718171
Reviewed-on: https://chromium-review.googlesource.com/716482
Reviewed-by: Timothy Dresser <tdresser@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#508466}
fs
Box-less VTTCues needn't be removed from their region
If the timeline was active and had a cue that was attached to a region,
but the cue was invisible, VTTCue::RemoveDisplayTree would still attempt
to remove the cue's box from the region when its end time was reached,
resulting in a crash.

Make the entire VTTCue::RemoveDisplayTree gated on the existance of a
cue box.

Bug: 772508
Change-Id: Ie27fe76ed37c3cb9e21a1c2943d70c9cbac6647a
Reviewed-on: https://chromium-review.googlesource.com/707136
Reviewed-by: Philip Jägenstedt <foolip@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#508457}
bratell
Give g_controllers more distinct names in content tracing
The two different g_controllers clashed when I tried a
jumbo build in content/browser. This renames them with more
distinct names.

Bug: 746953
Change-Id: I06daeb3e2f129c093dadbe88a1bd972bfcf436b3
Reviewed-on: https://chromium-review.googlesource.com/716677
Reviewed-by: Primiano Tucci <primiano@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#508437}
mstensho
[LayoutNG] Calculate overflow on multicol containers.
This gives us correct scrollbars, more or less.

Call UpdateLegacyMultiColumnFlowThread() a tad earlier, before calculating
overflow on the multicol container. It's the column set child that provides
overflow, so make sure that's calculated before calculating it on the parent.

That fixes two tests, but breaks two other tests. They break because of the
refs, which use absolutely positioned objects to cause a scrollbar (but that
doesn't seem to work in NG). But the actual tests now show scrollbars (which is
correct).

Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: I06a848a63c545559b67003f923208a65fd4f054b
Reviewed-on: https://chromium-review.googlesource.com/715598
Commit-Queue: Morten Stenshorne <mstensho@opera.com>
Reviewed-by: Emil A Eklund <eae@chromium.org>
Cr-Commit-Position: refs/heads/master@{#508408}
mstensho
Limit the maximum paint fragment count further.
Hopefully fixes a flaky test that tends to time out.

Bug: 763809
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I57ad04a4bfd26cb5e8e59786bc83e72052e60099
Reviewed-on: https://chromium-review.googlesource.com/716137
Reviewed-by: Chris Harrelson <chrishtr@chromium.org>
Commit-Queue: Morten Stenshorne <mstensho@opera.com>
Cr-Commit-Position: refs/heads/master@{#508389}
fs
Improve SVGInlineTextBox::CalculateBoundaries accuracy
Make said method compute and return a FloatRect (which is then converted
to a LayoutRect in SVGRootInlineBox::LayoutInlineBoxes), as well as
using a float for the baseline.
This should make for more compact, hopefully faster, code (due to less
FloatRect -> LayoutRect and LayoutUnit -> float transitions.) Using a
float for baseline will also yield a small improvement in accuracy, and
is consistent with similar calculations.

Bug: 757436
Change-Id: I8295a2d44f20476f1e234261f8a05fb175484d86
Reviewed-on: https://chromium-review.googlesource.com/708994
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Reviewed-by: Philip Rogers <pdr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#508372}
bratell
Undef MAYBE* macros for jumbo builds.
In jumbo builds source files are merged and macros leak between
cc files. The easiest way to avoid that is to undef them after use.

This fixes a compilation problem with the MAYBE() macro which was
defined in two different tests.

R=fs@opera.com, mstensho@opera.com

Bug: 713137
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: Ie06359ad1fd1f432ccf666ca12cbd824216283fc
Reviewed-on: https://chromium-review.googlesource.com/716216
Reviewed-by: Morten Stenshorne <mstensho@opera.com>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#508352}
mstensho
Fix jumbo build.
TBR=kojii@chromium.org

Bug: 713137
Change-Id: I77d45dc11495dd15740b0189556fce07b6f39d6e
Reviewed-on: https://chromium-review.googlesource.com/715996
Commit-Queue: Morten Stenshorne <mstensho@opera.com>
Reviewed-by: Daniel Bratell <bratell@opera.com>
Reviewed-by: Morten Stenshorne <mstensho@opera.com>
Cr-Commit-Position: refs/heads/master@{#508309}
mstensho
[LayoutNG] Don't round down when calculating balanced column height.
We need to take some extra care to make sure that the LayoutUnit we return,
multiplied with the number of columns, isn't ever so slightly less than the
content we are to put into the columns. Make it ever so slightly larger instead.
Example: If used column-count is 3 and the content we are going to fit is 100px
tall, we used to calculate a column height of 33.328125px. Now we'll return
33.34375px, which is larger than 33.333333333px, so that the content will
actually fit inside 3 columns, instead of 4.

Otherwise we'd get an overflow column with practically no content, and possibly
an unwanted scrollbar (when we add support for that).

Similar code in ColumnBalancer::ContentRun::ColumnLogicalHeight() for legacy
layout.

Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: I40c9b3004817223487a055ff533c2ad050454b51
Reviewed-on: https://chromium-review.googlesource.com/713416
Commit-Queue: Morten Stenshorne <mstensho@opera.com>
Reviewed-by: Emil A Eklund <eae@chromium.org>
Cr-Commit-Position: refs/heads/master@{#508174}
mstensho
[LayoutNG] UpdateAfterLayout() on flow threads, column sets, spanner placeholders.
This is just for good measure. I noticed that the PaintLayer established by a
flow thread had zero size, which can't be good. Not that this seemed to cause
any trouble, but still...

The UpdateAfterLayout() override in LayoutBlock now needs to be public, which
seems like a better idea than up-casting to LayoutBox when calling it.

Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: I8512d36a7fa8f0f68f2e95eb3c42e254a47b0727
Reviewed-on: https://chromium-review.googlesource.com/712035
Reviewed-by: Emil A Eklund <eae@chromium.org>
Commit-Queue: Emil A Eklund <eae@chromium.org>
Cr-Commit-Position: refs/heads/master@{#508140}
mstensho
[LayoutNG] Enable inline children special code for flow threads.
PlaceChildrenInLayoutBox() has special code for inline child fragments, to
basically skip them, unless we find floats. This wasn't executed for multicol.
This caused DCHECK failures and incorrect layout.

A few new tests now pass. One regresses, but that's because the test expected a
float to be at block offset 0, which it happened to be, since we didn't even
attempt to place it. Now we place it. We place it incorrectly, but at least we
place it. :)

Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: Ifee30438885c267f9d6c271a0db2f5c0f191fad6
Reviewed-on: https://chromium-review.googlesource.com/713858
Reviewed-by: Emil A Eklund <eae@chromium.org>
Commit-Queue: Morten Stenshorne <mstensho@opera.com>
Cr-Commit-Position: refs/heads/master@{#508126}
mstensho
[LayoutNG] Add NGPageLayoutAlgorithm.
This one is used when overflow-y is -webkit-paged-x or -webkit-paged-y.

Such declarations will trigger creation of LayoutPagedFlowThread in legacy
layout, very similar to LayoutMultiColumnFlowThread for multicol. The main goal
here is to produce a correct fragment structure (anonymous fragments for pages),
so that we don't get confused when writing them back to legacy layout. I got
some test regressions when trying to clean up some code, so I need to land this
first. Apart from that, I haven't made a huge effort to make it lay out
correctly.

It may be that this algorithm can also be used for printing, but we'll see.

One text autosizing test has started to fail, for some reason, but it seems that
it has started to fail similarly to constrained-and-overflow-scroll-ancestor.html,
so maybe it's a good sign. :)

Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: I5e9b15f353376c4508952dab80cf347e35bb7b27
Reviewed-on: https://chromium-review.googlesource.com/712635
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Reviewed-by: Emil A Eklund <eae@chromium.org>
Commit-Queue: Morten Stenshorne <mstensho@opera.com>
Cr-Commit-Position: refs/heads/master@{#508041}
bratell
Member IconLoader::icon_size_ is unused on Android
The member icon_size_ in IconLoader is unused on Android. Unused members
sometimes, and specifically in this case, cause warnings in jumbo builds
which breaks the build.

This patch removes the unused member if compiling for Android.

Change-Id: Ie9934cc5e0643a25bbc1c8055e08eab138cf33cb
Reviewed-on: https://chromium-review.googlesource.com/703655
Reviewed-by: Jochen Eisinger <jochen@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#507947}
fs
Simplify image size handling in ImageDocument
Move the static CachedImageSize(...) helper to the ImageDocument itself,
renaming it to ImageSize() and using |image_element_| as implicit input.
Simplify expression previously involving CachedImageSize to use the
ImageSize() method.

Change other users of ImageResourceContent::ImageSize to use the new
method instead. (Passing a zoom multiplier is redundant if all you want
to check is if the dimensions are empty.)

Simplify ImageDocument::Scale() by eliminating the "page zoom" factor,
which is part of both the numerator and denominator and hence cancel
out. This removes that last user of the PageZoomFactor(...) helper
function, so it can be removed.

Bug: 773272
Change-Id: Iaaa4a39879b9770a68ad95c045747581eeaa0a00
Reviewed-on: https://chromium-review.googlesource.com/709216
Reviewed-by: Philip Rogers <pdr@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#507796}
bratell
Renamed g_factory in src/chrome/browser/extensions
This is a preparatory patch for jumbo[1] in src/chrome.
The chrome code is now, with Blink jumbified, the single largest time
consumer during compilations. chrome/browser/extensions needs
about 30 CPU minutes to compile on a reference machine and that
should be about 5-10 times faster with jumbo.

[1] https://chromium.googlesource.com/chromium/src/+/master/docs/jumbo.md

Bug: 746957
Change-Id: I696dd1da7ca97e1773e4b0f2ab0714ab6a50021a
Reviewed-on: https://chromium-review.googlesource.com/708674
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Devlin <rdevlin.cronin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#507750}
bratell
Add include guards for client_surface_embedder.h
Found when experimenting with jumbo builds. Missing include guards
and multiple inclusion does not work well.

Bug: 773275
Change-Id: Ibc327c1c969f15a1dd417bba075eda8aa19953c2
Reviewed-on: https://chromium-review.googlesource.com/708759
Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#507729}
bratell
Remove duplicate helper class DestructCounter
There is already a DestructCounter in WTFTestHelpers.h. Having two
complicates jumbo builds and since they are identical, this one
can just be removed.

Bug: 745732
Change-Id: Ieca99932ff66f90d06b3fa8e21fa5b51da0d2f5c
Reviewed-on: https://chromium-review.googlesource.com/708743
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#507675}
karlo
Make sure that the border width isn't larger than the border box.
The border box is subject to pixel snapping, but the border width is
rounded.  If the border box snaps down and the border width rounds up,
overpainting can occur.  The border widths are now clamped to the
corresponding border box dimension to prevent this.  This behavior
is in line with Edge.

BUG=739431

Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I622d721579a0aad8109900268ca88d5cd85dd11e
Reviewed-on: https://chromium-review.googlesource.com/695109
Commit-Queue: Karl Anders Øygard <karlo@opera.com>
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#507644}
mstensho
Eliminate some unnecessary includes in WebKit/public/
Mostly about reducing the need for <algorithm>, which is heavy, but removed
some other includes as well.

Bug: 766315
Change-Id: Id92c08e96566dfe5c780f6a101dbfdeb43aa4ac3
Reviewed-on: https://chromium-review.googlesource.com/693236
Reviewed-by: Pavel Feldman <pfeldman@chromium.org>
Reviewed-by: Philip Rogers <pdr@chromium.org>
Reviewed-by: Evan Stade <estade@chromium.org>
Commit-Queue: Morten Stenshorne <mstensho@opera.com>
Cr-Commit-Position: refs/heads/master@{#507523}
bratell
Add include guards to udp_socket_resource_constants.h
Missing include guards on
ppapi/proxy/udp_socket_resource_constants.h caused issues with
jumbo compilation experiments.

Change-Id: Idad3ef224327ce6b0db9f27366992b28ab8a7d65
Reviewed-on: https://chromium-review.googlesource.com/707248
Reviewed-by: Antoine Labour <piman@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#507469}
bratell
Support jumbo for webkit_unit_tests (-2.5 CPU minutes)
This makes webkit_unit_tests support jumbo compilation. In CPU effort
that reduces the reference build time by 2.5 CPU minutes (about 0.3%
of the total build time)

This landed once already as
https://chromium-review.googlesource.com/677449 but broke Android
testing. This has a fix for that problem (splitting test correctly
into test + source_set)

Bug: 713137
Change-Id: I81a42f51e80f02c1874bc5171774d6d292c78a62
Reviewed-on: https://chromium-review.googlesource.com/707137
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#507468}
mstensho
[LayoutNG] Copy back the actual column height to legacy layout.
Don't use the content height of the multicol container. The columns may have
been shortened due to balancing.

I expected this to make some of the old layout tests pass. Only one did, and
that one wasn't really a relevant or illustrating one. Most of the existing
test probably depend on line box fragmentation working (which still doesn't
work at all in NG), and that could explain why no relevant tests started to
pass. Added a new and straight-to-the-point test that uses a simple block.

Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: Iab5fbbaab9491b430ab9eba1b6ea9ce0d3b0f4ec
Reviewed-on: https://chromium-review.googlesource.com/704837
Commit-Queue: Emil A Eklund <eae@chromium.org>
Reviewed-by: Emil A Eklund <eae@chromium.org>
Cr-Commit-Position: refs/heads/master@{#507425}
bratell
Support jumbo for mojo generated code (-42 CPU minutes)
Mojo generates a lot of code that is expensive to compile and
compiling them through jumbo saves roughly 80-90% of that effort,
which is 42 CPU minutes on the reference machine (surprising that 
mojo code needs that long to compile).

42 CPU minutes is -7% of the current "fastest" compilation, or
-4.5% of current master use_jumbo_build=true. The wall clock effect
will be similar for a 4c/8t machine but smaller the more cores
the computer have.

This patch includes a change to jumbo.gni to handle targets 
with no sources, and streamlines targets with only one file, 
because both happen through the mojo template.

Bug: 771153
Change-Id: Ia11a709711600f1b6eedd098bf47c1df2239a7a5
Reviewed-on: https://chromium-review.googlesource.com/697664
Reviewed-by: Bruce Dawson <brucedawson@chromium.org>
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Reviewed-by: Ken Rockot <rockot@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#507393}
bratell
Remove core/exported jumbo_excluded_source that is no longer needed
Because of an abundance of ToElement WebSearchableFormData was excluded
from jumbo. ToElement<ListedElement> was renamed so this exclude is no
longer needed.

Bug: 713137
Change-Id: I255f6ac5df213f62e5d1f6c2c3ea6b0e96540448
Reviewed-on: https://chromium-review.googlesource.com/704696
Reviewed-by: Jeremy Roman <jbroman@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#507358}
fs
Simplify setting of 'nonce' in SVGElement::InsertedInto
No need to use one hasAttribute() and two getAttribute() for something
that only needs one getAttribute(). (No synchronization required in this
case, so the 'fast' version can be used.)

Change-Id: I8b85ea56900fba73cf31b5a8f60cfdac280bd069
Reviewed-on: https://chromium-review.googlesource.com/704857
Reviewed-by: Mike West <mkwst@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#507307}
mstensho
[LayoutNG] Framework and initial support for column balancing.
For now, just figure out how tall the content inside the multicol container is,
and divide by the number of columns, and make sure that the result doesn't
overflow the multicol container (by examining height and max-height (or width
and max-width if that's what's at the end of your favorite block axis)).

Previously we just used 42px if the column block size was unspecified, so this
is a slight improvement, as can be seen by the increased number of passing
layout tests. However, there are also some regressions because of this, because
it turned out that 42px was in some cases a better number than what we produce
now. We need to detect unbreakable content by traversing the fragment tree to
improve on this.

Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: I980695a38c7bcaf09793869b1ca3f1e4d1451d37
Reviewed-on: https://chromium-review.googlesource.com/704640
Reviewed-by: Emil A Eklund <eae@chromium.org>
Commit-Queue: Morten Stenshorne <mstensho@opera.com>
Cr-Commit-Position: refs/heads/master@{#507283}
bratell
Qualify the blink namespace in mojo so that mojo::blink is not used
There is a mojo::blink namespace generated from
ui/platform_window/mojo/text_input_state.mojom and if that one is
visible then the string "blink" will be resolved to the wrong
namespace inside namespace mojo.

This fixes android jumbo compilation (only android generates
blink bindings from the mojom file mentioned above).

Bug: 771153
Change-Id: I923e3bebe4fac3e02fe27c60b4472275f9613df8
Reviewed-on: https://chromium-review.googlesource.com/703654
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#507070}
bratell
Fix for jumbo base scripts, don't double filter sources
If someone has managed to get a normally filtered file into
sources we need to not accidentally remove it again. This
problem triggered in net where android targets wanted to use
Linux files.

Bug: 772146
Change-Id: Ibca410c78c5a59e9f49c1d0e302204b598df25ca
Reviewed-on: https://chromium-review.googlesource.com/703694
Reviewed-by: Bruce Dawson <brucedawson@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#507004}
bratell
Support jumbo for webkit_unit_tests (-2.5 CPU minutes)
This makes webkit_unit_tests support jumbo compilation. In CPU effort
that reduces the reference build time by 2.5 CPU minutes (about 0.3%
of the total build time)

Bug: 713137
Change-Id: I358ff81769e5fb0ebf91cd1264713c547fd3e47e
Reviewed-on: https://chromium-review.googlesource.com/677449
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#506867}
rune
Don't update fragment anchor during DOM operations.
We tried to update the fragment anchor position immediately when all
script blocking sheets are removed. As part of that update we do a
style and layout update. The last script blocking sheet may be
removed as part of removing a style element from the DOM. Updating
style and layout in the middle of a DOM operation is not safe.

Instead, update the fragment anchor position during the next safe
lifecycle update. The crash was caused by Document still pointing to a
documentElement being removed while updating the style and layout tree,
but its parent pointer had already been set to null.

Bug: 771088
Change-Id: Iaaaeece23d795c2e41d31b9fb97fc795eb2b8305
Reviewed-on: https://chromium-review.googlesource.com/698305
Commit-Queue: Rune Lillesveen <rune@opera.com>
Reviewed-by: Steve Kobes <skobes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#506854}
mstensho
[LayoutNG] Ignore scrollbars in anonymous constraint spaces.
We already did ignore borders and padding, but forgot about scrollbars.

This was quite catastrophic for multicol, if a horizontal scrollbar was
actually taller than the columns. We'd end up pushing the scrollbar in front of
us (in block direction), column after column. Infinite loop (until OOM).

Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: I5c3038406ccf30eeb0e107b31c6bb783c7089ffd
Reviewed-on: https://chromium-review.googlesource.com/702299
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Commit-Queue: Morten Stenshorne <mstensho@opera.com>
Cr-Commit-Position: refs/heads/master@{#506844}
bratell
Removing "using namespace" in a global scope in password_manager
"using namespace" in a global scope breaks jumbo builds (and
are not allowed in the code style guide). This patch replaces them
with explicit namespaces.

Bug: 771153
Change-Id: If9c4de9e115c5531708cf06f64cb0088daca2d57
Reviewed-on: https://chromium-review.googlesource.com/697370
Reviewed-by: Vadym Doroshenko <dvadym@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#506837}
bratell
Removing strange sources from mojo typemap
This patch removes a random sources block that was ignored
in normal builds but triggered an assert in jumbo builds.

This also changes the OWNERS file according to presubmit instructions.

Bug: 771153
Change-Id: Ic32f92db25b1b4bd6e2087b95785b4934a94e120
Reviewed-on: https://chromium-review.googlesource.com/702258
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Steven Bennetts <stevenjb@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#506801}
bratell
Avoid using classes named Function in blink
There is a Function template in blink's wtf library and it is easy
to get mixed up in it if you try to use the symbol "Function"
elsewhere in blink.

In particular you can easily get an include of
platform/wtf/Functional.h (which exports WTF::Function to the global
scope) in jumbo builds:

Bug: 745732
Change-Id: Ic4f4a02e1aacc5819ce824b94e284bfc6caa964d
Reviewed-on: https://chromium-review.googlesource.com/702236
Reviewed-by: Yuki Shiino <yukishiino@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#506686}
mstensho
[LayoutNG] Implement NGColumnLayoutAlgorithm::ComputeMinMaxSize().
Intrinsic sizing for multicol used to be defined in the intrinsic and
extrinsic sizing CSS spec, but it must have been removed at some point.

All we have for inspiration now is the implementation in the legacy engine,
which landed with https://chromiumcodereview.appspot.com/23763002 back in 2013.
That, and common sense. :) The principles of min/max width calculation are,
after all, quite simple:

1. Figure out how much width we need to prevent avoidable overflow (min)
2. Figure out how much width we need to prevent avoidable soft wrapping (max)

Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: Id465449369d0227883e08228ce33346eb5b5cdba
Reviewed-on: https://chromium-review.googlesource.com/700460
Commit-Queue: Morten Stenshorne <mstensho@opera.com>
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#506680}
bratell
Avoid "unused member" warnings by removing unused member.
The profile_ member in TriggeredProfileResetter is not read by 
any code so let us remove it for platforms where it is not used.
This warning appeared in jumbo build
experiments (jumbo builds give the compiler more information which
triggers warnings that were not there before).

Bug: 770625
Change-Id: I4fd04d3147b01d0cf853b34c01ac7aa03fbd7d14
Reviewed-on: https://chromium-review.googlesource.com/695102
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Dominic Battré <battre@chromium.org>
Cr-Commit-Position: refs/heads/master@{#506679}
tmoniuszko
Generate projects for Visual Studio 2017 by default
GN should generate projects for Visual Studio 2017 by default since this
is the default compiler now.

Bug: 683729
Change-Id: I560983cf4c228a785e0ed2648567c7e0f07584d4
Reviewed-on: https://chromium-review.googlesource.com/700258
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Reviewed-by: Bruce Dawson <brucedawson@chromium.org>
Commit-Queue: Tomasz Moniuszko <tmoniuszko@opera.com>
Cr-Commit-Position: refs/heads/master@{#506665}
bratell
Removed unused member in device/bluetooth
Nobody used the member connection_monitor_started and that warning
broke jumbo build experiments (it notices such things more than
non-jumbo builds).

Change-Id: I77055474ecdbb1eaab8fbb925ea9b7a739a6f273
Reviewed-on: https://chromium-review.googlesource.com/700268
Commit-Queue: Daniel Bratell <bratell@opera.com>
Commit-Queue: Vincent Scheib <scheib@chromium.org>
Reviewed-by: Vincent Scheib <scheib@chromium.org>
Cr-Commit-Position: refs/heads/master@{#506429}
fs
Inhibit scroll-to-anchor for embedded SVGs
Fragment anchors are often used for "spriting purposes" when using SVG
documents, so scrolling the referenced element into view could seemingly
randomly scroll the top-level document (if it was same-origin with the
sprite sheet.) This is usually not an expected or wanted behavior.
Inhibit scrolling for all the embedding cases. (It's uncertain whether
this ought to affect <iframe>s or not, but let's include those too for
now. For simplicity.)

While here, also remove the dependency on SVGDocumentExtension for the
trivial operation of getting the root element.

Bug: 493802
Change-Id: I9942093331b2c53ba94ad83cfbe0a3b8b4ca6cbe
Reviewed-on: https://chromium-review.googlesource.com/700638
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#506411}
bratell
Removing "using namespace" in a global scope in autofill
"using namespace" in a global scope breaks jumbo builds (and
are not allowed in the code style guide). This patch replaces them
with explicit namespaces.

Bug: 771153
Change-Id: Ic45f740d8081b9f4e531b30ac05f6578a404de11
Reviewed-on: https://chromium-review.googlesource.com/697371
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Sebastien Seguin-Gagnon <sebsg@chromium.org>
Cr-Commit-Position: refs/heads/master@{#506367}
bratell
Removing "using namespace" in a global scope in translate
"using namespace" in a global scope breaks jumbo builds (and
are not allowed in the code style guide). This patch replaces them
with explicit namespaces.

Bug: 771153
Change-Id: Iea234b0e02636b198af20b0f2b6ad53e735ebf7b
Reviewed-on: https://chromium-review.googlesource.com/697704
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Hajime Hoshi <hajimehoshi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#506361}
bratell
Remove random string in mojo typemap file
There was a random sources block in image_filter.typemap which
broke jumbo since it has asserts that sources contains nothing
random. Normal builds ignored the sources entry since it didn't
match any toolchain.

Bug: 771153
Change-Id: I4b801ae350807701740946ca5ea5984c4086b61e
Reviewed-on: https://chromium-review.googlesource.com/697207
Reviewed-by: Stephen White <senorblanco@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#506350}
mstensho
Avoid inclusion of <algorithm> from popular header files when possible.
It's heavy to compile.

Bug: 766315
Change-Id: I0182fe1b9c8e8e6bd2024cb71bab7e3fcc501246
Reviewed-on: https://chromium-review.googlesource.com/695106
Commit-Queue: Morten Stenshorne <mstensho@opera.com>
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Cr-Commit-Position: refs/heads/master@{#506106}
fs
Revert behavior for non-scaling-stroke transform
https://codereview.chromium.org/2711503002 fixed getScreenCTM by
including the actual CTM from the element to the "screen" ("host"
coordinate space.) This of course also included the scale factor
contributed by any ancestor transforms. Including these transforms
however made evaluation of the non-scaling-stroke transform (the host
transform) unreliable, because of how that transform is "baked" into
the display list. (So if the host transform is sampled when it is
degenerate, all rasterization using that display list will produce
"weird" results - which will remain until an new display list is
recorded.)
Revert the computation of the non-scaling-stroke transform back
something akin to what it was previously until we can figure out a
better way to deal with this situation.

Bug: 747708
Change-Id: I8fdd19829c44f88d4d5e0bbbe4dec3ff2bee52a4
Reviewed-on: https://chromium-review.googlesource.com/697809
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#506099}
bratell
Adding missing include guard to test header file.
Found when experimenting with jumbo compilation for mojo
generated files.

Change-Id: I202a22fa9aa24df3f928992b67e3ad35321e7e1c
Reviewed-on: https://chromium-review.googlesource.com/693254
Reviewed-by: Ken Rockot <rockot@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#506085}
bratell
Jumbo for blink/platform/scheduler and its unit tests (-3.5 CPU minutes)
This adds support for jumbo to the scheduler code, including its
unittest. The total effect is about 3.5 CPU minutes which is about
30% of the remaining blink/platform time, or 0.5% of the total
content_shell+chrome+blink_tests compilation time.

Bug: 
Change-Id: I79f7b4d73e7a585a712744dbe7209f02bb043830
Reviewed-on: https://chromium-review.googlesource.com/693097
Reviewed-by: Alexander Timin <altimin@chromium.org>
Reviewed-by: Sami Kyöstilä <skyostil@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#505982}
bratell
Move shared test classes in wtf tests to a shared file
HashSet, HashMap and ListHashSet, Vector and Deque tests have the
same test classes: MoveOnly, CountCopy, DestructCounter, WrappedInt,
LivenessCounter, ...

This both deduplicates the code and prevents symbol collisions in
jumbo builds.

Bug: 745732
Change-Id: I19874a89ba4933260f3c80727ac5ba1160831ad1
Reviewed-on: https://chromium-review.googlesource.com/678934
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#505614}
bratell
Adding namespaces to prevent AppendToVectorTestTask clashes
Several test classes in scheduler have implemented
AppendToVectorTestTask and this patch gives those unique namespaces
to prevent them from clashing in jumbo builds.

Bug: 745732
Change-Id: I265c5507cbcc0f934f5904cc62033443442163f9
Reviewed-on: https://chromium-review.googlesource.com/692018
Reviewed-by: Alexander Timin <altimin@chromium.org>
Reviewed-by: Sami Kyöstilä <skyostil@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#505364}
bratell
Adding namespaces to prevent NopTask collisions in jumbo builds
Several test classes in scheduler have implemented NopTask and
this patch uses unique namespaces to prevent them from clashing
in jumbo builds.

Bug: 745732
Change-Id: I8c3ecc80ab0696fbe4634d330dfe1e942dbcfa8b
Reviewed-on: https://chromium-review.googlesource.com/690345
Reviewed-by: Alexander Timin <altimin@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#505338}
bratell
Adding namespaces to prevent name collisions in jumbo builds
Several test classes in scheduler use the same name. As an alternative
to renaming them, or some of them, use unique namespaces. This
solves problems with MockTask and MockObserver.

Bug: 745732
Change-Id: I56da313dbbfb116d28d45ccd5f261cdfbf48d188
Reviewed-on: https://chromium-review.googlesource.com/687674
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Alexander Timin <altimin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#505147}
fs
Fix pre-order traversal in LayoutBoxModelObject::HasNonEmptyLayoutSize
Passing 'this' (which |object| will be in this case) to
LayoutObject::NextInPreOrder, will turn it into a non-obvious way of
saying FirstChild.
Pass |root| instead of |object| to make the traversal actually pre-
order.

Bug: 769459
Change-Id: I6bc4c487faab053d02bc16826862234f15e2376e
Reviewed-on: https://chromium-review.googlesource.com/690254
Reviewed-by: Philip Rogers <pdr@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#505099}
fs
LayoutBoxModelObject::HasNonEmptyLayoutSize ignores SVG model objects
Extend the DCHECK to also cover SVG layout objects. The IsBox() check
should cover the SVG root, and if it is zero-sized any descendant should
not be considered to have a "non-empty" layout size. Overflow is
disregarded (as it seems to be in general in this method.)

Bug: 769459
Change-Id: Iea15b86032094a15608b614f5baa1057c5d6a686
Reviewed-on: https://chromium-review.googlesource.com/689997
Reviewed-by: Philip Rogers <pdr@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#505072}
mstensho
Less forcing of column flow flex children layout.
If the logical height of a child is intrinsic, we only need to lay it out if
there's a chance that the logical width of the flex container changed.
Otherwise nothing's going to change in there.

We do this by checking for kForceLayout, so that we don't risk descending into
deep subtrees just because some flex item sibling changed, for instance.

TEST=PerformanceTests/Layout/flexbox-deeply-nested-column-flow.html

Bug: 766633
Change-Id: I29337a176592779f07a37570fef8c85b1b4f6d99
Reviewed-on: https://chromium-review.googlesource.com/680214
Reviewed-by: Stefan Zager <szager@chromium.org>
Commit-Queue: Morten Stenshorne <mstensho@opera.com>
Cr-Commit-Position: refs/heads/master@{#504924}
mstensho
Don't include UseCounter.h from CSSParserContext.h and others.
public/platform/web_feature.mojom-blink.h is heavy.
Avoid it when possible.

Break the WebFeature defintion out of UseCounter.h and also make that
enum forward-declarable. There are quite a few translation units that
don't need to deal with UseCounter, just because they need to name a
web feature. And then there are also some places where we just need to
have the type forward-declared, such as in CSSParserContext.h

This reduces the number translation units that depend on UseCounter.h
by about 1601 compilation units, which is ~56%.

It seems that most translation units that include UseCounter.h really
need the WebFeature definition as well, so at least for now, it will
be included there.

Bug: 766315
Change-Id: I1cc0ee843373eb407c424ecd3c03c0f9080770bd
Reviewed-on: https://chromium-review.googlesource.com/669020
Commit-Queue: Morten Stenshorne <mstensho@opera.com>
Reviewed-by: Rouslan Solomakhin <rouslan@chromium.org>
Reviewed-by: Hiroki Nakagawa <nhiroki@chromium.org>
Reviewed-by: Rune Lillesveen <rune@opera.com>
Reviewed-by: David Bokan <bokan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#504840}
rune
Properly await promises in inert-tests.
I did not find a way to await each forEach or map in inert-inlines, so
I fell back on a plain old for-loop.

Bug: 726218, 769347
Change-Id: I196ff128ce95319b7ca297254745aec842ef6cff
Reviewed-on: https://chromium-review.googlesource.com/686814
Commit-Queue: Rune Lillesveen <rune@opera.com>
Reviewed-by: Jeremy Roman <jbroman@chromium.org>
Reviewed-by: Dave Tapuska <dtapuska@chromium.org>
Cr-Commit-Position: refs/heads/master@{#504733}
bratell
Changing files for some bindings testing helpers
This is a followup to commit e303b7d8 after same followup
review comments.

Bug: 745732
Change-Id: I768e2fb98d6084e5ea7d24edbe74916cd4bc09c4
Reviewed-on: https://chromium-review.googlesource.com/686896
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#504673}
bratell
Adding namespaces to prevent name collisions in jumbo builds
Several test classes in scheduler use the same name. As an alternative
to renaming them, or some of them, use unique namespaces.

Bug: 745732
Change-Id: I00bbbc957c58c04013a77b89b2b0cdf7c0c6321d
Reviewed-on: https://chromium-review.googlesource.com/682055
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Sami Kyöstilä <skyostil@chromium.org>
Reviewed-by: Alexander Timin <altimin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#504655}
rune
Missing return of Promise in automated pointerevents test.
Bug: 754222
Change-Id: Ic0c906535182da26f13246248e34023a4a896b8e
Reviewed-on: https://chromium-review.googlesource.com/686821
Reviewed-by: Dave Tapuska <dtapuska@chromium.org>
Commit-Queue: Rune Lillesveen <rune@opera.com>
Cr-Commit-Position: refs/heads/master@{#504649}
rune
Reland "Store new ComputedStyle object if style did not change."
This is a reland of https://chromium-review.googlesource.com/681755

The comparison of ComputedStyle does not take additional flags into
account. For instance, the AffectedBy* flags used for updating pseudo
classes like :hover. We used to call SetStyleInternal, but this was
removed because the previous comment said it was because of style
sharing which is now removed.

The display:contents case (768406) never worked because the code path
for StoreNonLayoutObjectComputedStyle() was always skipped when
computed style compared to be equal.

TBR=nainar@chromium.org,treib@chromium.org

Bug: 768406, 767832, 768790
Change-Id: Iee509e43e5fcc29d04944655d3d966ea61cc2adf
Reviewed-on: https://chromium-review.googlesource.com/684186
Commit-Queue: Rune Lillesveen <rune@opera.com>
Reviewed-by: Rune Lillesveen <rune@opera.com>
Cr-Commit-Position: refs/heads/master@{#504561}
mstensho
Performance test with deeply nested column flex containers.
In this teste there's a (rather) deeply nested subtree of column-flow flex
containers. The root of this subtree is itself a flex item in a row-flow
container. It has a sibling item whose child changes width, without affecting
the flexed size of the deeply nested subtree. This shouldn't require the
subtree to be re-laid out, but it currently does get re-laid out, thanks to the
fix for bug 752078.

Bug: 766633
Change-Id: I3d76736730f18082a299907f7b2a543d2b087ba8
Reviewed-on: https://chromium-review.googlesource.com/680216
Reviewed-by: Emil A Eklund <eae@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Morten Stenshorne <mstensho@opera.com>
Cr-Commit-Position: refs/heads/master@{#504458}
bratell
Adding missing include guard to ui/views/animation/ink_drop_stub.h
Change-Id: Id3e0139beeca89444f4100de67c21da579c49047
Reviewed-on: https://chromium-review.googlesource.com/684739
Reviewed-by: Mohsen Izadi <mohsen@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#504388}
bratell
Deduplicate some testing helper functions in v8 bindings test.
V8ScriptValueSerializerTest and V8ScriptValueSerializerTestForModules
had a few methods in common. This patch makes those methods be
shared, or in the case or non-identical methods, renamed to not collide
in jumbo builds.

Bug: 745732
Change-Id: Ia51d9f8dba1910902465dc4cffc193031b47ee3f
Reviewed-on: https://chromium-review.googlesource.com/677446
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#504379}
bratell
Remove a small header by including it in ToV8ForCore.h
A bit of cleanup after a recent commit that added an unnecessary header
file.

Bug: 745732
Change-Id: I1a90f22c9301ab60a09ea2fec9020c5da431460b
Reviewed-on: https://chromium-review.googlesource.com/684177
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#504361}
rune
Update counters after style recalc, not layout.
We used to update counters on every layout as long as there was at
least on LayoutCounter in the rendered document. Also, the update was
triggered by marking the changed element for layout.

We need to update counters when we add/remove LayoutCounter, or when
computed counter directives change on rendered elements during style
recalc. We update counters immediately after style recalc and layout
tree rebuild in Document::UpdateStyle().

Bug: 768357
Change-Id: I32693fefaa7bdb74cf959ef5ead4256d2ec2d0da
Reviewed-on: https://chromium-review.googlesource.com/678676
Commit-Queue: Emil A Eklund <eae@chromium.org>
Reviewed-by: Emil A Eklund <eae@chromium.org>
Cr-Commit-Position: refs/heads/master@{#504310}
bratell
Deduplicate a testing template in v8 bindings test.
The two implementations of ToV8 for testing collided in jumbo builds
so to avoid having to exclude some files in bindings tests from jumbo
this patch moves the template to a shared header.

Bug: 745732
Change-Id: Iaa7cf7e19d987e7a048fc606eafaedb49606959a
Reviewed-on: https://chromium-review.googlesource.com/677394
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Reviewed-by: Jens Widell <jl@opera.com>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#504304}
rune
Store new ComputedStyle object if style did not change.
The comparison of ComputedStyle does not take additional flags into
account. For instance, the AffectedBy* flags used for updating pseudo
classes like :hover. We used to call SetStyleInternal, but this was
removed because the previous comment said it was because of style
sharing which is now removed.

The display:contents case (768406) never worked because the code path
for StoreNonLayoutObjectComputedStyle() was always skipped when
computed style compared to be equal.

Bug: 768406, 767832
Change-Id: Iac4708e3cd3a6451d99c1bb2bb69efb74289b8eb
Reviewed-on: https://chromium-review.googlesource.com/681755
Reviewed-by: nainar <nainar@chromium.org>
Commit-Queue: Rune Lillesveen <rune@opera.com>
Cr-Commit-Position: refs/heads/master@{#504285}
mstensho
[LayoutNG] Prevent negative column widths.
If the width of the column gaps is larger than the available content width of
the multicol container, clamp negative column widths to zero. This fixes
DCHECK failures, since the engine doesn't fancy negative widths that much.

Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: I934b28dfe494ccdffb53c0693d1056ff87fed82e
Reviewed-on: https://chromium-review.googlesource.com/666896
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Commit-Queue: Morten Stenshorne <mstensho@opera.com>
Cr-Commit-Position: refs/heads/master@{#504134}
bratell
Revert "Add jumbo_test template"
This reverts commit 21f6df2a9bbb8c7bc60186c2ae1792b8361e1c5d.

Reason for revert: This added a dependency between //build and //testing that complicates life for //v8. Need time to evaluate what the best fix it.

Original change's description:
> Add jumbo_test template
> 
> We already support jumbo_source_set, jumbo_component and
> jumbo_static_library so this is just another common template with a
> non-default configuration.
> 
> This is needed in some form for jumbo in blink unittests.
> 
> Bug: 761475
> Change-Id: I443fedb4a41c43cf21102e2a2f8ced937961665c
> Reviewed-on: https://chromium-review.googlesource.com/671369
> Reviewed-by: Bruce Dawson <brucedawson@chromium.org>
> Commit-Queue: Daniel Bratell <bratell@opera.com>
> Cr-Commit-Position: refs/heads/master@{#503193}

TBR=dpranke@chromium.org,bratell@opera.com,brucedawson@chromium.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: 761475
Change-Id: Ie58618afa061107ccb28e29cda6e1c50e91629ba
Reviewed-on: https://chromium-review.googlesource.com/681716
Reviewed-by: Daniel Bratell <bratell@opera.com>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#504075}
fs
Add missing file extension (.h) in core/layout/BUILD.gn
TextDecorationOffsetBase.h was missing the .h qualification. This broke
Jumbo builds, but is incorrect in general.

Change-Id: Ife16025f01c1fc51ce6620b77140b1485a8fe994
Reviewed-on: https://chromium-review.googlesource.com/681334
Reviewed-by: Daniel Bratell <bratell@opera.com>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#504033}
mstensho
[LayoutNG] Re-enable CollapsingMarginsCase6 unit test.
Don't know when it started to pass, but at least it passes now. :)

Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: If9d7be1de73310d17996fa85c50a6a18f6169b10
Reviewed-on: https://chromium-review.googlesource.com/664806
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#503977}
mstensho
Include less from Element.h
Bug: 766315
Change-Id: I16b36710368f24b76c7598f9956e3cd80c95f4fc
Reviewed-on: https://chromium-review.googlesource.com/668443
Commit-Queue: Morten Stenshorne <mstensho@opera.com>
Reviewed-by: Kent Tamura <tkent@chromium.org>
Reviewed-by: Dominic Mazzoni <dmazzoni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#503941}
hugoh
Ignore <input> and <textarea>'s user-select styling
Background:
The CSS spec says that user-select does "selective inheritance",
see https://drafts.csswg.org/css-ui-4/#propdef-user-select.

<input> and <textarea> are two elements that are affected
by this. These elements should not inherit user-select from
parent elements.

Fixed problem:
<input|textarea readonly|disabled> could inherit
"user-select: none".

This regressed because
https://chromium-review.googlesource.com/570246
removed input|textarea's default user-select styling.

Solution:
Make all text controls always selectable. This is done in
LayoutTextControl::AdjustInnerEditorStyle.

Interoperability note:
<input readonly style="user-select: none"
value="Chrome 61 cannot select this.">. This CL fixes
this by ensuring that all text fields (i.e also readonly fields)
are always selectable (no matter user-select styling).

In other words, <input> and <input readonly> now behave in
the same way (both always allow selections) which aligns
us with Firefox and Edge.

BUG=761433, 764316

Change-Id: I89fc94a2a04caf3a87b12a9071081dafd48a8727
Reviewed-on: https://chromium-review.googlesource.com/663217
Reviewed-by: Yoshifumi Inoue <yosin@chromium.org>
Reviewed-by: Kent Tamura <tkent@chromium.org>
Commit-Queue: Hugo Holgersson <hugoh@opera.com>
Cr-Commit-Position: refs/heads/master@{#503793}
bratell
Rename GarbageCollectedHolder to avoid clash
There is already a GarbageCollectedHolder class in webkit_unit_tests
so this renames the second one GarbageCollectedHolderForToV8Test 
to avoid collisions in jumbo builds.

Bug: 745732
Change-Id: Idc625d35fd3590292d93e1a3a0b685db12bd7368
Reviewed-on: https://chromium-review.googlesource.com/677397
Reviewed-by: Jens Widell <jl@opera.com>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#503753}
wdzierzanowski
Allow lookup of videodecoder service to fix HW video decoding on macOS 10.13
Tha macOS sandbox has apparently changed in 10.13.  If we don't allow
lookup of the global Mach service com.apple.coremedia.videodecoder,
VTDecompressionSessionCreate() fails with
kVTVideoDecoderNotAvailableNowErr for some videos.

Bug: 767037
Change-Id: I4fee235d3808a504d57660976ef96b3a0a0f54d7
Reviewed-on: https://chromium-review.googlesource.com/677290
Commit-Queue: Robert Sesek <rsesek@chromium.org>
Reviewed-by: Robert Sesek <rsesek@chromium.org>
Cr-Commit-Position: refs/heads/master@{#503747}
karlo
offsetParent fails to consider continuations when searching for parent.
Block-level objects can have inline parents, but this triggers the
insertion of anonymous boxes and continuations, which offsetParent()
currently doesn't understand.

This change lets offsetParent() understand continuations better.
If an anonymous continuation is encountered when finding ancestors,
it will use the split inline as the ancestor, and continue searching
from there.

BUG=638177

Change-Id: I8850f9b5dacaffaa26b5f1c414f4f351709d7088
Reviewed-on: https://chromium-review.googlesource.com/674875
Reviewed-by: Emil A Eklund <eae@chromium.org>
Commit-Queue: Karl Anders Øygard <karlo@opera.com>
Cr-Commit-Position: refs/heads/master@{#503704}
karlo
[LayoutNG] Implement NG support for the line height quirk.
This cl implements NG support for the line height quirk.  There
are some deviations from the behavior of the old layout code:

- inline boxes with margins in the inline direction will now cancel
  the quirk, previously only borders and padding caused this.  This is
  in line with Gecko and Edge.

- in the existing layout engine, if there's a line break between two
  replaced elements separated by whitespace, the whitespace at the end
  of the line is preserved, in turn causing the line height quirk to
  be cancelled.  The whitespace preservation appears to be in
  violation of CSS 2.2, 16.6.1, and does not exist in NG.

A few test cases had to be altered to accommodate these differences.

Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: I3d8d7eaf0f2c17ef1cbd4545996c29d371aaf7c6
Reviewed-on: https://chromium-review.googlesource.com/664720
Commit-Queue: Karl Anders Øygard <karlo@opera.com>
Reviewed-by: Koji Ishii <kojii@chromium.org>
Cr-Commit-Position: refs/heads/master@{#503566}
mstensho
Remove unnecessary includes from UseCounter.h
Especially v8.h is heavy.

Bug: 766315
Change-Id: I9bd71910607f829fd0f71d8de0e64d3dbc741461
Reviewed-on: https://chromium-review.googlesource.com/669019
Reviewed-by: David Bokan <bokan@chromium.org>
Commit-Queue: Morten Stenshorne <mstensho@opera.com>
Cr-Commit-Position: refs/heads/master@{#503538}
bratell
Make sure to include traits before testing them in tests.
It's possible to check traits without including their specialization
or doing an implicit instantiation but then you get the default
values which can be wrong (or you would not have had a specialization).
In jumbo builds this is noted because first you get an implicit
instantiation and then an explicit instantiation which is a C++ error.

Fix is to make the explicit instantiation before any implicit
instantiations can happen. I do wish this error wasn't so invisible. It's
the third or fourth detected through jumbo builds.

Bug: 761475
Change-Id: Ifceb604e027ac8877764b584555007c854c74f03
Reviewed-on: https://chromium-review.googlesource.com/677383
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#503454}
bratell
Rename MockScrollableArea to be more unique
There is a MockScrollableArea defined in ScrollbarTestSuite.h so if
the compiler sees that function then you get compilation errors. That
happens in jumbo builds so to avoid this problem this patch renames
the function MockScrollableAreaForAnimatorTest which follows a pattern
used elsewhere.

Bug: 745732
Change-Id: Ia264efac21e4c358e50aa90ec666a95d32366642
Reviewed-on: https://chromium-review.googlesource.com/671424
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#503390}
rune
Expose CSSViewportRule only if runtime flag is enabled.
Bug: 766652
Change-Id: I7e76640a397eafeba28f178fb568b3af7cdccf49
Reviewed-on: https://chromium-review.googlesource.com/674924
Reviewed-by: Rick Byers <rbyers@chromium.org>
Commit-Queue: Rune Lillesveen <rune@opera.com>
Cr-Commit-Position: refs/heads/master@{#503370}
bratell
Add jumbo_test template
We already support jumbo_source_set, jumbo_component and
jumbo_static_library so this is just another common template with a
non-default configuration.

This is needed in some form for jumbo in blink unittests.

Bug: 761475
Change-Id: I443fedb4a41c43cf21102e2a2f8ced937961665c
Reviewed-on: https://chromium-review.googlesource.com/671369
Reviewed-by: Bruce Dawson <brucedawson@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#503193}
mstensho
Don't include Document.h from CSSParserContext.h
Around 330 fewer dependencies on Document.h.

Bug: 766315
Change-Id: I48cb525c176b27463f06090bad125bb2025b5759
Reviewed-on: https://chromium-review.googlesource.com/668444
Reviewed-by: Rune Lillesveen <rune@opera.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Mounir Lamouri <mlamouri@chromium.org>
Commit-Queue: Morten Stenshorne <mstensho@opera.com>
Cr-Commit-Position: refs/heads/master@{#503117}
mstensho
Include less from platform/geometry/ headers.
In particular, avoid <algorithm>.

Specifying the default template parameters to Vector in Forward.h
means that we can no longer specify them along with the template
definition.

Bug: 766315
Change-Id: I62eeaf5da82f59431d68011f904a1fcaf9f93f81
Reviewed-on: https://chromium-review.googlesource.com/668367
Commit-Queue: Morten Stenshorne <mstensho@opera.com>
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Cr-Commit-Position: refs/heads/master@{#502920}
bratell
Use differently named test classes in blink/platform tests
Both PODFreeListArenaTest and PODArenaTest had local test classes
naemd TestClass and those collided in jumbo build. This patch
changes the colliding names to be more unique inside blink/platform.

Bug: 745732
Change-Id: I8b31e62125c0e0eb84103d91f3e28dd9decd3f5f
Reviewed-on: https://chromium-review.googlesource.com/671265
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#502812}
bratell
Add prefix to test class names to make them more unique.
Jumbo didn't like that there were two TestExtraData classes in
platform/exported tests so this adds appropriate prefixes to them.

Bug: 745732
Change-Id: I9286225bf37dd39342e28aec8ddcca3da6504063
Reviewed-on: https://chromium-review.googlesource.com/671270
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#502811}
bratell
Support jumbo in blink/platform/loader (-2.5 CPU minutes)
Supporting jumbo in blink/platform/loader saves about 2.5 CPU minutes
of effort which is about 0.3% of the remaining build time. Not much
but it's only a few added characters.

Bug: 761475
Change-Id: I3ca17ff6fefb04c43dd9571aea5e749bfe86b81d
Reviewed-on: https://chromium-review.googlesource.com/671231
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#502809}
bratell
Rename InsertionAndDeletionTest to avoid collisions with other tests
There are InsertionAndDeletionTest functions in both PODIntervalTreeTest
and PODRedBlackTreeTest and in jumbo builds they collide. This patch
renames one of them TreeInsertionAndDeletionTest.

Bug: 745732
Change-Id: Ieba300f4532695060250cb70f88f53713158ccf1
Reviewed-on: https://chromium-review.googlesource.com/671228
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#502808}
bratell
Deduplicate some oilpan test utility functions.
Several utility functions existed in both HeapTest.cpp and
HeapCompactTest.cpp. This patch moves them to a shared file so that they
don't collide in jumbo builds. Also, less duplicate code is better.

Bug: 761475
Change-Id: Ia5a4bb0b205646564ccec7e87150283837028191
Reviewed-on: https://chromium-review.googlesource.com/671267
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#502806}
rune
Re-attach whitespace children when removing DOM nodes.
When the display type changes for an element in the DOM tree, the
WhitespaceAttacher would re-attach whitespace siblings appropriately
when traversing the re-attached element.

When a DOM node is removed from the tree, there will be no layout tree
rebuild. Or, at least, the removed node will not be encountered by the
traversal to trigger a re-attachment of any following whitespace nodes.

In order to fix that, introduce a hash set which contains elements
which had one of their layout tree children removed since the last
layout tree update. In the next UpdateStyle mark these elements for
layout tree rebuild and let the WhitespaceAttacher check if any of its
whitespace children needs to be re-attached.

Bug: 763291, 762833, 364817
Change-Id: I4d1b3df10d07f549abfea17df0184beca0623ef7
Reviewed-on: https://chromium-review.googlesource.com/661957
Commit-Queue: Rune Lillesveen <rune@opera.com>
Reviewed-by: nainar <nainar@chromium.org>
Cr-Commit-Position: refs/heads/master@{#502803}
mstensho
Include less from ContainerNode.h
Bug: 766315
Change-Id: I791ae5a12f0602c95194a60659e29e572dce5c8a
Reviewed-on: https://chromium-review.googlesource.com/668441
Reviewed-by: Kent Tamura <tkent@chromium.org>
Commit-Queue: Kent Tamura <tkent@chromium.org>
Cr-Commit-Position: refs/heads/master@{#502744}
bratell
Use differently named test classes in blink/platform tests
Both PaintChunkerTest and PaintControllerTest have test classes named
TestDisplayItem. These collide in jumbo builds so this patch renames
one of them TestDisplayItemGeneric to be unique inside blink/platform.

Bug: 745732
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I3cdd3b21f5523ef54fe3fbe29f4f7dc0607d7874
Reviewed-on: https://chromium-review.googlesource.com/671423
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#502675}
bratell
Fix header include guard for MockImageDecoder.h
The include guard was missing the actual define.

Bug: 745732
Change-Id: Id6435955c9011295b9583d29df6f45d008f0e192
Reviewed-on: https://chromium-review.googlesource.com/671233
Commit-Queue: Daniel Bratell <bratell@opera.com>
Commit-Queue: Stephen Chenney <schenney@chromium.org>
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Cr-Commit-Position: refs/heads/master@{#502602}
bratell
Rename EXPECT_RECT_EQ to be more unique and accurate
There is an EXPECT_RECT_EQ in //cc/test/geometry_test_utils.h which is
used by other tests. Since that causes problems in jumbo builds and
since it is not an equality comparison, this renames the macro
EXPECT_FLOAT_RECT_NEAR (following a pattern used elsewhere).

Bug: 745732
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I2720f72dbf0b8dac603c19d312109fb83fdfa313
Reviewed-on: https://chromium-review.googlesource.com/671230
Commit-Queue: Daniel Bratell <bratell@opera.com>
Commit-Queue: Stephen Chenney <schenney@chromium.org>
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Cr-Commit-Position: refs/heads/master@{#502601}
bratell
Reuse existing ValueToString<float> in test
There is a ValueToString<float> in FloatPolygon to be used by
POD tests so PODIntervalTreeTres doesn't need to define its own.

Noticed in a jumbo build where the two copies collided.

Bug: 745732
Change-Id: I7dd3cd6429ac9c1357dad8c7e3cf98140a58f9d3
Reviewed-on: https://chromium-review.googlesource.com/671266
Commit-Queue: Daniel Bratell <bratell@opera.com>
Commit-Queue: Stephen Chenney <schenney@chromium.org>
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Cr-Commit-Position: refs/heads/master@{#502598}
mstensho
Include less from Node.h
Node.h is a popular header, so this affects compilation times.

Change-Id: Iea71e63f518885aa7c1552470f75b78a1e29a4cf
Reviewed-on: https://chromium-review.googlesource.com/668370
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Reviewed-by: Kent Tamura <tkent@chromium.org>
Commit-Queue: Kent Tamura <tkent@chromium.org>
Cr-Commit-Position: refs/heads/master@{#502493}
mpichlinski
CHR-6375: Fixed crash on fallback from ANGLE to SwiftShader.
During fallback from ANGLE to SwiftShader it is required to unload
ANGLE libraries, otherwise SwiftShader will fail to load its own
libGLESv2 library.

Fixed ANGLE platform reset.

Fixed memory leak on X11 by fixing order in ShutdownGL.

Leak was occuring during fallback from libGL to software GL implementation
because ShutdownGL was cleaning GL implementation info before unloading
GL and therefore libGL was unloaded with known issue crbug.com/250813

Previous attempt with memory leak:
https://chromium-review.googlesource.com/640992

Reverted in:
https://chromium-review.googlesource.com/650286

Bug: 760063, 761930
Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
Change-Id: Ibea80f560aa50ba48cbff6f39a664095db38daaf
Reviewed-on: https://chromium-review.googlesource.com/668357
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Antoine Labour <piman@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Cr-Commit-Position: refs/heads/master@{#502409}
mstensho
[LayoutNG] Border and padding on multicol containers.
Code was missing both on the column fragment positioning side, and on
the legacy write-back side.

Moved the call to UpdateLegacyMultiColumnFlowThread() further
down. Apart from making sense (nice to have written back the size of
the multicol container before updating the flow thread), this became
necessary now, because otherwise ValidateColumnSets() would nuke the
logical width of the flow thread, now that the flow thread gets its
logical width set earlier.

Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: I1f6906f488b0251d4a00117e66ae6e06649568d6
Reviewed-on: https://chromium-review.googlesource.com/668372
Commit-Queue: Morten Stenshorne <mstensho@opera.com>
Reviewed-by: Emil A Eklund <eae@chromium.org>
Cr-Commit-Position: refs/heads/master@{#502406}
fs
Enable Skia's SkImageGenerator implementation
The SkImageGenerator_none.cpp implementation of
SkImageGenerator::MakeFromEncodedImpl always produce empty output.

Bug: 758459
Change-Id: I0745e28c7c9f4aa09efbe0f0de7c88faab87f868
Reviewed-on: https://chromium-review.googlesource.com/668408
Reviewed-by: Leon Scroggins <scroggo@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#502401}
fs
Propagate GlobalPaintFlags to EmbeddedContentView::Paint
The global paint flags - like the kGlobalPaintFlattenCompositingLayers
flag - were lost when descending into frames for painting. This would
cause composited layers to not be painted.
Add a GlobalPaintFlags argument to EmbeddedContentView::Paint, and pass
the flags carried by PaintInfo to it, and propagate as needed.

Bug: 765099
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I8c824dd12e7caa4c65cfd0bf0c3ab8de69ddfcfb
Reviewed-on: https://chromium-review.googlesource.com/667160
Reviewed-by: Chris Harrelson <chrishtr@chromium.org>
Reviewed-by: Philip Rogers <pdr@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#502328}
mstensho
[LayoutNG] Unbreakable content in block fragmentation.
This introduces limited support break-inside:avoid on in-flow block-level
elements. After layout, if we discover that we need to insert a break in front
a node, in order to honor break-inside:avoid, drop the fragment and retry at
the start of the next fragmentainer.

The constraint spaces now need to know the full fragmentainer block size, in
addition to what they have available. It's only when the available size is less
than the full fragmentainer size, that we can break before some node. Otherwise
there'd be no progress, and we'd end up with an infinite number of empty
fragmentainers.

Since I wanted to DCHECK that we only break before the first fragment of some
node, and therefore needed IsFirstFragment(), I moved that function along with
its friends from the anonymous namespace of ng_block_node.cc to a new
ng_fragmentation_utils.h file. There's some uncertainty as to how to treat
non-box fragments here, but we can figure that out later.

Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: I0ad419177d174fdc787061206ee1abd86deb8943
Reviewed-on: https://chromium-review.googlesource.com/666816
Commit-Queue: Morten Stenshorne <mstensho@opera.com>
Reviewed-by: Emil A Eklund <eae@chromium.org>
Cr-Commit-Position: refs/heads/master@{#502217}
bratell
Support jumbo in blink/platform (-20.5 CPU minutes)
Supporting jumbo in blink/platform saves about 20.5 CPU minutes on
the reference hardware.

A few files are still excluded and that is tracked in referenced bugs.

R=haraken@chromium.org

Bug: 761475
Change-Id: Ibdd1916f24c50c0ef2c62ca0b1c3b3e80643fb5d
Reviewed-on: https://chromium-review.googlesource.com/652998
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#502211}
rune
Rebuild non-distributed children with separate WhitespaceAttacher.
We used to pass in the same WhitespaceAttacher to the pass over non-
distributed child nodes which caused DidVisitText() to mess up the
whitespace re-attachment of whitespace being the left-most node of the
distributed nodes. In particular if there was a ::before element
changing display type preceding that left-most space.

Instead, make a RebuildNonDistributedChildren() method which passes in
a separate WhitespaceAttacher.

Bug: 765090
Change-Id: I4fd3bd417d7a5d7accdcb8b6155991093ab05f50
Reviewed-on: https://chromium-review.googlesource.com/666681
Reviewed-by: nainar <nainar@chromium.org>
Reviewed-by: meade_UTC10 <meade@chromium.org>
Commit-Queue: Rune Lillesveen <rune@opera.com>
Cr-Commit-Position: refs/heads/master@{#502202}
rune
Always rebuild layout tree for shadow root when host is rebuilt.
We tried to do a light-weight search for the first in-flow or text
child of the shadow root when shadow root children didn't need a
rebuild. This was done to make the WhiteAttacher point to the correct
text node when re-attaching the ::before element.

This code did not properly handle slots and insertion points. Also,
supporting display:contents for ::after means we will have to traverse
shadow root children from its last node until we find the first in-flow
to properly attach a space inside an ::after element.

For simplicity, and correctness, walk the shadow root children using
RebuildChildrenLayoutTrees() instead.

Bug: 764686
Change-Id: Icb9f8db7172ea54bd876fd95ca722c2906b4c639
Reviewed-on: https://chromium-review.googlesource.com/667138
Reviewed-by: nainar <nainar@chromium.org>
Reviewed-by: meade_UTC10 <meade@chromium.org>
Commit-Queue: Rune Lillesveen <rune@opera.com>
Cr-Commit-Position: refs/heads/master@{#502194}
tsniatowski
Forward cflags/cflags_cc in fuzzer gn template
Forwarding more of the usual gn variables is likely less surprising
-- defines and include_dirs are already forwarded, so add cflags and
cflags_cc too so it takes less effort to suppress a stray warning when
writing a fuzzer test case.

Change-Id: I5a490e4f2520871bdf649fc3ea3b75bbea0653df
Reviewed-on: https://chromium-review.googlesource.com/663860
Reviewed-by: Oliver Chang <ochang@chromium.org>
Reviewed-by: Max Moroz <mmoroz@chromium.org>
Commit-Queue: Tomasz Sniatowski <tsniatowski@opera.com>
Cr-Commit-Position: refs/heads/master@{#501926}
mstensho
[LayoutNG] Update multicol FlagExpectations for LayoutNG
Two multicol tests time out flakily, but if they don't, they pass.

TBR=atotic@chromium.org,kojii@chromium.org

Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: I63f2434629f833c6d52f0a4672faa1a3be1fa8a3
Reviewed-on: https://chromium-review.googlesource.com/666619
Reviewed-by: Koji Ishii <kojii@chromium.org>
Reviewed-by: Morten Stenshorne <mstensho@opera.com>
Commit-Queue: Morten Stenshorne <mstensho@opera.com>
Cr-Commit-Position: refs/heads/master@{#501923}
mstensho
LayoutNG] Calculate available fragmentainer space correctly.
When processing children, we forgot to subtract the BFC offset. We just used
the value returned from the constraint space's FragmentainerSpaceAvailable()
directly. Renamed that method in both the constraint space and the builder to
FragmentainerSpaceAtBfcStart(), to make it clear that this value doesn't
necessarily return the space available to the block currently being laid out.

Added FragmentainerSpaceAvailable() to the block algorithm instead, and also
moved IsOutOfSpace() into the class.

Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: If1232a1a33dd4c7655339eed2a88104b98f06bc0
Reviewed-on: https://chromium-review.googlesource.com/664805
Commit-Queue: Morten Stenshorne <mstensho@opera.com>
Reviewed-by: Emil A Eklund <eae@chromium.org>
Cr-Commit-Position: refs/heads/master@{#501750}
fs
Rework normalization in LayoutSVGInlineText
When performing (whitespace) normalization in an OriginalText override,
we miss normalization when the layout object has its text content
updated.
Perform the normalization in the SetTextInternal override instead to
cover the text-content-update case as well.

Bug: 645597
Change-Id: Id65cbbe75dbcc636f4cde38b8bb8887d05caf1d7
Reviewed-on: https://chromium-review.googlesource.com/664812
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#501678}
mstensho
[LayoutNG] Detect breaks that occur at the exact start of blocks.
Such breaks used to go unnoticed and cause misery and assorted unpleasantries.
Upgraded test expectations. Added a unit test.

As long as we haven't both got an in-flow child that broke AND exceeded
available fragmentainer space, we need to continue and lay out its siblings. A
block of zero height at a fragmentainer boundary actually belongs in the former
fragmentainer, not the latter. A consequence of this change is that even
non-zero height blocks that start at a fragmentainer boundary gets a
zero-height fragment in the former fragmentainer, before it continues in the
next fragmentainer. We may want to avoid this, but I'm not sure what's more
correct yet (or if it matters at all).

Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: I50e862d8c0dc787a47b799e2e639e5ca7ba57158
Reviewed-on: https://chromium-review.googlesource.com/663141
Commit-Queue: Morten Stenshorne <mstensho@opera.com>
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#501588}
mstensho
[LayoutNG] Prevent breaks from escaping the containing fragmentation context.
The call sites that call NGFragmentBuilder::AddChild() also need to explicitly
propagate breaks to their container, if that's what they want. The column
layout algoirithm *doesn't* want this.

Bug: 757767
Change-Id: I203c045fc85a65303dfe4c0cdad20eb60e64fba2
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Reviewed-on: https://chromium-review.googlesource.com/663859
Commit-Queue: Morten Stenshorne <mstensho@opera.com>
Reviewed-by: Emil A Eklund <eae@chromium.org>
Cr-Commit-Position: refs/heads/master@{#501444}
fs
Fix indentation in SVGImage::DataChanged
Change-Id: If895e92065d23e3da4f5d659c114abf024038b38
Reviewed-on: https://chromium-review.googlesource.com/663537
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#501319}
bratell
Make the forward declaration of ShapeResultSpacing correct.
The lack of PLATFORM_EXPORT on the forward declaration made the compiler
generate non-exported template instantiations which later caused linker
errors when those methods were missing.

R=drott@chromium.org, mstensho@opera.com

Bug: 764255
Change-Id: I2e03b924185dd7787d8129aa4c3c93716341cdbd
Reviewed-on: https://chromium-review.googlesource.com/663377
Reviewed-by: Dominik Röttsches <drott@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#501260}
bratell
Removed unused member variable in OpenTypeCapsSupport
Jumbo builds (where the compiler has more information) noticed that
run_ is unused and emitted a warning.

R=drott@chromium.org

Change-Id: I4a975375cfc772e77dd5e9692c5cdc982a8453c1
Reviewed-on: https://chromium-review.googlesource.com/663179
Commit-Queue: Daniel Bratell <bratell@opera.com>
Commit-Queue: Dominik Röttsches <drott@chromium.org>
Reviewed-by: Dominik Röttsches <drott@chromium.org>
Cr-Commit-Position: refs/heads/master@{#501256}
mstensho
[LayoutNG] Update test expectations to get rid of *some* of the unexpected passes.
All probably related to a recent change to TextIterator [1], which made legacy
layout dump text identically to what NG does.

[1] https://chromium-review.googlesource.com/c/chromium/src/+/653665

TBR=xiaochengh@chromium.org,kojii@chromium.org

Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Bug: 758816
Change-Id: Idda7617e54d254d76bf170cb59c8cd7c9ddd16d6
Reviewed-on: https://chromium-review.googlesource.com/663037
Reviewed-by: Morten Stenshorne <mstensho@opera.com>
Reviewed-by: Koji Ishii <kojii@chromium.org>
Commit-Queue: Morten Stenshorne <mstensho@opera.com>
Cr-Commit-Position: refs/heads/master@{#501234}
bratell
Avoid implicit conversion to CGRect and CGSize.
Implicit conversion to CGRect and CGSize can create extra conversion paths
(if known) between various rect/size types. Such extra conversion paths
can make the compiler fail to compile because of ambiguity.

Since conversions between CGRect and CGSize and internal types are lossy
both ways (float <-> int), it's best to avoid them anyway except when
they are really needed so this patch makes the cast operators explicit.

Short term, the implicit conversions break jumbo builds since the compiler
there knows "too much" and gets confused.

Bug: 761475
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I7b29fba20d4dd836015a594081f4e6256bd42732
Reviewed-on: https://chromium-review.googlesource.com/657645
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#500928}
mstensho
Adjustments for LayoutNG in LayoutBlockFlow line layout.
LayoutNG ignores LayoutMultiColumnFlowThread objects, so that the DOM
children of a multicol container become actual layout children of said
multicol container (on the NG side), without any intervening flow
thread block. However, the flow thread is still created even in NG (to
be able to paint and hit-test using the legacy layout structure), so
when NG invokes the legacy engine to lay out lines, we need to be able
to stop walking the ancestry when reaching the flow thread.

This fixes a bunch of crashing tests. They will now either pass or
fail (without crashing) instead.

Bug: 757767
Change-Id: I55693c34aefe53b47ceb7d7490059cc1182e5ff8
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Reviewed-on: https://chromium-review.googlesource.com/660297
Reviewed-by: Koji Ishii <kojii@chromium.org>
Commit-Queue: Morten Stenshorne <mstensho@opera.com>
Cr-Commit-Position: refs/heads/master@{#500925}
bratell
Unduplicated test helper function compare_markers.
The 3 copies of compare_markers collided in jumbo builds.

Bug: 745732
Change-Id: I4363201af5e78dfa5ee59148c48d89feeeaa1a80
Reviewed-on: https://chromium-review.googlesource.com/653277
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#500918}
tsniatowski
PlzNavigate: Fix multiple extra_headers in LoadUrlWithParams
NavigationControllerImpl operates on LoadURLParams, which state
"Extra headers for this load, separated by \n.", and on
NavigationEntryImpl, which state "Extra headers (separated by \r\n)
to send during the request". However, there is no conversion
from one form to the other, instead the extra headers are passed
verbatim.

This is not an issue when PlzNavigate is not enabled, because there
are more conversions on the way to and from the renderer, and things
end up working anyway. However, the shorter path of PlzNavigate
makes code further down choke on improper data when more than one
header is passed.

Fix by converting LF to CRLF when moving from LoadURLParams to
NavigationEntryImpl, and by adding a second header to a bunch of tests
that only sent one extra_header, thus not showing the problem.

BUG=763804

Cq-Include-Trybots: master.tryserver.chromium.linux:linux_site_isolation
Change-Id: I3e492520c8bd059b0d00107b38cfdf6daa8d96f2
Reviewed-on: https://chromium-review.googlesource.com/659577
Commit-Queue: Tomasz Sniatowski <tsniatowski@opera.com>
Reviewed-by: Camille Lamy <clamy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#500905}
mstensho
Fix jumbo build.
A static IsPositionValidFor() got added to two .cpp files almost at the same
time. Made them non-static and declared them in Position.h

TBR=rlanday@chromium.org,yoichio@chromium.org

Change-Id: I50d7006b20ddba2b7f58906eb167107cb38933e6
Reviewed-on: https://chromium-review.googlesource.com/659658
Reviewed-by: Morten Stenshorne <mstensho@opera.com>
Commit-Queue: Morten Stenshorne <mstensho@opera.com>
Cr-Commit-Position: refs/heads/master@{#500887}
bratell
Avoid global "using namespace std"
Importing all of namespaces into the global level causes problems with
jumbo builds (and also coding style). This patch removes a few
using namespace std;
from WTF.

Bug: 761475
Change-Id: Ibdb073db243c960058d06433666f24c6880f40a8
Reviewed-on: https://chromium-review.googlesource.com/657642
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#500877}
bratell
Renamed IsValid in blink/platform/network unit tests
Both ParsedContentDispositionTest and ParsedContentTypeTest used a local
helper function named IsValid. That is normally no big deal
but in jumbo builds they can be compiled in the same translation unit
and then the function will collide. This patch gives the functions
unique names so that no tests have to be excluded from jumbo.

Bug: 745732
Change-Id: Icc591553e54062eb189d8c7df243191c3f75f42a
Reviewed-on: https://chromium-review.googlesource.com/657840
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#500860}
fs
Reevaluate SVGImageElement 'href' when moving to a new document
This aligns the behavior of SVGImageElement to that of HTMLImageElement
for when the element is moved to a new document.

Bug: 720310
Change-Id: I2d78778a40de874fe45b710a0f284ded6cc8b84b
Reviewed-on: https://chromium-review.googlesource.com/657384
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#500655}
mstensho
[LayoutNG] Ignore block-start margin in subsequent fragments.
The block-start margin only matters in the first fragmentainer where the node
occurs. This used to trigger DCHECK failures.

The new unit test used to DCHECK-fail (but would pass with DCHECKs disabled).

Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: I8ee47f0d08a989f121c5bd8f18806398a4d6d837
Reviewed-on: https://chromium-review.googlesource.com/657182
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Commit-Queue: Morten Stenshorne <mstensho@opera.com>
Cr-Commit-Position: refs/heads/master@{#500614}
mstensho
Include ComputedStyle.h from fewer header files.
Brings down the number of translation units that depend on ComputedStyle.h by
268 (from around 1250).

A recent CL, https://chromium-review.googlesource.com/648536 increased the
number of dependent translation units by 222, so this CL should cancel out the
build time slowdown introduced by that CL.

Change-Id: Ic3eef583dd9679c5e5f94d99b5366003f96b89d8
Reviewed-on: https://chromium-review.googlesource.com/656117
Commit-Queue: Morten Stenshorne <mstensho@opera.com>
Reviewed-by: meade_UTC10 <meade@chromium.org>
Reviewed-by: Eric Willigers <ericwilligers@chromium.org>
Reviewed-by: Jia Meng <jiameng@chromium.org>
Cr-Commit-Position: refs/heads/master@{#500553}
bratell
Skip CharCategory alias since it was only used once
The CharCategory alias caused issues with jumbo builds. Too many
different interpretations of the symbol CharCategory triggered
compilation error. Since this alias really doesn't add any value,
it's easy to just drop it.

Bug: 761475
Change-Id: I8473fda6104a520f1464a88d49ba73599ea5fc62
Reviewed-on: https://chromium-review.googlesource.com/654838
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#500548}
rune
Use Previous/NextSibling instead of Slow*Child().
The former methods should be faster.

Change-Id: I1fb5ae5eeaea78b561cffbe6a78594af0f7a75b6
Reviewed-on: https://chromium-review.googlesource.com/655078
Reviewed-by: Morten Stenshorne <mstensho@opera.com>
Commit-Queue: Rune Lillesveen <rune@opera.com>
Cr-Commit-Position: refs/heads/master@{#500402}
fs
Remove unused state from TextTrackLoader
Merge kIdle and kLoading using the name of the latter.

Bug: 466083
Change-Id: I51041fac66a18df6ff0801bcc9606c1f1c04126d
Reviewed-on: https://chromium-review.googlesource.com/652473
Reviewed-by: Philip Jägenstedt <foolip@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#500382}
bratell
Remove unused "using base::Time"
When experimenting with jumbo builds in content this Time conflicts
with other things, and since it's unused it's easy to just remove it.

Change-Id: I853e2da58963c875158b750839a706e49edad93e
Reviewed-on: https://chromium-review.googlesource.com/653161
Reviewed-by: Avi Drissman <avi@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#500370}
mstensho
[LayoutNG] Customized fragment tree dumping, for use in unit tests.
Add a dump method to NGPhysicalFragment that returns a string, in addition to
the one we already have, that dumps to stderr. Add flags, so that callers can
pick exactly what to dump.

Change most of the column layout algorithm tests to compare a fragment dump
tree string to an expectation string. Maintaining and following what was going
on inside those tests was at the brink of what's humanly possible.

Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: I3151509d0cfb189c2330557bf25ef16b1a78f478
Reviewed-on: https://chromium-review.googlesource.com/652467
Commit-Queue: Morten Stenshorne <mstensho@opera.com>
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Reviewed-by: Aleks Totic <atotic@chromium.org>
Cr-Commit-Position: refs/heads/master@{#500353}
bratell
Avoid the name UnicodeRange in tests since it already exists
There is a platform/fonts type UnicodeRange so creating a function
with the same name causes confusion in jumbo builds where both
the type and the function will be known to the compiler at the same
time.

R=fs@opera.com

Bug: 745732
Change-Id: Id8c9ebfb7289cd546979638814b3e67b169f6671
Reviewed-on: https://chromium-review.googlesource.com/655457
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#500320}
bratell
Deduplicate a couple of hash function in platform/fonts.
In jumbo builds the two implementations of AddToHash and
AddFloatToHash collided. The AddToHash implementations were identical
while AddFloatToHash were slightly different, but it seems better for
everyone to merge them to a single set of functions.

Bug: 761475
Change-Id: I547b432970a4f4f03e2fea7af1e7bfdf400de149
Reviewed-on: https://chromium-review.googlesource.com/651418
Reviewed-by: Dominik Röttsches <drott@chromium.org>
Reviewed-by: Nico Weber <thakis@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#500297}
bratell
Removing global "using namespace" in platform Mac code
Importing namespaces into the global namespace causes issues in jumbo
builds. This patch removes some that were not even used and replace
some with explicit namespaces.

Bug: 761475
Change-Id: Iaec529e8a4ea8a8572575fb546263946282d1c59
Reviewed-on: https://chromium-review.googlesource.com/654641
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#500296}
bratell
Reuse an existing WebCoreFloatToSkScalar instead of copying it
There is one WebCoreFloatToSkScalar in platform/graphics/skia and one
in platform/geometry. This patch makes platform/geometry use the one in
platform/graphics/skia.

Bug: 761475
Change-Id: I32c938c5d3ea08d2cf3e7bfc2a0ff469006268b0
Reviewed-on: https://chromium-review.googlesource.com/653159
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#500285}
bratell
Merge two implementations of operator<<(FloatPoint3D)
There were two implementations of
TextStream& operator<<(TextStream& ts, const FloatPoint3D& p)
in filter serialization and while that is a minor issue, they caused
conflicts in jumbo builds so rather than excluding files from jumbo,
this moves the implementation to FloatPoint3D.h.

Bug: 761475
Change-Id: I11eee18d33f3eb34b50fb5849bb0e72d6a9a8089
Reviewed-on: https://chromium-review.googlesource.com/651417
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Cr-Commit-Position: refs/heads/master@{#500252}
fs
Forward-declare TextTrack in HTMLMediaElement.h
Change-Id: I535a633cdb7c31c632b61411bad00e5918d62e6c
Reviewed-on: https://chromium-review.googlesource.com/652548
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#500243}
fs
Empty files should not succeed in loading (as WebVTT)
Empty files will naturally not have a valid signature, so should fail
the signature check. When there's no data, the loader will not get any
DataReceived() callback, and hence not create a VTTParser. The
NotifyFinished() callback only checked for any error on the resource,
and would flag success if there were no resource error.
Check for the presence of a parser to detect the case where there's no
data and infer failure from it.

Also move the flush of the VTTParser first in NotifyFinished() since
it could, in rare cases, end up setting |state_| to kFailed.

Bug: 761969
Change-Id: If6c17d50ec968625a98490e625c5f248761efe1a
Reviewed-on: https://chromium-review.googlesource.com/650291
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Philip Jägenstedt <foolip@chromium.org>
Cr-Commit-Position: refs/heads/master@{#499925}
mstensho
[LayoutNG] Skip more virtual test suites.
Test suites that aren't relevant to NG only slow down testing and increase
noise.

TBR=atotic@chromium.org

Change-Id: Ideb731da4441ba839a8d9c19d2fa532c8fd086d1
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Reviewed-on: https://chromium-review.googlesource.com/649655
Commit-Queue: Morten Stenshorne <mstensho@opera.com>
Reviewed-by: Morten Stenshorne <mstensho@opera.com>
Reviewed-by: Emil A Eklund <eae@chromium.org>
Cr-Commit-Position: refs/heads/master@{#499723}
mstensho
NGLayoutAlgorithm::Node() doesn't need to be virtual
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: Iddc121dbcf39b0b7381ceb5485606a9a4fea9bdc
Reviewed-on: https://chromium-review.googlesource.com/649654
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#499684}
mstensho
[LayoutNG] Position multicol children in the legacy flow thread.
Previously we practically skipped positioning of direct multicol children. We
did actually attempt to position direct *floated* children, but that triggered
a DCHECK failure.

Re-enable and update the remaining disabled NGColumnLayoutAlgorithm unit tests.
They were all about floats, and therefore they used to trigger DCHECK failures.

Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: If3b1d464501a6132254ed4c016886303f224a4f2
Reviewed-on: https://chromium-review.googlesource.com/649532
Reviewed-by: Emil A Eklund <eae@chromium.org>
Commit-Queue: Morten Stenshorne <mstensho@opera.com>
Cr-Commit-Position: refs/heads/master@{#499675}
mstensho
[LayoutNG] Comma instead of 'x' as separator between coordinates in ToString().
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: I96dcb6728816c030fffda7fa67a0a90eb7d1fe5f
Reviewed-on: https://chromium-review.googlesource.com/650255
Reviewed-by: Emil A Eklund <eae@chromium.org>
Commit-Queue: Emil A Eklund <eae@chromium.org>
Cr-Commit-Position: refs/heads/master@{#499654}
bratell
Enable jumbo compiling for modules unit test (-13 CPU minutes)
When use_jumbo_build=true this patch should save roughly 12.5
CPU minutes on my reference machine.

Bug: 713137
Change-Id: Icaa9e691ca6212f336691755aea83ddbdbe23a18
Reviewed-on: https://chromium-review.googlesource.com/648408
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#499651}
fs
Remove residual Skips of WPT tests with absolute path
Absolute paths should be working now.

Bug: 498120
Change-Id: I21c69e34a7f9f17122a631b3e2a154c64974042b
Reviewed-on: https://chromium-review.googlesource.com/650248
Reviewed-by: Kent Tamura <tkent@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#499599}
bratell
Put local types in the anonymous namespace to be consistent.
BytesConsumerTestUtil.cpp imports BytesConsumer::Result as blink::Result
and BlobBytesConsumerTest.cpp imports BytesConsumer::Result as
blink::{anonymous namespace}::Result and for the Windows compiler that
causes a naming conflict in jumbo builds.

This patch puts both BytesConsumer::Result in the anonymous namespace so
that the compiler won't get confused.

Bug: 745732
Change-Id: I073a36fb71109be2e7fefff34268186d03a5547b
Reviewed-on: https://chromium-review.googlesource.com/649226
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#499595}
rune
Use code path for V1 instead of V0 without shadow trees.
The result should not be different, but this change is using the Shadow
DOM v1 code path for matching CSS rules when we don't have any Shadow
DOM v0 roots. This means we'll use the same code path as we'll use when
Shadow DOM v0 is removed.

Bug: 760405
Change-Id: I90a140db91d1282e59c037a476fef8b95b4e36cc
Reviewed-on: https://chromium-review.googlesource.com/647755
Reviewed-by: Takayoshi Kochi <kochi@chromium.org>
Commit-Queue: Rune Lillesveen <rune@opera.com>
Cr-Commit-Position: refs/heads/master@{#499570}
rune
Don't compute pseudo element style on other pseudo elements.
Nested pseudo elements are not allowed. We tried to match selectors for
scrollbar pseudo elements on ::before/::after pseudo elements. This
caused DCHECK failure in v1 shadow dom code trying to find assigned
slot for the ::before/::after pseudo. Instead, return early trying to
compute pseudo element style on pseudo elements.

Bug: 761838
Change-Id: Iaa571c96701ad9f5eb87cb93f0cfb085f42c043e
Reviewed-on: https://chromium-review.googlesource.com/649611
Reviewed-by: nainar <nainar@chromium.org>
Commit-Queue: Rune Lillesveen <rune@opera.com>
Cr-Commit-Position: refs/heads/master@{#499564}
rune
Don't request style on element when pseudo element style is null.
StyleForLayoutObject returns nullptr for ::before and ::after pseudo
elements when the pseudo element should not generate any boxes. This
caused us to incorrectly request OriginStyleForElement as a fall-back
which caused DCHECKs to trigger when trying to match rules against the
PseudoElement.

Instead, call OriginalStyleForElement as a fall-back in
CustomStyleForElement for elements which do have custom style callbacks
but don't need a specialized CustomStyleForElement.

Bug: 760405
Test: shadow-dom/crashes/css-focus-recalc.html
Change-Id: Ib7bcd50fd624f1ebcefc716533cf7098c203a2f4
Reviewed-on: https://chromium-review.googlesource.com/648984
Reviewed-by: nainar <nainar@chromium.org>
Commit-Queue: Rune Lillesveen <rune@opera.com>
Cr-Commit-Position: refs/heads/master@{#499558}
mpichlinski
CHR-6375: [Windows] Fixed crash on fallback from ANGLE to SwiftShader.
During fallback from ANGLE to SwiftShader it is required to unload
ANGLE libraries, otherwise SwiftShader will fail to load its own
libGLESv2.dll.

Fixed ANGLE platform reset.

Bug: 760063
Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
Change-Id: I02280b2c1cd6c3d81087c7e2befb412bb2a89510
Reviewed-on: https://chromium-review.googlesource.com/640992
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Antoine Labour <piman@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Cr-Commit-Position: refs/heads/master@{#499529}
bratell
Avoid having two g_unique_id in blink/platform
In jumbo builds the two g_unique_id clashed so to avoid having to
exclude one of the files from jumbo builds, it's better to rename them.

With this patch they will be g_unique_media_stream_component_id and
g_unique_media_stream_descriptor_id instead. As a bonus that should help
when analyzing binaries if anyone ever encounter these symbols.

Bug: 761475
Change-Id: Ib6c7120a4ff428bceaf1197441c1d8e271b63d18
Reviewed-on: https://chromium-review.googlesource.com/648409
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#499518}
bratell
Avoid using "using namespace ..." in global scope
With jumbo (unity builds, merged translation units) a
"using namespace WTF" or "using namespace Unicode"
statement intended for just the local translation unit will affect
many other translation units which causes various issues.

There is also (with the current implementation of jumbo) a warning
about such usage that will prevent things from compiling.

Without this patch this file will have to be manually excluded from
jumbo builds and I am trying to avoid such exclusion lists for
performance and maintenance.

Bug: 761475
Change-Id: Ide7c7f90b2b2190362f279008e31dfcc31309ad7
Reviewed-on: https://chromium-review.googlesource.com/648407
Reviewed-by: Kent Tamura <tkent@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#499517}
mstensho
[LayoutNG] Proper overflow legacy write-back inside multicol.
Only calculate overflow when at the last fragment. It's only then that we can
be sure that all children have been laid out. This used to trigger DCHECK
failures in legacy layout.

Also don't let a line break fool us into believing that the block fragmented
(by creating unfinished break tokens).

Re-enable and update unit test OverflowedBlock, now that overflow no longer
causes DCHECK failures in legacy layout.

Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: I9a104c3a7392db66c251e6f8da8ea8c7e16ba357
Bug: 757767
Reviewed-on: https://chromium-review.googlesource.com/645968
Commit-Queue: Morten Stenshorne <mstensho@opera.com>
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Reviewed-by: Koji Ishii <kojii@chromium.org>
Reviewed-by: Emil A Eklund <eae@chromium.org>
Cr-Commit-Position: refs/heads/master@{#499503}
mstensho
[LayoutNG] Skip assorted virtual test suites.
They don't seem relevant for NG.

TBR=atotic@chromium.org

Change-Id: Id701e9773cee3737cceb46440704125b9c9178e0
Reviewed-on: https://chromium-review.googlesource.com/647760
Reviewed-by: Morten Stenshorne <mstensho@opera.com>
Commit-Queue: Morten Stenshorne <mstensho@opera.com>
Cr-Commit-Position: refs/heads/master@{#499495}
fs
Support all of HTML's character entities in WebVTT
This updates the VTTTokenizer to align with the updated WebVTT tokenizer
steps:

 https://w3c.github.io/webvtt/#html-character-reference-in-data-state

and

 https://w3c.github.io/webvtt/#html-character-reference-in-annotation-state

The old states for handling "escapes" are removed, adding new ones per
above, for invoking the HTML parser's entity matcher.
A new WEBVTT_SWITCH_TO operation is also added so that state transitions
can be performed without advancing the input position. (Matches
mechanics of the HTML parser.)

The WPT test webvtt/parsing/cue-text-parsing/tests/entities.html is
updated since it had an incorrect expected result for the "&notit;"
case.

Old, now incorrect and/or redundant, tests for entities are removed.

Bug: 761303
Change-Id: I8ffb4fb2da7169c2ba3c84eb8c3206daabefbb30
Reviewed-on: https://chromium-review.googlesource.com/647586
Reviewed-by: Philip Jägenstedt <foolip@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#499473}
bratell
Removing unused "using namespace icu".
Having global "using namespace ..." complicates things, or prevents,
jumbo builds but this one seems completely unused anyway.

Bug: 761475
Change-Id: I592035ec4030b575acbdbcf9ca11b24217380ed5
Reviewed-on: https://chromium-review.googlesource.com/647567
Commit-Queue: Kent Tamura <tkent@chromium.org>
Reviewed-by: Kent Tamura <tkent@chromium.org>
Cr-Commit-Position: refs/heads/master@{#499433}
karlo
Add NG support for quirky bottom margins plus minor fix for top margins.
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: Ib3b5e035955c0d1379f7c206ef283934a2c31eae
Reviewed-on: https://chromium-review.googlesource.com/645988
Commit-Queue: Karl Anders Øygard <karlo@opera.com>
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#499406}
rune
Removed svg/as-image/svg-nested.html
The test is creating a 50000 nodes deep tree which at some point causes
a stack overflow in one of the recursive methods traversing the DOM
tree. Removing test as it arbitrarily causes a stack overflow.

Bug: 760904
Change-Id: Ib1b841a51cbe383bc630ca57b3dd07c8c859cee0
Reviewed-on: https://chromium-review.googlesource.com/647536
Reviewed-by: Philip Rogers <pdr@chromium.org>
Commit-Queue: Rune Lillesveen <rune@opera.com>
Cr-Commit-Position: refs/heads/master@{#499392}
bratell
Deduplicated the Determinant function in platform/geometry.
Both FloatQuad and FloatPolygon wants to calculate the
determinant/cross product between two FontSize objects and they each
had a copy of such a function. In Jumbo builds those two identical symbols
collided.

Bug: 761475
Change-Id: I216b0ec2bf6fdb450ef81315692396fc395c3d6e
Reviewed-on: https://chromium-review.googlesource.com/647847
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Cr-Commit-Position: refs/heads/master@{#499322}
bratell
Undef local CONVOLVE_ONE_SAMPLE after use.
Since other code use equally named macros we get jumbo build collision
unless they are undefined (or renamed).

Bug: 761475
Change-Id: I650fe9651a55e9fd682340f6160e2212de024f58
Reviewed-on: https://chromium-review.googlesource.com/647715
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Raymond Toy <rtoy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#499264}
bratell
Adding missing include guard on blink header
VideoFrameResourceProvider.h was missing an include guard which happened
to work in normal builds, but not in jumbo builds.

R=haraken@chromium.org, lethalantidote@chromium.org

Change-Id: I72b9c9343ce6862f26d2ae89beaf3af3b084e0ed
Reviewed-on: https://chromium-review.googlesource.com/647538
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#499206}
mstensho
[LayoutNG] Update FlagExpectations for LayoutNG
Just skip virtual/outofblink-cors/

TBR=atotic@chromium.org

Change-Id: Iaf28ead83625b01b1017f2a3cd2029299ed61b54
Reviewed-on: https://chromium-review.googlesource.com/645952
Commit-Queue: Morten Stenshorne <mstensho@opera.com>
Reviewed-by: Morten Stenshorne <mstensho@opera.com>
Reviewed-by: Aleks Totic <atotic@chromium.org>
Cr-Commit-Position: refs/heads/master@{#499180}
ptworek
Rename ArrayBufferContents::AllocationKind to GetAllocationKind.
Current name clashes with the name of the enum class the function is
supposed to return. Clang does not care, but gcc fails to compile the
code.

Bug: 760070
Change-Id: I935d91493a3fc7b289d03f776c14b6ec4f3f622a
Reviewed-on: https://chromium-review.googlesource.com/645549
Reviewed-by: Yuta Kitamura <yutak@chromium.org>
Commit-Queue: Yuta Kitamura <yutak@chromium.org>
Cr-Commit-Position: refs/heads/master@{#499171}
bratell
Add include guards to ipc message headers
The solution without include guards isn't compatible with jumbo.

Bug: 746953
Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
Change-Id: Iaaea9654fa2c38c40ab458678693518abe555d34
Reviewed-on: https://chromium-review.googlesource.com/580868
Reviewed-by: Antoine Labour <piman@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Reviewed-by: dsinclair <dsinclair@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#499162}
rune
Update :in-range/:out-of-range style when input type changes.
The :in-range/:out-of-range pseudo classes only matches for steppable
input typesi. We need to schedule style invalidations for these pseudo
classes when the input changes and at least one of them is steppable.
Changing between two steppable types may also need invalidation as
min/max/value need to be reparsed and their value may not be valid or
their interpretations may be different.

Bug: 751406
Change-Id: I0dc6517ded832fdaa63f1a3bdda161dcf2b3b448
Reviewed-on: https://chromium-review.googlesource.com/646327
Reviewed-by: Kent Tamura <tkent@chromium.org>
Commit-Queue: Rune Lillesveen <rune@opera.com>
Cr-Commit-Position: refs/heads/master@{#499158}
rune
Update :indeterminate style when input type changes.
The :indeterminate pseudo class only matches for certain input types.
We need to schedule style invalidations for :indeterminate when the
input changes between certain types.

Bug: 751406
Change-Id: I4cae67ce883ec0969119f788718db8b978f9a67d
Reviewed-on: https://chromium-review.googlesource.com/646168
Reviewed-by: Kent Tamura <tkent@chromium.org>
Commit-Queue: Rune Lillesveen <rune@opera.com>
Cr-Commit-Position: refs/heads/master@{#499157}
rune
Update :checked style when input type changes.
The :checked pseudo class only matches for certain input types. We need
to schedule style invalidations for :checked when the input changes
between certain types.

Bug: 751406
Change-Id: I818b498339a643766e0c619cb6b70bfd09c6efcb
Reviewed-on: https://chromium-review.googlesource.com/645987
Reviewed-by: Kent Tamura <tkent@chromium.org>
Commit-Queue: Rune Lillesveen <rune@opera.com>
Cr-Commit-Position: refs/heads/master@{#499156}
mstensho
Min-width takes precedence over max-width.
This also applies to intrinsic sizing, obviously. Clamp to max-width, THEN
min-width - not the other way around.

Bug: 754263
Change-Id: Ide083d3ba591b252cd1bfa28500be3c3c2324d79
Reviewed-on: https://chromium-review.googlesource.com/645306
Commit-Queue: Emil A Eklund <eae@chromium.org>
Reviewed-by: Emil A Eklund <eae@chromium.org>
Cr-Commit-Position: refs/heads/master@{#499024}
fs
Make SMIL interval position calculations more resilient
When 'dur' is mutated, all dependent state is not updated at once, but
rather lazily. This means that we can get into an inconsistent state
where some timing parameters have been applied while some have not, and
code that uses - and thus realizes - the state changes will be first to
observe them. This can for instance lead to an interval position of NaN
being computed, which would wreak havoc when computing values.

For the specific case, we'd first get an 'indefinite' simple duration
and compute an interval thereafter. When 'dur' is then modified to a
finite value the simple duration will not be updated until the next
frame is computed (triggered by mutation of 'end'), leaving us with
a valid/finite simple duration but an infinite interval. (This then
results in arithmetic with Inf, yielding a NaN value for |percent|.)

Properly updating all the interval computation state on mutations is a
somewhat involved task, so paper over it for now by computing the (last)
active duration differently depending on the case we're in. While this
change is a bit of a workaround, it should be a perfectly reasonable
change on its own.

Bug: 760057
Change-Id: I1878f06db500eb1251ef2ca1cd7f10e0c8f86a00
Reviewed-on: https://chromium-review.googlesource.com/645973
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Reviewed-by: Philip Rogers <pdr@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#498911}
mstensho
[LayoutNG] Skip siblings preceding the first break token.
When we resume layout in a next fragmentainer, assume that all siblings
preceding the one associated with the first break token have been finished.
Assuming the opposite - that all preceding siblings needed layout - caused
infinite loops.

Example:
<div style="columns:5; column-fill:auto; height:60px;">
    <div id="child1" style="height:100px;"></div>
    <div id="child2" style="height:100px;"></div>
</div>

After the first column, we'll have an unfinished break token for #child1, which
is what we'll resume with in the second column.
After the second column, we'll have a finished break token for #child1 and an
unfinished break token for #child2.
After the third column, we'll only have an unfinished break token for #child2,
since we skipped #child1 (it was finished).
The fourth column obviously only contains #child2. We shouldn't start at
#child1 just because it has no break token, or we'll get an infinite loop.

Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: I845a75bb646615223f9acfcc51e2fab04b05b058
Bug: 757767
Reviewed-on: https://chromium-review.googlesource.com/639410
Commit-Queue: Morten Stenshorne <mstensho@opera.com>
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#498817}
tmoniuszko
Add missing gurl.h include to sensor_permission_context.cc
Bug: 
Change-Id: I2988959a20acd595e046574773101b12135d0f1b
Reviewed-on: https://chromium-review.googlesource.com/640383
Reviewed-by: Raymes Khoury <raymes@chromium.org>
Commit-Queue: Tomasz Moniuszko <tmoniuszko@opera.com>
Cr-Commit-Position: refs/heads/master@{#498777}
rune
Setup AttachContext correctly when attaching pseudo elements.
AttachContext.previous_in_flow was not set up correctly when attaching
pseudo elements. That caused incorrect whitespace attachment in some
cases. In order to do this, the AttachContext for children is set up in
Element instead of ContainerNode as ::before and ::after are attached
in Element before/after ContainerNode::AttachLayoutTree.

I have separated the creation and attachment of pseudo elements.
CreatePseudoElementIfNeeded now only creates the pseudo element.
Previously pseudo elements were sometimes attached as part of style
recalc, at which point we don't have a previous_in_flow to pass in.
This is also good for our goal of separating style recalc and layout
tree construction completely.

We still create pseudo elements when attaching a layout tree if these
pseudo elements are inside a subtree being (re-)attached. When we start
constructing ComputedStyle for elements in sub-trees being re-attached
in RecalcStyle instead of LayoutTreeBuilder, we can fully rely on
pseudo elements being generated for RecalcStyle.

The modified test expectations are actually a revert of what was
changed when landing the WhitespaceAttacher.

Bug: 759532
Change-Id: Ic9f0f61d8c78bc8df7c5e589444a54583c78d763
Reviewed-on: https://chromium-review.googlesource.com/643269
Reviewed-by: nainar <nainar@chromium.org>
Commit-Queue: Rune Lillesveen <rune@opera.com>
Cr-Commit-Position: refs/heads/master@{#498767}
mstensho
[LayoutNG] Update FlagExpectations for LayoutNG
TBR=eae@chromium.org

Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: I91ac1b71748f838b922d3e93ba59aa9d17b39bff
Reviewed-on: https://chromium-review.googlesource.com/643070
Commit-Queue: Morten Stenshorne <mstensho@opera.com>
Reviewed-by: Morten Stenshorne <mstensho@opera.com>
Cr-Commit-Position: refs/heads/master@{#498488}
mstensho
Fix Jumbo build.
InspectorCacheStorageAgent.cpp has recently got a "using" declaration of
blink::protocol::CacheStorage::Header, and that collided with the
forward-declaration of blink::Header FetchHeaderList.h. Just remove the
forward-declaration. It looks like there's no class named Header in this
district anymore.

TBR=hiroshige@chromium.org

Change-Id: I54e5f7ff3b53a388930b1101417e0dc1fa46af2b
Reviewed-on: https://chromium-review.googlesource.com/643127
Reviewed-by: Morten Stenshorne <mstensho@opera.com>
Commit-Queue: Morten Stenshorne <mstensho@opera.com>
Cr-Commit-Position: refs/heads/master@{#498439}
fs
Don't rely on the cached 'local' flag when resolving <use> target
Since the document URL can change between a <use> 'href' is set, and the
actual element reference is resolved (looked up by id), the notion of
being "local" to the document can change during this window as well.
To avoid this, we need to re-evaluate the "is local" state before
resolving the element reference. This appears to match what other UAs
are doing (but they could/do differ in other ways.) Keep the cached
"is local" state and use where applicable to avoid the full URL compare.

Bug: 749855
Change-Id: Ibbe9b1fb7e37f86b57f775d288203fbd9b3d5f4e
Reviewed-on: https://chromium-review.googlesource.com/641459
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Reviewed-by: Philip Rogers <pdr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#498433}
rune
No need for forced SetStyleInternal for unchanged ComputedStyle.
This was done to avoid use of out-dated ComputedStyle from the style
sharing cache.

Also, removed unnecessary DCHECKs for style sharing sanity and fixed a
comment.

Bug: 721517
Change-Id: I3a4117328b7a62dac84ef3e81017702f6f40315b
Reviewed-on: https://chromium-review.googlesource.com/628519
Reviewed-by: nainar <nainar@chromium.org>
Reviewed-by: Eric Willigers <ericwilligers@chromium.org>
Commit-Queue: Rune Lillesveen <rune@opera.com>
Cr-Commit-Position: refs/heads/master@{#498417}
rune
Invalidate matched properties cache when registering custom properties.
Not forcing SetStyleInternal in Element::RecalcOwnStyle triggered a
DCHECK fail for (!!value == !!parsed_value) in
SetResolvedInheritedVariable(). We were hitting the matched properties
cache to re-use the custom properties from the style recalc before and
after property registration. The property registration made the custom
property value invalid due to the given syntax.

It's possible this should be detected as a style propagation change in
RecalcOwnStyle (ComputedStyle::operator==), but clearing the matched
properties cache seemed like a good idea since all style is
recalculated on property registration anyway.

This CL is split out of:

https://chromium-review.googlesource.com/c/chromium/src/+/628519/

Test: custom-properties/registered-property-cssom.html
Change-Id: I593f2fa1be788ce00872d46356924f6f5415174e
Reviewed-on: https://chromium-review.googlesource.com/635565
Reviewed-by: nainar <nainar@chromium.org>
Commit-Queue: Rune Lillesveen <rune@opera.com>
Cr-Commit-Position: refs/heads/master@{#498393}
mstensho
[LayoutNG] Move column layout algorithm tests to a separate file.
FragmentChildIterator and ConstructBlockLayoutTestConstraintSpace() are needed
by both block and column layout algorithm tests, so they needed a new home. Put
them in ng_base_layout_algorithm_test.h

Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: I664c1f0a7b04e6096b25bfff344f0ebae9fa1bd0
Reviewed-on: https://chromium-review.googlesource.com/641150
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Reviewed-by: Emil A Eklund <eae@chromium.org>
Commit-Queue: Morten Stenshorne <mstensho@opera.com>
Cr-Commit-Position: refs/heads/master@{#498162}
bratell
Be more specific about namespace for Message in unit tests
There is a gtest namespace ::testing and a helper namespace in blink
called ::blink::testing. If both are visible to the compiler,
::blink::testing will be used first and classes in ::testing will not
be found. This happens in jumbo builds so we better be more specific.

R=haraken@chromium.org

Bug: 
Change-Id: I611b7afde07fb217978e90cf041e89ce7634fb8e
Reviewed-on: https://chromium-review.googlesource.com/640699
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#498080}
rune
Missing comparison of timing functions for style recalc.
TransitionsMatchForStyleRecalc and AnimationsMatchForStyleRecalc did
not compare timing functions. Move common timing comparison into the
CSSTimingData class and add a test for timing functions.

This was discovered trying to remove a SetStyleInternal hack from

Element: :RecalcOwnStyle().
Change-Id: I11edf92a63653e44ca6384523d0dd4da7786dc25
Reviewed-on: https://chromium-review.googlesource.com/635723
Reviewed-by: Eric Willigers <ericwilligers@chromium.org>
Commit-Queue: Rune Lillesveen <rune@opera.com>
Cr-Commit-Position: refs/heads/master@{#498047}
mstensho
[LayoutNG] Make percent sizing work through anonymous constraint spaces.
Re-enable a unit test that now passes again. Also fixes a layout test.

Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: Ic1d15dccaefc5773ae4305771808d328548007b4
Reviewed-on: https://chromium-review.googlesource.com/637910
Commit-Queue: Morten Stenshorne <mstensho@opera.com>
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#498034}
mstensho
Revert "Locate the correct flow thread for spanners and out-of-flow objects."
This reverts commit b71ac55bffca1c376d6ed4e540194436daccfbd1.

Reason for revert: Opened up a can of worms. Re-seal it.

Original change's description:
> Locate the correct flow thread for spanners and out-of-flow objects.
> 
> LayoutFlowThread::LocateFlowThreadContainingBlockOf() used to just
> give up if the nearest ancestor flow thread of some object wasn't the
> containing flow thread.
> 
> The machinery that maintains the special-objects
> (LayoutMultiColumnSet, LayoutMulticolumnSpannerPlaceholder) for
> multicol still needs to ignore out-of-flow objects and spanners,
> though, so I moved the check for this from
> LocateFlowThreadContainingBlockOf() to
> FlowThreadDescendantWasInserted() and
> FlowThreadDescendantWillBeRemoved().
> 
> Checking on the paint side whether page logical height is known is
> no longer necessary.
> 
> Bug: 757947
> Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
> Change-Id: Ief0492e9de52b01b08c3bc0318cb3c8abe67ccd3
> Reviewed-on: https://chromium-review.googlesource.com/632057
> Reviewed-by: Emil A Eklund <eae@chromium.org>
> Commit-Queue: Morten Stenshorne <mstensho@opera.com>
> Cr-Commit-Position: refs/heads/master@{#497437}

TBR=mstensho@opera.com,robhogan@gmail.com,eae@chromium.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: 757947
Change-Id: Idf54d6cea2c03871c3a3443880f6b5b331cd7d30
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Reviewed-on: https://chromium-review.googlesource.com/637870
Reviewed-by: Morten Stenshorne <mstensho@opera.com>
Commit-Queue: Morten Stenshorne <mstensho@opera.com>
Cr-Commit-Position: refs/heads/master@{#497791}
rune
Support ::before and ::after pseudo elements after ::slotted.
Allow pseudo elements after ::slotted() pseudo elements to allow for
scopes to which an element has been slotted to generate ::before /
::after pseudo elements.

The scoping spec[1] allows tree-abiding[2] pseudo elements after
::slotted. This CL adds support for ::before and ::after.

[1] https://drafts.csswg.org/css-scoping/#slotted-pseudo
[2] https://drafts.csswg.org/css-pseudo-4/#treelike

Bug: 754081
Change-Id: I95d91ea06d8fa75537cf8c845da477b2fb034a7d
Reviewed-on: https://chromium-review.googlesource.com/616042
Commit-Queue: Rune Lillesveen <rune@opera.com>
Reviewed-by: Takayoshi Kochi <kochi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#497742}
mstensho
Include less from LayoutUnit.h.
This header is included in about 4500 compilation units.

Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: Icd9996f634899877c84e130f67fdf497a01734a0
Reviewed-on: https://chromium-review.googlesource.com/635726
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Reviewed-by: Philip Rogers <pdr@chromium.org>
Commit-Queue: Morten Stenshorne <mstensho@opera.com>
Cr-Commit-Position: refs/heads/master@{#497563}
mstensho
[LayoutNG] Copy multicol layout back to the LayoutObject tree.
Stitch fragments generated from the same layout input node
together, so that the flow thread based multicol implementation
in legacy layout can perform painting, hit-testing and other
layout tree read operations like before.

The position will only be updated when at the first fragment for
each node. The position of subsequent fragments are only relevant
to LayoutNG. For legacy layout they just contribute to the
block-size of the LayoutObject. Currently, the position will
still be mostly wrong, unless the object starts in the first
column.

One change to the break tokens was necessary: the final break
token also needs to set its used block size, just like the
preceding tokens, so that clients can tell that it's not the
first fragment of some node.

Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: I4a1491262bb5a5284abfa27695ed90beb620a56d
Reviewed-on: https://chromium-review.googlesource.com/634223
Commit-Queue: Morten Stenshorne <mstensho@opera.com>
Reviewed-by: Emil A Eklund <eae@chromium.org>
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#497478}
mstensho
Locate the correct flow thread for spanners and out-of-flow objects.
LayoutFlowThread::LocateFlowThreadContainingBlockOf() used to just
give up if the nearest ancestor flow thread of some object wasn't the
containing flow thread.

The machinery that maintains the special-objects
(LayoutMultiColumnSet, LayoutMulticolumnSpannerPlaceholder) for
multicol still needs to ignore out-of-flow objects and spanners,
though, so I moved the check for this from
LocateFlowThreadContainingBlockOf() to
FlowThreadDescendantWasInserted() and
FlowThreadDescendantWillBeRemoved().

Checking on the paint side whether page logical height is known is
no longer necessary.

Bug: 757947
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: Ief0492e9de52b01b08c3bc0318cb3c8abe67ccd3
Reviewed-on: https://chromium-review.googlesource.com/632057
Reviewed-by: Emil A Eklund <eae@chromium.org>
Commit-Queue: Morten Stenshorne <mstensho@opera.com>
Cr-Commit-Position: refs/heads/master@{#497437}
landell
Emacs jade rebranded to indium
Bug: 
Change-Id: Iff92857fcf7ef95578687dacb9309fcfad331e6d
Reviewed-on: https://chromium-review.googlesource.com/631720
Reviewed-by: Dominic Mazzoni <dmazzoni@chromium.org>
Commit-Queue: Dominic Mazzoni <dmazzoni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#497072}
mstensho
Reland "Reland "[LayoutNG] Bring back native support for multicol.""
This is a reland of 3bb64d0c55ed57a6522cc09f5be97be220c81fc0
Original change's description:
> Reland "[LayoutNG] Bring back native support for multicol."
> 
> This is a reland of b7e830ddf678c7daaa41a982fad87156b1bbbe4b
> Original change's description:
> > [LayoutNG] Bring back native support for multicol.
> > 
> > Still missing: Copy data back into the LayoutObject tree.
> > 
> > Some layout tests now fail, since we're not using the legacy engine to lay out
> > multicol. Quite a few crash or freeze, too.
> > 
> > Also brought back some of the unit tests. They needed some changes, because of
> > the following:
> > 
> > 1. We now create a fragment for each column, from an anonymous constraint
> > space. I.e. we have one more level of fragments, and it's the column fragments
> > that have their inline offset shifted to the correct column, rather than
> > setting it on the first child block, which is what we did last time these tests
> > worked.
> > 
> > 2. Mistakes introduced when converting test to using setBodyInnerHTML() rather
> > than building the layout trees programmatically:
> > https://codereview.chromium.org/2725773002
> > 
> > 3. New bugs. :)
> > 
> > Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
> > Change-Id: I4df85d684f0ddb8f7f0f75d15230a1ab61e9f9a0
> > Reviewed-on: https://chromium-review.googlesource.com/591429
> > Commit-Queue: Morten Stenshorne <mstensho@opera.com>
> > Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
> > Reviewed-by: Emil A Eklund <eae@chromium.org>
> > Cr-Commit-Position: refs/heads/master@{#496446}
> 
> TBR=eae@chromium.org,ikilpatrick@chromium.org
> 
> Change-Id: I479ea313e9ca9a56bdbbcad009a4c1b18a8b9e63
> Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
> Reviewed-on: https://chromium-review.googlesource.com/627358
> Commit-Queue: Morten Stenshorne <mstensho@opera.com>
> Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
> Reviewed-by: Koji Ishii <kojii@chromium.org>
> Reviewed-by: Morten Stenshorne <mstensho@opera.com>
> Cr-Commit-Position: refs/heads/master@{#496814}

TBR=eae@chromium.org,ikilpatrick@chromium.org

Change-Id: Ic81481d78f216e45d437968090f76479326ad708
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Reviewed-on: https://chromium-review.googlesource.com/631816
Reviewed-by: Morten Stenshorne <mstensho@opera.com>
Commit-Queue: Morten Stenshorne <mstensho@opera.com>
Cr-Commit-Position: refs/heads/master@{#497061}
mstensho
[LayoutNG] Update FlagExpectations for LayoutNG
TBR=eae@chromium.org

Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: I187593e14a27bf76957055cceb0ec00cf3fae65d
Reviewed-on: https://chromium-review.googlesource.com/631776
Commit-Queue: Morten Stenshorne <mstensho@opera.com>
Reviewed-by: Morten Stenshorne <mstensho@opera.com>
Cr-Commit-Position: refs/heads/master@{#497023}
rune
Remove Internals.isStyleSharing().
Not in use and style sharing is removed.

Bug: 721517
Change-Id: I9eb72320ba001102f4c29f22240cf9dbd3a4f460
Reviewed-on: https://chromium-review.googlesource.com/628520
Reviewed-by: nainar <nainar@chromium.org>
Reviewed-by: meade_UTC10 <meade@chromium.org>
Commit-Queue: Rune Lillesveen <rune@opera.com>
Cr-Commit-Position: refs/heads/master@{#496957}
mstensho
Reland "[LayoutNG] Bring back native support for multicol."
This is a reland of b7e830ddf678c7daaa41a982fad87156b1bbbe4b
Original change's description:
> [LayoutNG] Bring back native support for multicol.
> 
> Still missing: Copy data back into the LayoutObject tree.
> 
> Some layout tests now fail, since we're not using the legacy engine to lay out
> multicol. Quite a few crash or freeze, too.
> 
> Also brought back some of the unit tests. They needed some changes, because of
> the following:
> 
> 1. We now create a fragment for each column, from an anonymous constraint
> space. I.e. we have one more level of fragments, and it's the column fragments
> that have their inline offset shifted to the correct column, rather than
> setting it on the first child block, which is what we did last time these tests
> worked.
> 
> 2. Mistakes introduced when converting test to using setBodyInnerHTML() rather
> than building the layout trees programmatically:
> https://codereview.chromium.org/2725773002
> 
> 3. New bugs. :)
> 
> Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
> Change-Id: I4df85d684f0ddb8f7f0f75d15230a1ab61e9f9a0
> Reviewed-on: https://chromium-review.googlesource.com/591429
> Commit-Queue: Morten Stenshorne <mstensho@opera.com>
> Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
> Reviewed-by: Emil A Eklund <eae@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#496446}

TBR=eae@chromium.org,ikilpatrick@chromium.org

Change-Id: I479ea313e9ca9a56bdbbcad009a4c1b18a8b9e63
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Reviewed-on: https://chromium-review.googlesource.com/627358
Commit-Queue: Morten Stenshorne <mstensho@opera.com>
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Reviewed-by: Koji Ishii <kojii@chromium.org>
Reviewed-by: Morten Stenshorne <mstensho@opera.com>
Cr-Commit-Position: refs/heads/master@{#496814}
mstensho
[LayoutNG] Update FlagExpectations for LayoutNG
TBR=eae@chromium.org

Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: Ib177fd2754c2f05d7d7765e7599e6e6bb5d4ceab
Reviewed-on: https://chromium-review.googlesource.com/628878
Reviewed-by: Morten Stenshorne <mstensho@opera.com>
Commit-Queue: Morten Stenshorne <mstensho@opera.com>
Cr-Commit-Position: refs/heads/master@{#496740}
mstensho
[LayoutNG] Update FlagExpectations for LayoutNG
TBR=eae@chromium.org

Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: I3c0967138e9f7dd81d052f2f5117ba815ad3249c
Reviewed-on: https://chromium-review.googlesource.com/626296
Commit-Queue: Morten Stenshorne <mstensho@opera.com>
Reviewed-by: Morten Stenshorne <mstensho@opera.com>
Cr-Commit-Position: refs/heads/master@{#496640}
rune
Remove style sharing workaround from StyleInvalidator.
Style sharing is no longer present in the codebase, so the SetStyle /
LocalStyleChange should no longer be necessary here.

Bug: 721517

Change-Id: I0437f3c3c3188101299b053d81b36a7542baf610
Reviewed-on: https://chromium-review.googlesource.com/625880
Reviewed-by: Eric Willigers <ericwilligers@chromium.org>
Reviewed-by: nainar <nainar@chromium.org>
Commit-Queue: Rune Lillesveen <rune@opera.com>
Cr-Commit-Position: refs/heads/master@{#496597}
mstensho
[LayoutNG] Bring back native support for multicol.
Still missing: Copy data back into the LayoutObject tree.

Some layout tests now fail, since we're not using the legacy engine to lay out
multicol. Quite a few crash or freeze, too.

Also brought back some of the unit tests. They needed some changes, because of
the following:

1. We now create a fragment for each column, from an anonymous constraint
space. I.e. we have one more level of fragments, and it's the column fragments
that have their inline offset shifted to the correct column, rather than
setting it on the first child block, which is what we did last time these tests
worked.

2. Mistakes introduced when converting test to using setBodyInnerHTML() rather
than building the layout trees programmatically:
https://codereview.chromium.org/2725773002

3. New bugs. :)

Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: I4df85d684f0ddb8f7f0f75d15230a1ab61e9f9a0
Reviewed-on: https://chromium-review.googlesource.com/591429
Commit-Queue: Morten Stenshorne <mstensho@opera.com>
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Reviewed-by: Emil A Eklund <eae@chromium.org>
Cr-Commit-Position: refs/heads/master@{#496446}
rune
Removed leftover FIXME for whitespace attachment.
WhitespaceAttacher now handles this properly and it's done as part of
layout tree building, not style recalc.

Change-Id: I0fd970c86425c155429c008afdf280866b539a72
Reviewed-on: https://chromium-review.googlesource.com/626301
Reviewed-by: Morten Stenshorne <mstensho@opera.com>
Commit-Queue: Rune Lillesveen <rune@opera.com>
Cr-Commit-Position: refs/heads/master@{#496438}
mstensho
Saturated arithmetic when calculating multicol preferred widths.
With sufficiently large column-gap and high enough column-count, we'd
integer-overflow and end up with a negative gap_extra result, which is a value
that contributes to the preferred min/max preferred logical widths (which
therefore also could become negative). Let all values involved be of type
LayoutUnit, so that we get saturated arithmetic enabled.

Bug: 743230
Change-Id: I06d7d8f9c1214af35faf0b52f1652fc626cd67ef
Reviewed-on: https://chromium-review.googlesource.com/625624
Commit-Queue: Emil A Eklund <eae@chromium.org>
Reviewed-by: Emil A Eklund <eae@chromium.org>
Cr-Commit-Position: refs/heads/master@{#496329}
mstensho
[LayoutNG] Update FlagExpectations for LayoutNG
TBR=eae@chromium.org

Change-Id: Ic03560b8ed7ceb89c9bf746c04320b6c655ca1b2
Reviewed-on: https://chromium-review.googlesource.com/625918
Reviewed-by: Morten Stenshorne <mstensho@opera.com>
Commit-Queue: Morten Stenshorne <mstensho@opera.com>
Cr-Commit-Position: refs/heads/master@{#496293}
fs
Setting DOMMatrix.m33 or m44 to 1 should preserve is2D
Per [1], setting a value other than one (1) should clear the is2D flag.
We had the logic reversed.

[1] https://drafts.fxtf.org/geometry/#dommatrix-attributes

Bug: 756789
Change-Id: I37fcd4e20fedee6ba29bb164e81cdf324971f9a1
Reviewed-on: https://chromium-review.googlesource.com/623410
Commit-Queue: Dominic Cooney <dominicc@chromium.org>
Reviewed-by: Dominic Cooney <dominicc@chromium.org>
Cr-Commit-Position: refs/heads/master@{#496224}
mstensho
[LayoutNG] Clean up #includes.
NGLayoutResult needs to know about NGUnpositionedFloat, and
NGUnpositionedFloat needs to know about NGLayoutResult, so some
forward-declaring is necessary, to avoid circular dependencies.

Also got a dependency on the rather heavy ComputedStyle out of a header
file.

Change-Id: I8f35bbb48bf39118abf093d8ffb6c8a44545ca57
Reviewed-on: https://chromium-review.googlesource.com/623651
Commit-Queue: Morten Stenshorne <mstensho@opera.com>
Reviewed-by: Emil A Eklund <eae@chromium.org>
Cr-Commit-Position: refs/heads/master@{#496008}
rune
Let LayoutView::StyleWillChange handle viewport invalidation.
Make sure we only do a single SetStyle for viewport ComputedStyle
to which we propagate certain documentElement/body styles. That way we
can do style invalidation diffing on SetStyle. The invalidation will
now be done on LayoutView::StyleWillChange instead of invalidating
LayoutView from LayoutBox::StyleWillChange for documentElement and body
changes.

The LayoutView invalidation does still use a limited repaint based on
propagated background changes.

Bug: 755539

Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I629098e0073827513801311b730c62fc98079db4
Reviewed-on: https://chromium-review.googlesource.com/609984
Commit-Queue: Rune Lillesveen <rune@opera.com>
Reviewed-by: Philip Rogers <pdr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#495573}
rune
Check for HasNormalColumnGap() for LayoutView style changes.
PropagateStyleToViewport() propagated the absolute length of column-gap
only, and did not consider the "normal" keyword value. A change between
0 and "normal" was not detected as a change, hence the pages were not
laid out with the new value.

Bug: 756423
Change-Id: Idfe6c34b2e88fb741f25950c6d5a79290e33b728
Reviewed-on: https://chromium-review.googlesource.com/618926
Commit-Queue: Rune Lillesveen <rune@opera.com>
Reviewed-by: Morten Stenshorne <mstensho@opera.com>
Cr-Commit-Position: refs/heads/master@{#495256}
ckulakowski
Add missing dependency to //base for target device_monitors
Because of lack of this dependency Build sometimes fails because of
missing file base/debug/debugging_flags.h:

[2017-08-17 10:18:12] [526/33287] CXX
obj/media/device_monitors/device_monitors/system_message_window_win.obj
[2017-08-17 10:18:12] >>BUILDBOT>>errors>>compile>>
[2017-08-17 10:18:12] FAILED:
obj/media/device_monitors/device_monitors/system_message_window_win.obj
[2017-08-17 10:18:12] ninja -t msvc -e environment.x64 --
c:\buildbot\clcache\bin/gomacc.exe "c:\program files (x86)\microsoft
visual studio 14.0\vc\bin\amd64/cl.exe" /nologo /showIncludes
@obj/media/device_monitors/device_monitors/system_message_window_win.obj.rsp
/c ../../media/device_monitors/system_message_window_win.cc
/Foobj/media/device_monitors/device_monitors/system_message_window_win.obj
/Fd"obj/media/device_monitors/device_monitors_cc.pdb"
[2017-08-17 10:18:12] CLCache Error: Failed to process compiler output
[2017-08-17 10:18:12] >>BUILDBOT>>errors>>compile>>
[2017-08-17 10:18:12] ../..\base/debug/stack_trace.h(14): fatal error
C1083: Cannot open include file: 'base/debug/debugging_flags.h':
No such file or directory

Bug: 756401
Change-Id: I5468361db2558e082828eaba81458039167e6ab1
Reviewed-on: https://chromium-review.googlesource.com/618571
Reviewed-by: Dale Curtis <dalecurtis@chromium.org>
Commit-Queue: Dale Curtis <dalecurtis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#495240}
mstensho
[LayoutNG] Remove test failure expectation, now that they apparently pass.
One test doesn't fail anywhere. Three other tests only fail on Mac.

Change-Id: I799cfdac2f3ea32f5fde97957a7053bfd0146195
Reviewed-on: https://chromium-review.googlesource.com/616730
Reviewed-by: Aleks Totic <atotic@chromium.org>
Commit-Queue: Morten Stenshorne <mstensho@opera.com>
Cr-Commit-Position: refs/heads/master@{#495191}
rune
Only need to repaint background for color changes with no image.
Implement a VisuallyEqual for backgrounds because computed style
comparison would trigger unnecessary repaints when background image
related properties changed when there were no images.

Bug: 754685
Change-Id: I4c687426905e9687b298549b3015ac1207dbbc17
Reviewed-on: https://chromium-review.googlesource.com/612089
Reviewed-by: meade_UTC10 <meade@chromium.org>
Reviewed-by: Philip Rogers <pdr@chromium.org>
Commit-Queue: Rune Lillesveen <rune@opera.com>
Cr-Commit-Position: refs/heads/master@{#494738}
mstensho
When main axis is logical y, lay out flex items before getting intrinsic size.
There's no other way to figure out an object's intrinsic logical height, than
to lay it out. We cannot use the logical height we found in the previous layout
pass as intrinsic size.

Bug: 752078
Change-Id: Ibfd9426752ea8489256ac40f0c16e1a31a74a377
Reviewed-on: https://chromium-review.googlesource.com/612179
Reviewed-by: Emil A Eklund <eae@chromium.org>
Reviewed-by: Rune Lillesveen <rune@opera.com>
Commit-Queue: Morten Stenshorne <mstensho@opera.com>
Cr-Commit-Position: refs/heads/master@{#494488}
rune
Removed unused InheritColumnPropertiesFrom.
Change-Id: I39641a2c8fe9045ba3611050c03fd909d18b9ef4
Reviewed-on: https://chromium-review.googlesource.com/613161
Reviewed-by: Morten Stenshorne <mstensho@opera.com>
Commit-Queue: Rune Lillesveen <rune@opera.com>
Cr-Commit-Position: refs/heads/master@{#494086}
ingemara
Remove ignore_manifest in android_aar_prebuilt
Manifest merging is now supported! \o/

Bug: 643967
Change-Id: I460e4635fc2dc34592f50aed03f4056a5f402364
Reviewed-on: https://chromium-review.googlesource.com/567078
Reviewed-by: Andrew Grieve <agrieve@chromium.org>
Reviewed-by: Brandon Jones <bajones@chromium.org>
Commit-Queue: Ingemar Ådahl <ingemara@opera.com>
Cr-Commit-Position: refs/heads/master@{#494041}
rune
Propagate style to viewport after style recalc.
Since we are now propagating up to the viewport style and don't do any
inheritance after propagation, we can postpone the propagation until
after the style recalc has finished. That means we only have to call
StyleForElement on html and body elements once. It also means we can
remove the code to clear animation update from
InheritHtmlAndBodyElementStyles().

InheritHtmlAndBodyElementStyles() has been renamed to
PropagateStyleToViewport() which better explains what the method does.

The rem unit style recalc still needs to be triggered right after the
documentElement has been recalculated, but that code is moved to
the StyleEngine called from Element::RecalcOwnStyle().

Change-Id: I3850aee300aa31174f022581e615e5d66205d674
Reviewed-on: https://chromium-review.googlesource.com/608028
Reviewed-by: Morten Stenshorne <mstensho@opera.com>
Commit-Queue: Rune Lillesveen <rune@opera.com>
Cr-Commit-Position: refs/heads/master@{#493348}
mstensho
[LayoutNG] Place the root fragment.
All fragments but the root one are already placed by the fragment builder, when
walking through the children of a node. However, the fragment established by
the root node was left unplaced.

Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: I8233b49f271034d6af8b19ebf3fd59b226b59065
Reviewed-on: https://chromium-review.googlesource.com/602207
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Commit-Queue: Morten Stenshorne <mstensho@opera.com>
Cr-Commit-Position: refs/heads/master@{#492946}
rune
Apply :placeholder-shown and :read-write changes on input type change.
Whether :placeholder-shown, :read-only, and :read-write matches an html
input element depends on its type. Apply changes on type attribute
changes accordingly.

The placeholder text and visibility had to be updated sychronously,
otherwise the pseudo invalidation happens before the placeholder
visibility update as part of layout tree attachment.

Bug: 751406
Change-Id: Ic5bf1c62073cdf2648dfbf7876828323fecfe4be
Reviewed-on: https://chromium-review.googlesource.com/605252
Commit-Queue: Rune Lillesveen <rune@opera.com>
Reviewed-by: Kent Tamura <tkent@chromium.org>
Cr-Commit-Position: refs/heads/master@{#492935}
rune
No need for recalc on viewport propagation.
Before the fix for issue 732349, we relied on propagation from body to
viewport to affect the computed style of the root element which was
handled through a subtree recalc after viewport propagation. This is no
longer necessary. In fact, when rtl was specified on body, but the
computed style of html was ltr, InheritHtmlAndBodyElementStyles would
always trigger a subtree recalc, which would happen every frame we had a
style recalc.

There's a hope this will fix performance issue 739133.

I think that InheritHtmlAndBodyElementStyles can be made into a
PropagateStyleToViewport method which can be called at the end of
style recalc to avoid calculating html and body style twice. I'll try
to do that in a separate CL.

Bug: 739133
Change-Id: I0beebcf850661434eedb8bd19405698c27b7ae89
Reviewed-on: https://chromium-review.googlesource.com/606007
Commit-Queue: Rune Lillesveen <rune@opera.com>
Reviewed-by: Morten Stenshorne <mstensho@opera.com>
Cr-Commit-Position: refs/heads/master@{#492889}
mstensho
[LayoutNG] Physical fragment tree dump support.
Call NGPhysicalFragment::ShowFragmentTree() to dump the fragment tree.
The solution is inspired by NGLayoutInputNode::ShowNodeTree().

Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: Ie256d74bb80f2be5f372ec57791b693e4f5bdeaf
Reviewed-on: https://chromium-review.googlesource.com/602227
Reviewed-by: Emil A Eklund <eae@chromium.org>
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Commit-Queue: Morten Stenshorne <mstensho@opera.com>
Cr-Commit-Position: refs/heads/master@{#492575}
ingemara
Remove redundant GMS version meta-data
The <meta-data> is merged into the final apk manifest from dependency
manifests.

//third_party/android_tools:google_play_services_basement_java provides
the manifest and accompanying resource value.

Bug: 643967
Change-Id: I09590a6c060e4e92c45e928ad57d64546d90f7e3
Reviewed-on: https://chromium-review.googlesource.com/567138
Reviewed-by: Yuwei Huang <yuweih@chromium.org>
Reviewed-by: Ted Choc <tedchoc@chromium.org>
Commit-Queue: Ingemar Ådahl <ingemara@opera.com>
Cr-Commit-Position: refs/heads/master@{#492568}
rune
Evaluation of :required and :optional changes on input type changes.
If an input element changes to or from hidden in the presence of a
"required" attribute, the evaluation of :required and :optional will
change. Schedule invalidation sets to update computed style
appropriately.

Bug: 751406
Change-Id: I64ccaaa58067594e4a150f80fe73aaf4c9f93c83
Reviewed-on: https://chromium-review.googlesource.com/602027
Commit-Queue: Rune Lillesveen <rune@opera.com>
Reviewed-by: Kent Tamura <tkent@chromium.org>
Cr-Commit-Position: refs/heads/master@{#492304}
mstensho
[LayoutNG] Remove NGPhysicalFragment::NGFragmentType from NGFragmentBuilder.
It was always kFragmentBox, even for inline layout, so it was meaningless.

Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: If03b39b4315b8165045488901dbd67225ff54e8a
Reviewed-on: https://chromium-review.googlesource.com/602245
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Reviewed-by: Koji Ishii <kojii@chromium.org>
Commit-Queue: Morten Stenshorne <mstensho@opera.com>
Cr-Commit-Position: refs/heads/master@{#492292}
rune
Add tests for scroll direction of propagated writing-mode from body.
Change-Id: Ief891686240dcf4c30012b6282b1616de0500878
Reviewed-on: https://chromium-review.googlesource.com/602240
Reviewed-by: Koji Ishii <kojii@chromium.org>
Commit-Queue: Rune Lillesveen <rune@opera.com>
Cr-Commit-Position: refs/heads/master@{#492254}
rune
Support unclosed parentheses at end of sizes attribute.
Instead of returning false, match unclosed left-parentheses and
function tokens. Fixes eight cases in the WPT.

Bug: 749381
Change-Id: I7b3f061ee026be1da9ab377488f83007a2a0689d
Reviewed-on: https://chromium-review.googlesource.com/599851
Reviewed-by: Renée Wright <rjwright@chromium.org>
Commit-Queue: Rune Lillesveen <rune@opera.com>
Cr-Commit-Position: refs/heads/master@{#492235}
mstensho
Don't #undef STATIC_ASSERT_ENUM.
Causes problems for Jumbo builds.

TBR=nverne@chromium.org

Change-Id: If4a37cff9ae787ec0c750b652663fd2d8d6b1a66
Reviewed-on: https://chromium-review.googlesource.com/598090
Reviewed-by: Morten Stenshorne <mstensho@opera.com>
Reviewed-by: Nicholas Verne <nverne@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Morten Stenshorne <mstensho@opera.com>
Commit-Queue: Nicholas Verne <nverne@chromium.org>
Cr-Commit-Position: refs/heads/master@{#491391}
mstensho
Need to #define EXPECT_RECT_EQ in a header file.
Multiple definitions in various .cpp files causes problems for Jumbo builds.

TBR=chrishtr@chromium.org

Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I907fc4bbba428de44579c9466a8884270102483b
Reviewed-on: https://chromium-review.googlesource.com/598070
Commit-Queue: Morten Stenshorne <mstensho@opera.com>
Reviewed-by: Chris Harrelson <chrishtr@chromium.org>
Reviewed-by: Morten Stenshorne <mstensho@opera.com>
Cr-Commit-Position: refs/heads/master@{#491389}
rune
Remove rulesets used for style sharing.
After style sharing code is removed, we no longer need the sibling and
uncommon attribute rulesets to reject style sharing. This also means
RuleFeatureSet no longer needs to be traced, so some oilpan cruft could
be removed.

The StyleEngine API UsesSiblingRules() relied on the size of the sibling
ruleset, but it was only used as what looked like an optimization for
:empty selector updates where :empty is found in non-rightmost compound
selectors. However, the presence of :empty itself would add a sibling
selector in the previous code, and :empty in non-rightmost compound not
followed by an adjacent selector would only have de-generate cases like
":empty span" which could never match anything, or ":not(:empty) span"
which would always be true if the whole selector matches. Therefore, it
makes sense to just drop the API/check.

Bug: 721517
Change-Id: I85100850cb8cec56b17947916d7755ebcf3f15ec
Reviewed-on: https://chromium-review.googlesource.com/597689
Reviewed-by: nainar <nainar@chromium.org>
Reviewed-by: Morten Stenshorne <mstensho@opera.com>
Commit-Queue: Rune Lillesveen <rune@opera.com>
Cr-Commit-Position: refs/heads/master@{#491344}
rune
Remove stats for style sharing.
Style sharing code is removed and these stats will always be 0.

Bug: 721517
Change-Id: Iae76778bd564ad22645d3d14709c1d8d13d796c6
Reviewed-on: https://chromium-review.googlesource.com/595744
Reviewed-by: nainar <nainar@chromium.org>
Commit-Queue: Rune Lillesveen <rune@opera.com>
Cr-Commit-Position: refs/heads/master@{#490984}
rune
Remove ununsed kSharingMode selector matching.
After style sharing code was removed, this mode is no longer in use.

Bug: 721517
Change-Id: Ia0997792f5641b722d86922f40d631613552c137
Reviewed-on: https://chromium-review.googlesource.com/595728
Reviewed-by: nainar <nainar@chromium.org>
Commit-Queue: Rune Lillesveen <rune@opera.com>
Cr-Commit-Position: refs/heads/master@{#490958}
sigbjornf
Retire sigbjornf@ ownerships.
TBR=haraken,jochen
NOTRY=true

Change-Id: I764c7f96d306867c8fd0e1dda4f498bfc1285f87
Reviewed-on: https://chromium-review.googlesource.com/593310
Reviewed-by: Sigbjørn Finne <sigbjornf@opera.com>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Sigbjørn Finne <sigbjornf@opera.com>
Cr-Commit-Position: refs/heads/master@{#490722}
mstensho
[LayoutNG] MultiColumnFragmentainerGroup needs to know its height.
Otherwise DCHECKs will fail when attempting certain read operations on the
legacy layout tree.

Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: I8f09461bf7404aab1ef9a369380542759bb05a53
Reviewed-on: https://chromium-review.googlesource.com/591567
Reviewed-by: Emil A Eklund <eae@chromium.org>
Commit-Queue: Morten Stenshorne <mstensho@opera.com>
Cr-Commit-Position: refs/heads/master@{#490657}
tmoniuszko
Fix truncation from 'double' to 'float' warning in resource_prefetch_predictor.cc
Bug: 
Change-Id: I56e4ef0806162bb42bfc9edf47e8810499737ad6
Reviewed-on: https://chromium-review.googlesource.com/591367
Reviewed-by: Egor Pasko <pasko@chromium.org>
Commit-Queue: Egor Pasko <pasko@chromium.org>
Cr-Commit-Position: refs/heads/master@{#490382}
mstensho
[LayoutNG] HandleInflow() return a bool rather than WTF::Optional<>.
This way we won't need previous_inflow_position in Layout() to be optional, and
it makes the code more readable, and possibly more efficient too.

Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: Id42f5b950cf2edec646d5bf8b594b8d4b9948449
Reviewed-on: https://chromium-review.googlesource.com/590427
Commit-Queue: Morten Stenshorne <mstensho@opera.com>
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#490364}
karlo
InlineBlockBaseline() and friends now return LayoutUnit instead of int.
Add support for floating point baselines.  This patch retains integer
calculations for font ascender/descender, to avoid impacting too many
web pages.  Line painting is rounded to CSS pixels at the paint stage.

BUG=617763

Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I15850c55d54fbb0c885d4040be3c90ea2a51d7ca
Reviewed-on: https://chromium-review.googlesource.com/543141
Commit-Queue: Karl Anders Øygard <karlo@opera.com>
Reviewed-by: Javier Fernandez (OOO till Aug 4th) <jfernandez@igalia.com>
Reviewed-by: Emil A Eklund <eae@chromium.org>
Cr-Commit-Position: refs/heads/master@{#490327}
hugoh
Fix crash in spatnav when <area> looses its connected <img>
BUG=747734
TEST=See above clusterfuzz bug for repro steps.

Change-Id: I9d2ee28c7dab9e5f9af875e3011b1d0acb13ae29
Reviewed-on: https://chromium-review.googlesource.com/586589
Reviewed-by: Takayoshi Kochi <kochi@chromium.org>
Reviewed-by: Kent Tamura <tkent@chromium.org>
Commit-Queue: Hugo Holgersson <hugoh@opera.com>
Cr-Commit-Position: refs/heads/master@{#490049}
mstensho
[LayoutNG] Reduce variable span, for increased readability.
Also changed the child loop from "while" to "for".

Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: Iabca756c82281525818f1d5f3f31613679bae211
Reviewed-on: https://chromium-review.googlesource.com/584755
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Commit-Queue: Morten Stenshorne <mstensho@opera.com>
Cr-Commit-Position: refs/heads/master@{#489991}
mstensho
Rename duplicate MockWebFrameClient classes.
Caused trouble for Jumbo builds, all of a sudden.

TBR=bokan@chromium.org

Change-Id: I226e3b78c4abe008765123c21ed72868ea3f9f4b
Reviewed-on: https://chromium-review.googlesource.com/588908
Reviewed-by: Morten Stenshorne <mstensho@opera.com>
Commit-Queue: Morten Stenshorne <mstensho@opera.com>
Cr-Commit-Position: refs/heads/master@{#489888}
sigbjornf
Remove sigbjornf@ from blink_dom watchlist.
TBR=tkent
NOTRY=true

Change-Id: Id8d1ff08ae2065243894803ece9e0b5da9b131d7
Reviewed-on: https://chromium-review.googlesource.com/588089
Reviewed-by: Sigbjørn Finne <sigbjornf@opera.com>
Commit-Queue: Sigbjørn Finne <sigbjornf@opera.com>
Cr-Commit-Position: refs/heads/master@{#489876}
mstensho
Let CalculatePaginationStrutToFitContent() figure out the strut all on its own.
Remove the strut_to_next_page parameter, and let it calculate it on its own.

This is a preparatory patch for supporting repeated table footers. That will
break the "space left" == "pagination strut" invariant. Actually, this wasn't
truly an invariant even prior to this CL, because the next fragmentainer isn't
necessarily tall enough to hold the content (which will result in a pagination
strut larger than the amount of remaining space).

No behavior changes intended.

Change-Id: I4f3499d969d6f128077e281f2dd45826cd6d83fc
Reviewed-on: https://chromium-review.googlesource.com/583619
Commit-Queue: Robert Hogan <robhogan@gmail.com>
Reviewed-by: Robert Hogan <robhogan@gmail.com>
Cr-Commit-Position: refs/heads/master@{#489780}
bratell
Change jumbo chunk separation to ignore headers
Since jumbo chunks were divided before headers were filtered out, the
actual chunk sizes were not deterministic and much smaller than expected.

This patch filters headers first, and halves the chunk size to get the same
actual chunks.

Bug: 747368
Change-Id: Ia537af07f7226a87d8de1309bf494914789609e4
Reviewed-on: https://chromium-review.googlesource.com/581289
Reviewed-by: Bruce Dawson <brucedawson@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#489598}
hugoh
Do not show I-beam when hovering 'user-select: none'
All elements now have 'user-select: auto' as their default
value (not 'user-select: text').

Spec: https://drafts.csswg.org/css-ui-4/#propdef-user-select

This default value has no effect; elements are styled as usual.
This is important because Blink needs a "no change" default
to be able to find cases where 'user-select' should affect
mouse pointer styling.

BUG=742235
TEST=EventHandlerTest.ChildCanOverrideUserSelectText
     EventHandlerTest.HitOnUserSelectNoneDoesNotShowIBeam
     EventHandlerTest.ShadowChildCanOverrideUserSelectText

Above 3 tests failed before this patch.

Change-Id: I1ed0ad69daf6a1a1bd4b21623fcdb145ef596d88
Reviewed-on: https://chromium-review.googlesource.com/570246
Commit-Queue: Hugo Holgersson <hugoh@opera.com>
Reviewed-by: Yoshifumi Inoue <yosin@chromium.org>
Reviewed-by: David Bokan <bokan@chromium.org>
Reviewed-by: nainar <nainar@chromium.org>
Reviewed-by: Yoichi Osato <yoichio@chromium.org>
Cr-Commit-Position: refs/heads/master@{#489363}
mstensho
Explicit namespace ::testing, to not confuse it with blink::testing
This fixes a merge mistake at
https://chromium-review.googlesource.com/c/519168/25/third_party/WebKit/Source/core/dom/ScriptRunnerTest.cpp

That CL overwrote parts of https://codereview.chromium.org/2970833002 ,
which broke Jumbo compilation.

BUG=739121

Change-Id: I486a2c49032ffeef2bd81d5e230a9f9cf81b646f
Reviewed-on: https://chromium-review.googlesource.com/582611
Reviewed-by: Kouhei Ueno <kouhei@chromium.org>
Reviewed-by: Philip Rogers <pdr@chromium.org>
Commit-Queue: Morten Stenshorne <mstensho@opera.com>
Cr-Commit-Position: refs/heads/master@{#489050}
gianlucac
Fix parsing of $GTK_MODULES
The AtkUtilAuraLinux::Initialize function checks whether accessibility
should be enabled. To do so, it calls PlatformShouldEnableAccessibility,
which parses the content of the environment variable GTK_MODULES. This
variable contains a list of colon-separated modules; the function parses
it as it were a whitespace-separated list, looking for a module called
`gail:atk-bridge`, while in fact, the module to look for is
`atk-bridge`. On systems having a more complex content for GTK_MODULES
(mine is `gail:atk-bridge:unity-gtk-module`), the parse fails, and the
initialization aborts.

Bug: 747393
Change-Id: I17d82331af1d117d0ed70520b4367c5915037316
Reviewed-on: https://chromium-review.googlesource.com/582807
Reviewed-by: Dominic Mazzoni <dmazzoni@chromium.org>
Commit-Queue: Dominic Mazzoni <dmazzoni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#489022}
mstensho
Revert "Make border width rounding visible to js via getComputedStyle."
This reverts commit e87da780e04bf05f5ae863d7fda517ee6c03d534.

Reason for revert: This fix is a spec violation, and the previous behavior was more correct. A slightly inaccurate representation (off by less than 0.02px) is better than clamping it to 1px.

Original change's description:
> Make border width rounding visible to js via getComputedStyle.
> 
> CL (https://chromium-review.googlesource.com/c/525536/) moved rounding of border 
> widths to the painting stage, hence rounding is no longer visible in js via 
> getComputedStyle. This cl makes rounding visible again to users via getComputedStyle.
> 
> This cl contains the following changes
> * Implemented a ZoomAdjustedPixelValueWithRounding method.
> - This method is the same as ZoomAdjustedPixelValue except that it
> rounds pixel value to 1 if original value is between 0 and 1.0.
> * Changed ComputedStyle for border-[top|right|bottom|left] to use
> ZoomAdjustedPixelValueWithRounding so that getComputedStyle will
> display rounded pixels for these properties (and also border-width that
> is a shorthand of these 4 longhand properties).
> * Changed a layout test.
> 
> Bug: 737962
> Change-Id: I0656f7ea1212fe32f866d95218995fb3de109e05
> Reviewed-on: https://chromium-review.googlesource.com/560917
> Commit-Queue: Jia Meng <jiameng@chromium.org>
> Reviewed-by: Alan Cutter <alancutter@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#487384}

TBR=alancutter@chromium.org,jiameng@chromium.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: 737962
Change-Id: I03120da255990456614ffc3e0e3180eaa20a566a
Reviewed-on: https://chromium-review.googlesource.com/582608
Reviewed-by: Morten Stenshorne <mstensho@opera.com>
Commit-Queue: Morten Stenshorne <mstensho@opera.com>
Cr-Commit-Position: refs/heads/master@{#488947}
bratell
Make sure CSSPropertyIdMap knows the CSSPropertyID traits.
CSSPropertyID has some custom traits and without knowing them the
HashTable will not be compiled as intended. This was noticed through
a warning in jumbo builds about the traits being instantiated implicitly
before they were instantiated explicitly (in a specialization).

R=haraken@chromium.org

Bug: 747408
Change-Id: I2dea24bec17c8d071cbe60e443834d440eebfb2a
Reviewed-on: https://chromium-review.googlesource.com/581447
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#488861}
mstensho
Always relayout when an object gets or loses a PaintLayer.
This rids us of some crufty code, and also fixes bugs. The approach was also
broken for multicol, because we started UpdatePaginationRecursive() in the
middle of the tree without looking for a containing flow thread (pagination
layer). This would result in the new layer erroneously not becoming paginated.

Also had to update a unit test, to satisfy its requirement that the style change
won't trigger layout.

BUG=616596

Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I50ed61a7174e360259b7b786bab01cf74616fc32
Reviewed-on: https://chromium-review.googlesource.com/542915
Commit-Queue: Morten Stenshorne <mstensho@opera.com>
Reviewed-by: Steve Kobes <skobes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#488768}
bratell
Deduplicated 3 JSON string constants, "null", "true" and "false"
Both JSONParser and JSONValues use constants for the strings
"null", "true" and "false". That is probably no problem since the
linker will merge identical strings, but since the constants had
the same names as well they caused collisions in jumbo builds.

This patch makes JSONParser use the JSONValues constants.

Change-Id: I27b01b354aa9cfeab0f8c636f22ecfbc2762a6bc
Reviewed-on: https://chromium-review.googlesource.com/577552
Reviewed-by: Ian Clelland <iclelland@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#488654}
bratell
Fix compilation for ATK (accessibility)
A variable wasn't given the right name inside the ATK support when
a patch consolidated 3 AX properties into single restrictions
property for accessibility objects.

R=aleventhal@chromium.org, jochen@chromium.org

Change-Id: I0c82e055e39614110cfc4f7a7299d226bd4e6ad2
Reviewed-on: https://chromium-review.googlesource.com/580927
Reviewed-by: Jochen Eisinger <jochen@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#488630}
bratell
Renamed CreateDecoder helper functions in Image decoder tests
All image decoder test have a helper function "CreateDecoder" which
conflicts in jumbo builds where the tests are merged. This patch renames
them "CreateBMPDecoder", "CreateJPEGDecoder" and so on.

Bug: 745732
Change-Id: I2cfd108c39ade76a09059d77778557ab44b82752
Reviewed-on: https://chromium-review.googlesource.com/576098
Reviewed-by: Noel Gordon <noel@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#488407}
bratell
Support jumbo builds in core unit tests (except editing)
This patch makes the build system for core unit tests support jumbo
builds (unity builds) which saves roughly 60 CPU minutes (5% of the
build time) on my computer. Currently jumbo is by default disabled so
this will have no direct effect unless you have
  use_jumbo_build = true
in your gn settings.

Bug: 713137
Change-Id: I376e62fb66738cba9135d02f8079d983cfe67495
Reviewed-on: https://chromium-review.googlesource.com/575055
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#488238}
bratell
Make blink/modules support jumbo compilations (-60 CPU minutes)
Compiling browser code in blink/modules currently use
about 80 CPU minutes. That is about 7% of the total compilation time.
If you use jumbo compilation (merge many files into a single
translation unit) that time drops to about a fifth of that.

There are also unit_tests in modules that will be jumbofied in
a different patch.

Bug: 713137
Change-Id: I9155d2af0c9dce6b3178f77b9366062eb45d4560
Reviewed-on: https://chromium-review.googlesource.com/568302
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#488179}
mstensho
Include less from platform/graphics/Image.h
Change-Id: I00ae6625688bb740ecf0235c98e25f41296b359f
Reviewed-on: https://chromium-review.googlesource.com/553298
Reviewed-by: Philip Rogers <pdr@chromium.org>
Commit-Queue: Morten Stenshorne <mstensho@opera.com>
Cr-Commit-Position: refs/heads/master@{#487925}
bratell
Avoid using the name Function since it collides with WTF::Function
If a class named Function is created and the header
platform/wtf/Functional.h included, any attempt at using WTF::Function
will fail with a lot of strange template instantiation errors.

This can happen unexpectedly in jumbo builds so to avoid that error
this patch renames a testing class that used to be 
named Function, ReaderFunction.

R=fs@opera.com

Bug: 746343
Change-Id: I498ecf4f8cb293de634c40060a2df34c78a23e09
Reviewed-on: https://chromium-review.googlesource.com/574864
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#487870}
bratell
Make multiple jumbo_* templates instead of just jumbo_target
Initially there was just one template, jumbo_target, but that
caused problems with default configurations and also made every
patch one line more verbose than necessary. Better to have multiple
templates and make the usage just a little bit simple.

Bug: 713137
Change-Id: I7e2b1f0c5216b4465bae331763d6aa5a08e1c996
Reviewed-on: https://chromium-review.googlesource.com/575058
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Cr-Commit-Position: refs/heads/master@{#487823}
bratell
Deduplicate CreateIDBValue() used in indexeddb unit_tests
IDBRequestTest and IDBTransactionTest both had an identical helper
function CreateIDBValue. In jumbo builds those identical functions
collided so this patch moves the code to a shared helper file.

Bug: 745732

Change-Id: I36c658509c76deca4e03590858140e02a07f38d3
Reviewed-on: https://chromium-review.googlesource.com/575145
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Joshua Bell <jsbell@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#487547}
bratell
Avoid "using namespace blink" in global scope
With jumbo (unity builds, merged translation units) a "using blink"
statement intended for just the local translation unit will affect
many other translation units which causes various issues.

There is also (with jumbo) a warning about such usage that will prevent
things from compiling.

Without this patch this file will have to be manually excluded from
jumbo builds and I am trying to avoid such exclusion lists for
performance and maintenance.

Review-Url: https://codereview.chromium.org/2965323002
Cr-Commit-Position: refs/heads/master@{#487501}
bratell
Made test class names unique in media_controls unit tests
MediaControlsImplTest and MediaControlsOrientationLockDelegate use the
same class names for Mock classes. Such as MockChromeClient and
StubLocalFrameClient. That is normally no big deal but in jumbo builds
they can be compiled in the same translation unit and then the classes
will collide. This patch gives the class names unique suffixes so that
media_controls tests don't have to be excluded from jumbo.

Bug: 745732

Change-Id: I6c3a4d5d92ae690ece53aa093ffb4039eb79137e
Reviewed-on: https://chromium-review.googlesource.com/575140
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#487485}
bratell
Renamed MockEventListener in presentation and remoteplayback unit tests
Both PresentationReceiverTest and RemotePlaybackTest use a local test
class named MockEventListener. That is normally no big deal
but in jumbo builds they can be compiled in the same translation unit
and then the classes will collide. This patch gives the classes
unique prefixes so that no tests have to be excluded from jumbo.

Bug: 745732

Change-Id: Ic9a5e4e896b226d5ef7f99f2549cd3d4bb66fc42
Reviewed-on: https://chromium-review.googlesource.com/575141
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Mounir Lamouri <mlamouri@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#487479}
bratell
Renamed MockWebAudioDevice in webaudio unit tests
Both AudioContextTest and BaseAudioContextTest use a local test
class named MockWebAudioDevice. That is normally no big deal
but in jumbo builds they can be compiled in the same translation unit
and then the classes will collide. This patch gives the classes
unique prefixes so that no tests have to be excluded from jumbo.

Bug: 745732

Change-Id: Ie736a0541082c56af745d51061897a081d2d1da5
Reviewed-on: https://chromium-review.googlesource.com/575142
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#487475}
bratell
Made constant names unique in notification unit tests
NotificationDataTest, NotificationImageLoaderTest and
NotificationResourceLoaderTest all use constants, such as kBaseDir,
with the same name. That is normally no big deal but in jumbo builds they
can be compiled in the same translation unit and then the constants
will collide. This patch gives the constants unique prefixes so that
the tests don't have to be excluded from jumbo.

Change-Id: Ib01d88e75cdc876a58c52a6ee3b49a942ccb19ab
Reviewed-on: https://chromium-review.googlesource.com/576088
Reviewed-by: Peter Beverloo <peter@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#487458}
bratell
Renaming unit_test class MockHTMLResourcePreloader to not collide.
CSSPreloadScannerTest and HTMLPreloadScannerTest
both use a local MockHTMLResourcePreloader class for
testing. That is normally no big deal but in jumbo builds they
can be compiled in the same translation unit and then the classes
will collide. This patch gives the classes unique prefixes.

R=fs@opera.com

Change-Id: I29cd360e919c6b708a6021b6930b3347e5ae8194
Reviewed-on: https://chromium-review.googlesource.com/574707
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Charlie Harrison <csharrison@chromium.org>
Cr-Commit-Position: refs/heads/master@{#487242}
bratell
Renaming unit_test class MockLocalFrameClient to not collide.
Both FrameFetchContextTest and MixedContentCheckerTest deckare a class
named MockLocalFrameClient. That is normally no big deal
but in jumbo builds they can be compiled in the same translation unit
and then the functions will collide. This patch adds a prefix to
the class names to make them more unique.

R=fs@opera.com

Change-Id: I215f7edafa2fa0b229dc5847a1e158df825e8c27
Reviewed-on: https://chromium-review.googlesource.com/574708
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#487140}
bratell
Renaming unit_test class StubLocalFrameClient to not collide.
ElementVisibilityObserverTest, HTMLMediaElementEventListenersTest and
VideoPainterTest all use a local StubLocalFrameClient class for
testing. That is normally no big deal but in jumbo builds they
can be compiled in the same translation unit and then the classes
will collide. This patch gives the classes unique prefixes.

R=fs@opera.com

Change-Id: I47c7088486456e22ca776419a836f4e5d18be39c
Reviewed-on: https://chromium-review.googlesource.com/574605
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#487122}
mstensho
Include less from Color.h
Moved the rarely used Blend() overload to a new file ColorBlend.h,
since it requires heavy stuff to be included.

This change caused Image.h to lose its inclusion of FloatSize.h. Removed the
default value from a FloatSize parameter.

Change-Id: I9b32e425c86b237b4c3a69ec53e601faa713f56f
Reviewed-on: https://chromium-review.googlesource.com/553139
Commit-Queue: Morten Stenshorne <mstensho@opera.com>
Reviewed-by: Philip Rogers <pdr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#487119}
bratell
Use more unique names for blink core TestCase classes
It is fairly common to have a help struct with test data and a fair
portion of the code call that struct TestCase and put it in a fairly
global namespace. In jumbo builds those structs will collide so this
patch renames them to more specific names such as
MediaQuerySetTestCase or SizesCalcTestCase.

R=fs@opera.com

Change-Id: Ic02ef5062782a0ec3862ad3bffdc462574ca8a61
Reviewed-on: https://chromium-review.googlesource.com/574600
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#487114}
bratell
Renaming unit_test class MockValidationTestClient to not collide.
Both DocumentTest and HTMLFormControlTest uses a local
MockValidationTestClient class for testing. That is normally no big deal
but in jumbo builds they can be compiled in the same translation unit
and then they will collide. This patch gives the classes unique
prefixes.

R=fs@opera.com

Change-Id: If1f2d22fca4c5f7b3ad662f6ae746cef4baf48c3
Reviewed-on: https://chromium-review.googlesource.com/574174
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#487091}
bratell
Renaming unit_test class MockChromeClient to not collide.
LocalFrameViewTest, HTMLVideoElementPersistentTest and
PaintLayerScrollableTests all use a local MockChromeClient class for
testing. That is normally no big deal but in jumbo builds they
can be compiled in the same translation unit and then the classes
will collide. This patch gives the classes unique prefixes.

R=fs@opera.com

Change-Id: Ibd6c9d17e1e8dfbe42cbb254344e52a81ce48788
Reviewed-on: https://chromium-review.googlesource.com/574176
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#487090}
bratell
Avoid using "using" in global scope
"using namespace" in global scope introduces a lot of symbols into the
current scope and does not work well with jumbo. In case of WTF you
can also equally well just write a WTF:: prefix.

Bug: 
Change-Id: Id615f60151e0bc46cfe2a5e9a6a9313c412f1344
Reviewed-on: https://chromium-review.googlesource.com/570446
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Emil A Eklund <eae@chromium.org>
Cr-Commit-Position: refs/heads/master@{#487076}
bratell
Renaming unit_test function ConstructConstraintSpace to not collide
ng_block_layout_algorithm_test and ng_constraint_space both use a local
function ConstructConstraintSpace for testing. That is normally
no big deal but in jumbo builds they can be compiled in
the same translation unit and then the functions will collide.
This patch gives the functions unique names.

R=fs@opera.com

Change-Id: I3941094aad201b7ec6796d63664da8cfba8056c3
Reviewed-on: https://chromium-review.googlesource.com/574237
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#487072}
bratell
Move unit_test *_EQ macros to a shared file instead of repeating them
There are several classes in frame which have use of for instance
EXPECT_POINT_EQ and EXPECT_SIZE_EQ. The problem (beyond duplicating
code) is that in jumbo builds those defines collide.

This patch moves the shared macros to core/frame/FrameTestHelpers.h.

There are also equally named macros in cc/test/geometry_test_utils.h
but those work on gfx::Rect/gfx::RectF which is not quite API 
compatible (different character case).

R=fs@opera.com

Change-Id: I60cb7eff533e4dccc796937a027ec090071cd5c2
Reviewed-on: https://chromium-review.googlesource.com/574179
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#487071}
bratell
Be more specific about namespace for _ in unit tests
There is a gtest namespace ::testing and a helper namespace in blink
called ::blink::testing. If both are visible to the compiler,
::blink::testing will be used first and classes in ::testing will not
be found. This happens in jumbo builds so we better be more specific.

R=fs@opera.com

Change-Id: I4da27383432226191b0fcb72f3c54784698f0262
Reviewed-on: https://chromium-review.googlesource.com/574488
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#487070}
bratell
Add support for jumbo_component.
Normal jumbo_target has the wrong default configs for components so this
adds a new jumbo_component that has the right default configs.

Bug: 713137
Change-Id: I32fd2d015162d85b7ff07d5515489b9e33cfb987
Reviewed-on: https://chromium-review.googlesource.com/571790
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#487068}
bratell
Deduplicate helper class SampleInterpolation in unit tests
Both InterpolableValueTest and InterpolationEffectTest use an
identical class for value testing. These classes collided in jumbo
builds where they were compiled in the same translation unit.

This patch moves the class to AnimationTestHelper.h and changes its
name to be more descriptive now when it isn't as close to where it
is used anymore.

Also changing the name of the kDuration constant that interfered
with blink::kDuration.

R=fs@opera.com

Change-Id: Ic90cec2972f5464d7932b2ba91994273968e87c4
Reviewed-on: https://chromium-review.googlesource.com/574489
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#487067}
bratell
Renaming unit_test classes Mock* to not collide
IdleDeadlineTest and ScriptedIdleTaskControllerTest both use similarly
names mock classes, MockScheduler, MockThread and MockPlatform which
collide in jumbo builds where they are merged into the
same translation unit.

This patch gives the classes unique names.

R=fs@opera.com

Change-Id: I305cb3fbdfbd3b3b6fc7c18e8c3ceccf89da863e
Reviewed-on: https://chromium-review.googlesource.com/574487
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#487066}
bratell
Renaming unit_test class MockCanvas to not collide.
PageOverlayTest and PrintContextTest both use a local mock
test class named MockCanvas for testing. That is normally
no big deal but in jumbo builds they can be compiled
in the same translation unit and then the classes
will collide. This patch gives the classes unique names.

R=fs@opera.com

Change-Id: Icfcb2b4b553e50e08cb6ac56712e4e9aa5f2b69e
Reviewed-on: https://chromium-review.googlesource.com/574349
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#487065}
bratell
Avoiding redefining LineBreakType in unit_tests.
There is blink enum class LineBreakType used to correctly layout text.
That makes it unsuitable to use the same name in a unit_test since they
may collide, and actually will collide in jumbo builds.

This patch changes LineBreakType to NewlineType

R=fs@opera.com

Change-Id: I3c5ae6ea5b6e199990c8b51c3a55eb1d17a8f19e
Reviewed-on: https://chromium-review.googlesource.com/574238
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#487064}
bratell
Renaming unit_test functions Ident and Dimension to not collide.
CSSTokenizerTest already uses functions named Ident and Dimension so to
avoid special casing in jumbo builds where the tests are compiled
together, rename them here.

R=fs@opera.com

Change-Id: I6b600c269463d897b6d56287e450e37d027b2911
Reviewed-on: https://chromium-review.googlesource.com/574173
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#487058}
bratell
Renaming unit_test class TestParam to not collide.
HTMLMediaElementTest and MediaCustomControlsFullscreenDetectorTest
both use a local TestParam struct/enum for testing.
That is normally no big deal but in jumbo builds they
can be compiled in the same translation unit and then the classes
will collide. This patch gives the classes unique prefixes.

R=fs@opera.com

Change-Id: I17a4d3a25e38bc0789071fcec31b066a385d34a0
Reviewed-on: https://chromium-review.googlesource.com/574178
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#487057}
bratell
Renaming unit_test function RegisterMockedURLLoad to not collide.
There is a shared RegisterMockedURLLoad in URLTestHelpers and a couple of
local ones imported with "using" or locally declared. That is
normally no big deal but in jumbo builds they
can be compiled in the same translation unit and then the functions
will collide. This patch removes a "using" and renames a function
to make the names more unique.

R=fs@opera.com

Change-Id: I6866f13bd1903e42269b7286645a9f07396b68a8
Reviewed-on: https://chromium-review.googlesource.com/574180
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#487056}
bratell
Renaming unit_test class PreconnectTestCase to not collide.
HTMLResourcePreloaderTest and HTMLPreloadScannerTest
both use a local PreconnectTestCase struct for
testing. That is normally no big deal but in jumbo builds they
can be compiled in the same translation unit and then the classes
will collide. This patch gives the classes unique prefixes.

R=fs@opera.com

Change-Id: I99f315843fd6908ba94595e852e6c1fac6acdedb
Reviewed-on: https://chromium-review.googlesource.com/574177
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Yoav Weiss <yoav@yoav.ws>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#487053}
bratell
Avoid using the function name Function in unit_tests.
There is a ::Function template in wtf/Functional.h and if someone else
defines a function with the same name that template will be harder to
use. This is more of a problem in jumbo builds where more code is
visible so that both the definitions becomes visible at the same time.

R=fs@opera.com

Change-Id: I0be2f2e2441f3e5db0049f65e1b4c0be8997d586
Reviewed-on: https://chromium-review.googlesource.com/574028
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#487050}
bratell
Be more specific about namespace for Message in unit tests
There is a gtest namespace ::testing and a helper namespace in blink
called ::blink::testing. If both are visible to the compiler,
::blink::testing will be used first and classes in ::testing will not
be found. This happens in jumbo builds so we better be more specific.

R=fs@opera.com

Bug: 
Change-Id: I912ed721a0ccae7b8e8b622020f87f15204362cf
Reviewed-on: https://chromium-review.googlesource.com/574027
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#487049}
mostynb
don't forget to actually return the number of specified test jobs
BUG=741927,743615
TEST=Running browser_tests with the flags below, should print "Using 1 parallel jobs."
--run-manual --ui-test-action-max-timeout=350000 --test-launcher-jobs=1 --test-launcher-bot-mode --test-launcher-print-test-stdio=always
TBR=phajdan.jr@chromium.org

Change-Id: I33f2b4fc54b43ebec8a27c532da17146b42c07cd
Reviewed-on: https://chromium-review.googlesource.com/573380
Reviewed-by: Mostyn Bramley-Moore <mostynb@opera.com>
Commit-Queue: Mostyn Bramley-Moore <mostynb@opera.com>
Cr-Commit-Position: refs/heads/master@{#487014}
bratell
Use more unique names in fonts testcases
Many fonts tests use local helper classes TestRun, ExpectedRun and
helper macros DECLARE_RUNSVECTOR and CHECK_RUNS. With jumbo builds
those names start colliding so this patch gives the classes and
macros a prefix related to the actual test.

Change-Id: I494cfc182070ae37a87b68f08303fc8cc3ef9cfe
Reviewed-on: https://chromium-review.googlesource.com/570424
Commit-Queue: Emil A Eklund <eae@chromium.org>
Reviewed-by: Emil A Eklund <eae@chromium.org>
Cr-Commit-Position: refs/heads/master@{#486866}
bratell
Explicit template forward declaration for platform/fonts
Doing an implicit template instantiation before doing an explicit
template instantiation in the same translation unit is a C++
violation. That happens if you jumbo compile blink platform but is
easy to avoid with a forward declaration such as the one this patch
adds.

Change-Id: I7b22e28b2bf8f2583598e97db69d68fa1613550e
Reviewed-on: https://chromium-review.googlesource.com/570444
Commit-Queue: Emil A Eklund <eae@chromium.org>
Reviewed-by: Emil A Eklund <eae@chromium.org>
Cr-Commit-Position: refs/heads/master@{#486858}
bratell
Unduplicate SkiaScalarToHarfBuzzPosition
There were two implementation of SkiaScalarToHarfBuzzPosition and
in jumbo builds they collided. This patch merges them.

Bug: 
Change-Id: Ibea7aeffbfdf77eb3fd088949f912eb41e56c462
Reviewed-on: https://chromium-review.googlesource.com/570428
Commit-Queue: Emil A Eklund <eae@chromium.org>
Reviewed-by: Emil A Eklund <eae@chromium.org>
Cr-Commit-Position: refs/heads/master@{#486856}
bratell
blink/platform: Be explicit about namespace testing to not mix it with blink::testing
There are two namespaces named testing used in Blink unit tests, one
from gtest and one internal helper namespace. If both are visible then
the gtest testing namespace won't be used unless prepended with ::, as
is already done in large parts of the code.

BUG=739121
R=haraken@opera.com

Change-Id: I48f6a3145886253576a53d1ad9c08307ceca0d52
Reviewed-on: https://chromium-review.googlesource.com/567143
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#486839}
bratell
Remove some jumbo exclusions no longer needed
The files listed in core_generated jumbo exclusions have since been
fixed so the exclusions are no longer necessary.

R=fs@opera.com

Bug: 713137
Change-Id: Ib9a9216147e9df7d8b196de761556d3f23997448
Reviewed-on: https://chromium-review.googlesource.com/571222
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#486804}
bratell
Merge the two identical To16Bit functions in font tests
There are two very small, identical, To16Bit functions in
font shaping tests. Since they caused collisions in jumbo builds and
I didn't want to exclude the files from jumbo files I've merged them
into a utilities file.

Bug: 
Change-Id: I0c7e7d4ee708431a6401de7a01790f78c4e75e08
Reviewed-on: https://chromium-review.googlesource.com/570426
Commit-Queue: Emil A Eklund <eae@chromium.org>
Reviewed-by: Emil A Eklund <eae@chromium.org>
Cr-Commit-Position: refs/heads/master@{#486794}
mostynb
--gtest_filter should only change NumParallelJobs' default value
BUG=741927,735587

Change-Id: Ib95bd85e2f1ad14e27ba8fa76f8b52f8e137e830
Reviewed-on: https://chromium-review.googlesource.com/569159
Reviewed-by: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
Commit-Queue: Mostyn Bramley-Moore <mostynb@opera.com>
Cr-Commit-Position: refs/heads/master@{#486773}
bratell
Clean out some "using namespace WTF".
Some global "using namspace WTF" caused problems with jumbo builds
and since WTF is also meant to be used without using namespace WTF
this patch just replaces them with explicit namespaces.

Bug: 
Change-Id: Ifc06e163c095de0e2ce5a8c69123578557ef0dee
Reviewed-on: https://chromium-review.googlesource.com/565413
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Commit-Queue: bratell at Opera <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#486735}
bratell
Fix error in error message concatenation in jumbo script.
Best to not try to add a string to a set without converting the set to
a string first.

R=dpranke@chromium.org

Bug: 713137
Change-Id: Id4c632b1f944fcafdd046983b1ddd4678c44928f
Reviewed-on: https://chromium-review.googlesource.com/564939
Reviewed-by: Bruce Dawson <brucedawson@chromium.org>
Commit-Queue: bratell at Opera <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#486706}
bratell
Rename 5*ExtraDataContainer to SomethingExtraDataContainer
There are five different classes in
third_party/WebKit/Source/platform/exported named ExtraDataContainer.
They are only used as local internal classes so they don't normally
collide in the compiler, but they do so in jumbo builds.

This patch renames them so that the names are more unique.

Bug: 742337
Change-Id: Iad42e0d29f600fabd6ea9081687a7107d3043282
Reviewed-on: https://chromium-review.googlesource.com/570052
Reviewed-by: Philip Rogers <pdr@chromium.org>
Commit-Queue: bratell at Opera <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#486481}
bratell
Rename the two different TestClient classes in fetch unit tests
In jumbo the two different TestClient classes clashed so this patch
renames them to not collide so that these files can be included in
jumbo compilations.

R=tyoshino@chromium.org

Bug: 
Change-Id: Ieea187ba6928df04df0059ad357730d7a82022bc
Reviewed-on: https://chromium-review.googlesource.com/570040
Commit-Queue: bratell at Opera <bratell@opera.com>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Reviewed-by: Takeshi Yoshino <tyoshino@chromium.org>
Cr-Commit-Position: refs/heads/master@{#486367}
bratell
Let there be only one global class Result in fetch unit tests
Both BytesConsumer::Result and WebDataConsumerHandle::Result are
imported into global/blink namespace in fetch unit tests. That causes
collisions in jumbo builds so this removes the
WebDataConsumerHandle::Result in that namespace.

R=tyoshino@chromium.org

Bug: 
Change-Id: I52f860aa4ccd59b4be944f950c25797022582b68
Reviewed-on: https://chromium-review.googlesource.com/570042
Reviewed-by: Takeshi Yoshino <tyoshino@chromium.org>
Commit-Queue: bratell at Opera <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#486346}
bratell
Reduce the number of MockClient classes in fetch unit tests
Jumbo builds had the three different MockClient classes colliding. This
patch renames two of them so that they will not collide.

R=tyoshino@chromium.org

Change-Id: Ib646bdb3ed4e08cbf28b736a67d4fcb3646ede00
Reviewed-on: https://chromium-review.googlesource.com/570043
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Reviewed-by: Takeshi Yoshino <tyoshino@chromium.org>
Commit-Queue: bratell at Opera <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#486344}
bratell
Merge three identical ToString implementations in fetch unit tests
In jumbo builds the ToString implementations collided and since they
are identical anyway, this patch just merges them to one implementation.

R=tyoshino@chromium.org

Bug: 
Change-Id: I379a6e7bf759e12ae6f37347e8e2e80154a1079b
Reviewed-on: https://chromium-review.googlesource.com/570039
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Reviewed-by: Takeshi Yoshino <tyoshino@chromium.org>
Commit-Queue: bratell at Opera <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#486343}
bratell
Make the fetch unit test Command class not collide.
In jumbo builds the two Command classes in fetch unit_tests would collide
since they are both imported into the same global/blink scope with
"using" statements. This patch changed the "using" statements to give
the classes different names.

R=tyoshino@chromium.org

Bug: 742239
Change-Id: I37a783755049ff36ebd63f6b432a0e07bce4a4db
Reviewed-on: https://chromium-review.googlesource.com/570018
Commit-Queue: bratell at Opera <bratell@opera.com>
Reviewed-by: Takeshi Yoshino <tyoshino@chromium.org>
Cr-Commit-Position: refs/heads/master@{#486342}
fs
Deflake two tests in svg/animations/mozilla/
Pause the timeline after adjusting the current time, similarly to how
it's done in other tests in this directory and in other places. This
avoids flakiness due to the timing of the first frame differing from
that of the 'load' event.

TBR=schenney@chromium.org
BUG=726362,742068

Change-Id: Id9753fc1d5b53a389a59f9b8f36a8965fb9597d0
Reviewed-on: https://chromium-review.googlesource.com/569619
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#486323}
hugoh
Show pointer (not I-beam) when mouse drags in the air
A bug surfaced when Blink started to allow hidden selections.
The condition "show I-beam if we have a non-empty selection"
became too generous.

We should show an I-beam when:
- Node is editable
- Node is selectable
- A link's text is being selected

Besides fixing the condition I moved its block into
ShouldShowIBeamForNode() to try to gather stray I-beam
logic into one place.

TEST=LinkSelectionTest.DragOnNothingShowsPointer

BUG=735852

Change-Id: I5366462c713155754de39b0c5d11fa33656eb6e3
Reviewed-on: https://chromium-review.googlesource.com/566798
Reviewed-by: Yoshifumi Inoue <yosin@chromium.org>
Reviewed-by: David Bokan <bokan@chromium.org>
Commit-Queue: Hugo Holgersson <hugoh@opera.com>
Cr-Commit-Position: refs/heads/master@{#486308}
fs
Remove kInitialFrameDelay from SMILTimeContainer::Start
This is an old hack to preserve behavior of certain tests. These tests
have since been fixed to not rely on this. Get rid of it and just call
UpdateAnimationsAndScheduleFrameIfNeeded(...) instead to schedule the
first frame just like any other.

BUG=726362

Change-Id: I1ff2673a8d4b71ea237a2902f10599e08bcfb7d6
Reviewed-on: https://chromium-review.googlesource.com/564608
Reviewed-by: Philip Rogers <pdr@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#486115}
bratell
Drop inspector jumbo excludes as they are not needed
Some files excluded from jumbo compilation seems to compile just
fine in jumbo so this patch removes their special treatment.

Review-Url: https://codereview.chromium.org/2971153002
Cr-Commit-Position: refs/heads/master@{#486000}
bratell
Avoid duplicate functions: one AddStringToDigestor is enough
There are two implementation of AddStringToDigestor. Beyond being
one more than needed, they also conflict in jumbo builds.

This patch merges the two AddStringToDigestor and removes the
conflicting files from the jumbo exclusion list.

Review-Url: https://codereview.chromium.org/2800133003
Cr-Commit-Position: refs/heads/master@{#485992}
bratell
Rename a constant in editing unit tests to make it more unique.
kDescription is the name of two constants in editing unit_tests and
in jumbo builds those collides. This renames one of them
kTestDescription to make both constants have unique names.

R=fs@opera.com

Bug: 
Change-Id: I7fcb2fde1a6841ef92fe7d55a7b363da7c2c7fa0
Reviewed-on: https://chromium-review.googlesource.com/568146
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Commit-Queue: bratell at Opera <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#485970}
bratell
Avoid naming conflict for Cache and Response in cachestorage
There are multiple Cache types and Response types so when importing
one of them into the global namespace you can easily get naming conflicts, especially with jumbo. This renames Cache and Protocol
locally to avoid such naming conflicts.

Review-Url: https://codereview.chromium.org/2968183002
Cr-Commit-Position: refs/heads/master@{#485939}
bratell
Also check jumbo_excluded_sources when jumbo is disabled
Since jumbo is still disabled by default and there is no active
bot that checks things, it is best to check that jumbo_excluded_sources
are correct also when jumbo is disabled.

Bug: 713137
Change-Id: I85bb92f283be240a704ce3ec0d5765933ba52016
Reviewed-on: https://chromium-review.googlesource.com/563683
Commit-Queue: bratell at Opera <bratell@opera.com>
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Cr-Commit-Position: refs/heads/master@{#485913}
bratell
Rename ToElement<>(ListedElement) to ToHTMLObjectElementFromListedElement
Having two sets of templates named ToElement caused compilation failures
when both templates were visible to the compiler at the same time.
Since one of the templates doesn't benefit from being a template
this patch renames it and makes it an ordinary function.

R=fs@opera.com, tkent@chromium.org

Bug: 738389
Change-Id: Ia6247ad0f794cc4094f3f73cd7492ad5d94407c2
Reviewed-on: https://chromium-review.googlesource.com/567141
Reviewed-by: Kent Tamura <tkent@chromium.org>
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Commit-Queue: bratell at Opera <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#485904}
hugoh
Avoid race at shutdown between browser process' IO thread and GPU thread
Background:
- When the GPU thread is *in-process* it runs inside the browser process.
- GpuChildThread is a ChildThreadImpl and a IPC::Listener.
- When GpuChildThread sees an error (or shutdown) of its IPC channel,
  it quits its message loop (= stops the thread).

Problem:
The browser process' IOThread calls InProcessGpuThread::StopSoon()
while the in-process GPU thread destructs itself.

When InProcessGpuThread::StopSoon asks for task_runner() the in-process
GPU thread has - sometimes - already destructed itself and its
MessageQueue. The IOThread then sees task_runner() == null and crashes:

[FATAL:ref_counted.h(484)] Assert failed: ptr_ != nullptr.
0 base::debug::StackTrace::StackTrace()
1 base::debug::StackTrace::StackTrace()
2 logging::LogMessage::~LogMessage()
3 base::Thread::StopSoon()
4 base::Thread::Stop()
5 content::InProcessGpuThread::~InProcessGpuThread()
6 content::InProcessGpuThread::~InProcessGpuThread()
7 content::GpuProcessHost::~GpuProcessHost()
8 content::GpuProcessHost::~GpuProcessHost()
9 content::BrowserChildProcessHostImpl::TerminateAll()
10 content::BrowserProcessSubThread::IOThreadPreCleanUp()
11 content::BrowserProcessSubThread::CleanUp()
12 base::Thread::ThreadMain()
13 base::(anonymous namespace)::ThreadFunc()

Solution:
If a thread runs in the browser process, only Thread::Stop should
stop its message loop. Otherwise, QuitWhenIdle could race Thread::Stop.

BUG=258935

Review-Url: https://codereview.chromium.org/2973723003
Cr-Commit-Position: refs/heads/master@{#485895}
bratell
Avoid "using namespaces" when they might introduce colliding symbols.
SVGNames and HTMLNames share some symbols, like hrefAttr. When some
of the tests are compiled together in jumbo, having both
using namespace SVGNames and using namespace HTMLNames caused compilation
issues.

R=fs@opera.com

Bug: 
Change-Id: Id943efc79ac54a5b69b6095f622746f4e0fb0532
Reviewed-on: https://chromium-review.googlesource.com/567140
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Commit-Queue: bratell at Opera <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#485652}
bratell
Use ::testing in tests to not mix with blink::testing
There are two namespaces testing, one in ::testing and one in
::blink::testing. If you are inside ::blink and the code knows about
both of them, it will use ::blink::testing first.

This causes issues with jumbo builds where more code is visible.

R=fs@opera.com

Bug: 
Change-Id: Ia879a40b1626ac6929fc74a0f31509614e6b7051
Reviewed-on: https://chromium-review.googlesource.com/567142
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Commit-Queue: bratell at Opera <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#485650}
bratell
Rename one of two EXPECT_RECT_EQ.
Use the name EXPECT_RECT_APPROX_EQ for comparison of approximately
equal rects so that it doesn't collide with the other EXPECT_RECT_EQ
in jumbo builds.

R=fs@opera.com

Bug: 
Change-Id: I16815d32b06915db00f6a945883c7628cf343990
Reviewed-on: https://chromium-review.googlesource.com/567088
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Commit-Queue: bratell at Opera <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#485648}
fs
Make svg/W3C-SVG-1.1 animation tests "static"
These tests are animated, but has from a testing standpoint never gone
beyond sampling the frame at t=0. This is however partly by "accident"
because t=0 is just after 'load', while the frame dumped will have a
value of 't' greater than 0. To ensure t=0 is sampled, pause the
timeline.

This commit was generated by a script (explaining the imperfect
indentation.)

BUG=726362

Change-Id: I60bdd2d0fa30b09318b18d2eda39583821107199
Reviewed-on: https://chromium-review.googlesource.com/565723
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#485618}
bratell
Change code to make jumbo exceptions unnecessary in core/html
In jumbo several compilation units are merged so you have to
have more unique names in each one, and don't #undef macros
needed by other compilation units.

BUG=713137

Review-Url: https://codereview.chromium.org/2971683003
Cr-Commit-Position: refs/heads/master@{#485585}
bratell
Use the same sqlite header configuration in all of webdatabase
Some of third_party/WebKit/Source/webdatabase uses sqlite withq
internals exposed and some uses it with internals not exposed. That
mismatch causes issues in jumbo builds since it compiles several files
together and need headers to say the same thing.

This changes webdatabase so that it all compile with the
CHROMIUM_SQLITE_INTERNALS define set.

R=michaeln@chromium.org

Bug: 740542
Change-Id: I0b5c66fde7d191afd7a7143ef32c9c6f1b21b9e2
Reviewed-on: https://chromium-review.googlesource.com/565502
Reviewed-by: Michael Nordman <michaeln@chromium.org>
Commit-Queue: bratell at Opera <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#485558}
tmoniuszko
Add missing includes to media_router_file_dialog.cc
Both Profile and Browser are used in code.

BUG=

Review-Url: https://codereview.chromium.org/2966033002
Cr-Commit-Position: refs/heads/master@{#485557}
bratell
Only compile the PNG encoder once.
The PNG fuzzer included all of PNGImageDecoder.cpp and effectively
compiled it a second time. Since the fuzzer already depends on the
png encoder it will just be linked together anyway.

This double compilation caused jumbo errors because symbols appeared
twice.

Change-Id: I0ef1502ba90247e34c33055056bdeb808e0dbb89
Reviewed-on: https://chromium-review.googlesource.com/565411
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: bratell at Opera <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#485555}
ingemara
Merge Android manifests when assembling apk
Merge all resource dependency manifests using the manifest merger from the
Android SDK, providing the functionality described in
https://developer.android.com/studio/build/manifest-merge.html.

Removing the nontrivial manifest guard in the android_aar_prebuilt() template
will be done in a follow-up change, as well as removing pre-merged manifest
tags, such as "com.google.android.gms.version" meta-data.

Bug: 643967
Change-Id: Ifdf9f3f76f5c80f1a2326dcd47045d032556936f
Reviewed-on: https://chromium-review.googlesource.com/558296
Reviewed-by: Bo Liu <boliu@chromium.org>
Reviewed-by: Andrew Grieve <agrieve@chromium.org>
Commit-Queue: Ingemar Ådahl <ingemara@opera.com>
Cr-Commit-Position: refs/heads/master@{#485303}
bratell
Avoid global using namespace statements in modules/sensor
global using namespace statements cause issues with jumbo builds so this
patch moves and removes two such occurances in modules/sensor.

An alternative is to import explicit symbols rather than the full
namespaces.

R=mikhail.pozdnyakov@intel.com

Bug: 
Change-Id: Iafc85a856b02b381dae6244b2fc3acedc37e30db
Reviewed-on: https://chromium-review.googlesource.com/565296
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: bratell at Opera <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#485277}
bratell
Renamed a local class Function in a test to not collide with WTF.
There is a Function<> template in WTF/Functional.h which is shadowed
or collides with any local definitions of Function. This is not always
a problem, but it caused problems in Jumbo builds so let us rename
it to something harmless.

Change-Id: Ib594b2673a1dce6b4647445d3377b1e1099849da
Reviewed-on: https://chromium-review.googlesource.com/563667
Commit-Queue: bratell at Opera <bratell@opera.com>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#485273}
bratell
Add include guards to some generated files in core/css.
A couple of files in core/css were missing include guards which broke
jumbo builds.

R=fs@opera.com

Change-Id: I1d50e8b62f4926c054d51b48ab4f4edf5df5b76d
Reviewed-on: https://chromium-review.googlesource.com/565291
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Commit-Queue: bratell at Opera <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#485272}
bratell
Jumbo for blink/core generated files as well (saving 8 CPU minutes)
The target that compiles generated files does not use the same
template as other code in blink core so it didn't automatically become
jumbo enabled. Since it's a non-negliable part of the build time (~1%)
this patch enables jumbo for this target as well.

R=fs@opera.com
BUG=713137

Review-Url: https://codereview.chromium.org/2973603003
Cr-Commit-Position: refs/heads/master@{#485267}
bratell
Add jumbo support for Blink/core generated files
Core generated files does not use the same template as most blink core
code so it needs to be explicitly turned on (note jumbo is still by
default disabled so normal builds are not yet affected).

This saves about 8 CPU minutes for me.

Bug: 713137
Change-Id: I73ad558021b245c8742672cd3903e27dfdf48ab5
Reviewed-on: https://chromium-review.googlesource.com/563682
Reviewed-by: Philip Rogers <pdr@chromium.org>
Commit-Queue: bratell at Opera <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#485232}
bratell
Deduplicate CopyBytes in modules/crypto
The two identical functions CopyBytes collided in a jumbo build so
this is primarily to avoid having to exclude one of the files from the
jumbo building.

BUG=

Review-Url: https://codereview.chromium.org/2972023002
Cr-Commit-Position: refs/heads/master@{#485231}
bratell
Mojo: Be more explicit with namespace 'testing'
There are two namespaces named testing used in Blink unit tests, one
from gtest and one internal helper namespace. If both are visible then
the gtest testing namespace won't be used unless prepended with ::, as
is already done in large parts of the code.

This is more important for jumbo builds where the visibility of code
expands.

BUG=739121

Change-Id: Iaed685c8750fbffbaac384aabc4e2a8f54bcf5c0
Reviewed-on: https://chromium-review.googlesource.com/563619
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Commit-Queue: bratell at Opera <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#485226}
bratell
Some documentation for the jumbo feature.
R=dpranke@chromium.org
BUG=713317

Review-Url: https://codereview.chromium.org/2968963002
Cr-Commit-Position: refs/heads/master@{#485222}
fs
Adjust svg/animations/animate-linear-discrete-additive*.svg
In these tests we want to sample animation values at a certain point in
time. We are however sampling the animations at the next frame that is
painted - at which point the timeline may have advanced, and hence we
sample at t+<framedelay> (or thereabout) instead. Currently this works
"fine" because the first animation frame follows special scheduling
rules, making sure the timeline won't advance within this time window.
Rather than relying on this, just pause the timeline instead.

BUG=726362

Change-Id: I2314b435861050fd0163670928318563bd09f271
Reviewed-on: https://chromium-review.googlesource.com/563624
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Philip Rogers <pdr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#485166}
bratell
Be explicit about namespace testing to not mix it with blink::testing
There are two namespaces named testing used in Blink unit tests, one
from gtest and one internal helper namespace. If both are visible then
the gtest testing namespace won't be used unless prepended with ::, as
is already done in large parts of the code.

BUG=739121
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Review-Url: https://codereview.chromium.org/2967013002
Cr-Commit-Position: refs/heads/master@{#484966}
bratell
Use unique variable names in gperf generated code
By default gperf generates code with the types and variables
stringpool_t and stringpool. If jumbo combines more than one gperf
generated file those collides.

This patch changes the variable names to something more unique.

R=fs@opera.com
BUG=713137

Review-Url: https://codereview.chromium.org/2972193002
Cr-Commit-Position: refs/heads/master@{#484961}
bratell
Avoid PermissionDescriptor name collision.
Fix to allow us to skip a permissions exclusion for jumbo. Locally rename
one of them to MojoPermissionDescriptor.

Review-Url: https://codereview.chromium.org/2965333002
Cr-Commit-Position: refs/heads/master@{#484953}
bratell
Drop a "using namespace WTF" in V8CSSStyleDeclarationCustom.cpp
global "using namespace WTF" causes compiler warnings in jumbo builds
and in general extend the global namespace a lot which increases the
risk of symbol conflicts.

This patch changes a "using namespace WTF" to an explicit
WTF::CopePointCompareLessThan.
Review-Url: https://codereview.chromium.org/2975603002
Cr-Commit-Position: refs/heads/master@{#484938}
bratell
Changing XPathGrammer.y to not use global using blink
When using "using namespace Foo" at global level you will
introduce a lot of symbols into the global scope which will make
it harder for jumbo (unity builds/merged files) to compile without
symbol collisions.

Also, global using namespace statements will, with the current
implementation of jumbo not compile because of a compiler warning.

This patch changes to more explicit namespaces.

BUG=

Review-Url: https://codereview.chromium.org/2974653002
Cr-Commit-Position: refs/heads/master@{#484928}
bratell
Make ElementFactory.cpp.tmpl generate unique names
ElementFactory is used for both SVG and HTML and some names it
exported were the same so in a jumbo build they would collide. By
making the name unique we don't have to exclude the generated files
from jumbo building.

R=fs@opera.com
BUG=

Review-Url: https://codereview.chromium.org/2965343002
Cr-Commit-Position: refs/heads/master@{#484911}
mostynb
remove the OS() macro
Replace OS(FOO) macro calls with defined(OS_FOO) and remove the OS macro.

This is mostly a mechanical change:

for p in MACOSX LINUX WIN ANDROID POSIX FREEBSD OPENBSD
do
	for file in `git grep -w "OS($p)" | sed -e "s/:.*//" | uniq`
	do
		sed -i -e "s/OS($p)/defined(OS_$p)/g" $file
	done
done

Followed by some semi-automatic build/build_config.h inclusion
and clang format.

BUG=737403

Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
Change-Id: I69e567334665c331b46e04be86a60aeca4a3e9c4
Reviewed-on: https://chromium-review.googlesource.com/561010
Commit-Queue: Mostyn Bramley-Moore <mostynb@opera.com>
Reviewed-by: Kent Tamura <tkent@chromium.org>
Cr-Commit-Position: refs/heads/master@{#484853}
rune
Handle re-entrant AttachLayoutTree for the same node.
Lazy whitespace re-attachment introduced tracking of the last seen in-
flow box in AttachContext. We have three places where we may end up
calling AttachLayoutTree from AttachLayoutTree for the same element[1]
causing re-entrancy issues for AttachContext. The AttachContext would
keep a pointer to the LayoutObject created by the outer AttachLayoutTree
while that may have been deleted by the inner AttachLayoutTree.

Here we store the passed-in AttachContext on a SyncReattachContext stack
and pass it, with the previous in-flow restored, when re-entering
ReattachLayoutTree().

[1] This typically happens when we find out that a resource won't load
while attaching the layout object and we immediately decide to render
fallback content.

Bug: 738596
Change-Id: I978f77fbaa481a713b21ece92aabac39d37af450
Reviewed-on: https://chromium-review.googlesource.com/560836
Reviewed-by: meade_UTC10 <meade@chromium.org>
Commit-Queue: Rune Lillesveen <rune@opera.com>
Cr-Commit-Position: refs/heads/master@{#484847}
ingemara
Add command line flag to override suppression.xml path
Let the suppression script optionally write to a configuration file set
on the command line, rather than the default.

//build_overrides/build.gni can set a 'lint_suppressions_file' variable,
allowing different products to override the lint suppression
configuration. Updating this overriding suppression configuration can
otherwise be cumbersome.

Bug: 737897
Change-Id: I1551d7e6951f212e42ee79ffac568e9a5208aec9
Reviewed-on: https://chromium-review.googlesource.com/561137
Reviewed-by: Peter Wen <wnwen@chromium.org>
Reviewed-by: Andrew Grieve <agrieve@chromium.org>
Commit-Queue: Ingemar Ådahl <ingemara@opera.com>
Cr-Commit-Position: refs/heads/master@{#484621}
bratell
Use aggregated bindings for jumbo as well as for Windows.
If the builder requests a jumbo build, use aggregated bindings since
that is more or less the same thing.

BUG=713137

Review-Url: https://codereview.chromium.org/2971713002
Cr-Commit-Position: refs/heads/master@{#484298}
bratell
Use cssvalue::CounterValue instead of blink::CSSCounterValue
A cleanup patch used the wrong namespace for CSSCounterValue. It still
works but it was not right.

R=fs@opera.com

Review-Url: https://codereview.chromium.org/2967163003
Cr-Commit-Position: refs/heads/master@{#484276}
ingemara
Set Python shebang in build to /usr/bin/env python
A common solution for developers using Linux distributions were
/usr/bin/python is linked to /usr/bin/python3 is to put a python ->
python2 symlink earlier in the PATH when working with python2-only
projects. This doesn't work when shebangs bypasses any environment
configuration.

The change was generated by executing:
  sed -i 's|#!/usr/bin/python|#!/usr/bin/env python|' \
    $(grep -rl '#!/usr/bin/python' build)

Change-Id: I2de77532fd31a0348ec58f4d9af4b7172dc1b9ed
Reviewed-on: https://chromium-review.googlesource.com/559347
Reviewed-by: John Budorick <jbudorick@chromium.org>
Commit-Queue: Ingemar Ådahl <ingemara@opera.com>
Cr-Commit-Position: refs/heads/master@{#484266}
bratell
Support C and Objective-C in jumbo base scripts.
Up until now only C++ files were merged. With this Objective-C
will also be merged and if there are any C files (there are only
a few spread out) then those will also be handled.

BUG=713137

Review-Url: https://codereview.chromium.org/2972533002
Cr-Commit-Position: refs/heads/master@{#484230}
ingemara
Escape '$' when generating lint suppression regexp
Java class names (for inner classes) may contain '$', which is a EOL
pattern marker in Java regexps. To ensure proper regexps are generated,
escape the marker to allow the regexp to match the entire path.

Bug: 737882
Change-Id: I935d06c197453b674bb0e493d0887e271fdd9610
Reviewed-on: https://chromium-review.googlesource.com/554750
Commit-Queue: Ingemar Ådahl <ingemara@opera.com>
Reviewed-by: Andrew Grieve <agrieve@chromium.org>
Cr-Commit-Position: refs/heads/master@{#484228}
bratell
Drop unused member loader_ in testing file SimRequest.h
This caused compilation errors (through a compiler warning) in
jumbo builds. I speculate that if the compiler (clang) sees both
an object creation and the full declaration it will complain about
members that are never accessed.

R=fs@opera.com

Review-Url: https://codereview.chromium.org/2969203002
Cr-Commit-Position: refs/heads/master@{#484224}
bratell
Be explicit about namespace testing to not mix it with blink::testing
There are two namespaces named testing used in Blink unit tests, one
from gtest and one internal helper namespace. If both are visible then
the gtest testing namespace won't be used unless prepended with ::, as
is already done in large parts of the code.

BUG=739121
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_layout_ng;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Review-Url: https://codereview.chromium.org/2970833002
Cr-Commit-Position: refs/heads/master@{#484087}
bratell
Scripts for unity/jumbo (default disabled) compilation.
To speed up compilation times, jumbo allows files to be compiled
together. This is a well known method ("unity builds") to both
compile faster and create a poor man's "full program optimization".
For Chromium we are only interested in the compile times.

This patch includes the basic scripts that do the source file merging
and changes Blink Core to use those scripts. If the gn configuration
includes: use_jumbo_build = true then Blink Core will use jumbo
compile. Otherwise it will compile as usual.

The expected speedup from using Jumbo on Blink Core (and nothing else)
is about 17% of the content_shell+blink_tests compilation CPU
time. This is about half an hour for people building with an ordinary
computer, but less both in percentage and minutes if using some kind
of build accelerator like goma.

More information in
https://docs.google.com/document/d/19jGsZxh7DX8jkAKbL1nYBa5rcByUL2EeidnYsoXfsYQ/edit#

BUG=713137

Review-Url: https://codereview.chromium.org/2963733003
Cr-Commit-Position: refs/heads/master@{#483986}
mostynb
(reland) base::LaunchUnitTestsSerially should not be overridable by cmdline
(reland) base::LaunchUnitTestsSerially should ignore the --test-launcher-jobs
command line switch, and never use parallel jobs.  To achieve this, change
callers of base::TestLauncher to pass the requested number of parallel test
jobs, instead of the default number of parallel test jobs.

And while we're at it, let's remove TestLauncherDelegate's
AdjustDefaultParallelJobs method, which no longer has any users.

BUG=735587,736837
TBR=rdevlin.cronin@chromium.org

Change-Id: I4085fb21c1dce467527210407e3913ff3b5e3bc6
Reviewed-on: https://chromium-review.googlesource.com/549342
Commit-Queue: Mostyn Bramley-Moore <mostynb@opera.com>
Reviewed-by: Henrik Kjellander <kjellander@chromium.org>
Reviewed-by: Alok Priyadarshi <alokp@chromium.org>
Reviewed-by: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
Reviewed-by: Alex Clarke <alexclarke@chromium.org>
Cr-Commit-Position: refs/heads/master@{#483909}
mostynb
add a bunch of missing header guards
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I2175e7c672332c9046e8cc5d60f246a62f62478b
Reviewed-on: https://chromium-review.googlesource.com/558409
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Mostyn Bramley-Moore <mostynb@opera.com>
Cr-Commit-Position: refs/heads/master@{#483907}
mostynb
remove a couple of vim modelines
We don't appear to use vim modelines in the codebase, and moreover
these conflict with our style guide.

Change-Id: Iac4a1c5dc7ac1b4b51b8862c2d943ffe0d038a7b
Reviewed-on: https://chromium-review.googlesource.com/558407
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Commit-Queue: Mostyn Bramley-Moore <mostynb@opera.com>
Cr-Commit-Position: refs/heads/master@{#483875}
wdzierzanowski
Turn MediaLog usage from plain wrong into questionable
ReadConcatentatedBoxes() was handing out BoxReader instances that
referred to MediaLog objects that had gone out of scope.

BUG=712310

Review-Url: https://codereview.chromium.org/2966493005
Cr-Commit-Position: refs/heads/master@{#483840}
rune
Implement lazy (re-)attachment of whitespace.
The existing implementation of re-attachment of whitespace nodes had
performance issues because it tried to re-attach whitepace nodes as
early as possible, leading to multiple re-attachments of the same node
and multiple sibling-walks past the same out-of-flow elements.

Instead, this CL stores the last seen text node in a new
WhitespaceAttacher object and delays the re-attachment of that text
node until we know its need for a LayoutObject for the current layout
tree rebuild. In particular, we don't re-attach the whitespace node
when previous siblings are/become display:none or out-of-flow.

Contrary to what last_text_node did, the WhitespaceAttacher persist
the last seen text node in the flat tree order and across
display:contents and slot/content element which fixes various
correctness issues in addition to performance issues.

In addition to the last visited text node, we also store the last
seen display:contents element and only walk the display:contents
subtree when needed to find its first in-flow whitespace descendant.

BUG=349395,399816,705525,686016,648931,650168

Change-Id: Id397986c49a4bc75e831da1ff8b679f2043873c3
Reviewed-on: https://chromium-review.googlesource.com/517940
Commit-Queue: Rune Lillesveen <rune@opera.com>
Reviewed-by: Hayato Ito <hayato@chromium.org>
Reviewed-by: meade_UTC10 <meade@chromium.org>
Cr-Commit-Position: refs/heads/master@{#483683}
hugoh
Allow outdirs when !enable_extensions and !enable_print_preview
This lets us generate outdirs for builds where enable_extensions
and enable_print_preview are false. This is a configuration that
is used by Opera's TV SDK.

This can be seen as a fixup to https://codereview.chromium.org/2904443004/ .

BUG=725906

TEST=gn gen --args='enable_extensions=false enable_print_preview=false' out/GnTest

Review-Url: https://codereview.chromium.org/2958243002
Cr-Commit-Position: refs/heads/master@{#483654}
mstensho
Include less from LayoutTheme.h
Change-Id: I034264c0fceec2155ef823717092d2cd36a2887b
Reviewed-on: https://chromium-review.googlesource.com/553140
Commit-Queue: Morten Stenshorne <mstensho@opera.com>
Reviewed-by: Kent Tamura <tkent@chromium.org>
Cr-Commit-Position: refs/heads/master@{#483338}
mstensho
Don't include ComputedStyle.h where not needed.
Also removed unnecessary inclusions of core/dom/NodeComputedStyle.h

Because of this change, 13 more compilation units no longer include ComputedStyle.h

Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I2a647d891c7e0957e7ee0f96ebc6e2face6e0c14
Reviewed-on: https://chromium-review.googlesource.com/553259
Reviewed-by: Rune Lillesveen <rune@opera.com>
Commit-Queue: Morten Stenshorne <mstensho@opera.com>
Cr-Commit-Position: refs/heads/master@{#483324}
mostynb
Roll src/third_party/ffmpeg/ 06ac9ea36..88c555e9e (2 commits)
https://chromium.googlesource.com/chromium/third_party/ffmpeg.git/+log/06ac9ea361fa..88c555e9e69e

$ git log 06ac9ea36..88c555e9e --date=short --no-merges --format='%ad %ae %s'
2017-06-28 mostynb add ffmpeg_use_atomics_fallback gn arg
2017-06-06 jrummell Remove unused configs for linux-noasm/arm64

Created with:
  roll-dep src/third_party/ffmpeg

Change-Id: I33825f010c5a13026540e5c1454977961e9ec1b0
Reviewed-on: https://chromium-review.googlesource.com/553379
Reviewed-by: Dale Curtis <dalecurtis@chromium.org>
Commit-Queue: Mostyn Bramley-Moore <mostynb@opera.com>
Cr-Commit-Position: refs/heads/master@{#483211}
mstensho
Include less from ComputedStyle.h (and ComputedStyleBase.h and SVGComputedStyle.h).
Change-Id: I42edad3643a1a9c76bb5281d5771045678304533
Reviewed-on: https://chromium-review.googlesource.com/553258
Reviewed-by: Rune Lillesveen <rune@opera.com>
Commit-Queue: Morten Stenshorne <mstensho@opera.com>
Cr-Commit-Position: refs/heads/master@{#483315}
mstensho
Don't include StyleResolverState.h where not needed.
It involves ComputedStyle.h, which is heavy.

Change-Id: I345d1c0fd69dfb68c0e96b5af0f932e1d67405f1
Reviewed-on: https://chromium-review.googlesource.com/553260
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Rune Lillesveen <rune@opera.com>
Commit-Queue: Morten Stenshorne <mstensho@opera.com>
Cr-Commit-Position: refs/heads/master@{#483310}
mstensho
Include less from Length.h
Moved parts of Length::Blend() into the .cpp files, since it requires a heavy
include.

Change-Id: I527d8cfb119e7475f00d2664ae4788e80cf4b479
Reviewed-on: https://chromium-review.googlesource.com/553299
Reviewed-by: Philip Rogers <pdr@chromium.org>
Commit-Queue: Morten Stenshorne <mstensho@opera.com>
Cr-Commit-Position: refs/heads/master@{#483301}
rune
Separate initial style and viewport/ICB style.
We store the initial containing block/viewport style on the Document
node. This style includes properties propagated from body/html like
writing-mode and overflow. It also sets things like z-index to a non-
auto value to establish a stacking context.

The problem was that this ComputedStyle was used for inheriting values
down to the root element as well, which is incorrect. The root element
should inherit initial values.

Instead, split StyleForDocument into InitialStyleForElement and a
StyleForViewport which applies viewport specific properties on top of
the initial values. Then use InitialStyleForElement as the style to
inherit from for the root element.

A bunch of writing-mode tests are modified to apply writing-mode on the
html element instead of body. The code change aligns with the spec and
how Gecko behaves by not propagating the writing-mode on body to the
html element. The intention of the modified tests was to have the effect
of setting the same writing-mode on the html element.

Bug: 732349,541529,590818,590835,731022
Change-Id: I4ff9c076c54483245db931ede6a2293ef5279cd2
Reviewed-on: https://chromium-review.googlesource.com/548379
Commit-Queue: Rune Lillesveen <rune@opera.com>
Reviewed-by: meade_UTC10 <meade@chromium.org>
Reviewed-by: Morten Stenshorne <mstensho@opera.com>
Cr-Commit-Position: refs/heads/master@{#482950}
sigbjornf
Simplify OfflineAudioDestinationNode::DoOfflineRendering().
No need to track is-suspended state.

R=hongchan
BUG=736429

Review-Url: https://codereview.chromium.org/2959693002
Cr-Commit-Position: refs/heads/master@{#482417}
sigbjornf
Retire audiosource-premature-gc.html test expectation.
Not needed following r482301.

TBR=xidachen@chromium.org
NOTRY=true
BUG=736429

Review-Url: https://codereview.chromium.org/2960733002
Cr-Commit-Position: refs/heads/master@{#482395}
sigbjornf
Repost offline rendering task if GC prevents.
R=
BUG=736429

Review-Url: https://codereview.chromium.org/2959663002
Cr-Commit-Position: refs/heads/master@{#482301}
karlo
Move rounding up to 1.0f of border widths to the painting stage.
BUG=727669

Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: Id6226e1df033e8ee72ffa32cde4c0d12fc3cbf36
Reviewed-on: https://chromium-review.googlesource.com/525536
Commit-Queue: Karl Anders Øygard <karlo@opera.com>
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Cr-Commit-Position: refs/heads/master@{#482233}
mostynb
base::LaunchUnitTestsSerially should not be overridable
base::LaunchUnitTestsSerially should ignore the --test-launcher-jobs
command line switch, and never use parallel jobs.

BUG=735587

Change-Id: I7e455a805b898f12e7adc91a41feb9627e008964
Reviewed-on: https://chromium-review.googlesource.com/543344
Commit-Queue: Mostyn Bramley-Moore <mostynb@opera.com>
Reviewed-by: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#481990}
rune
Store previous in-flow layout object in AttachContext.
This is split out of [1]. In order to avoid backtracking past out-of-
flow, display:none, and display:contents nodes of attached siblings
for whitespace re-attachment, we keep track of the last attached in-
flow box for an AttachLayoutTree().

The AttachContent is made non-const to pass on previous in-flow past
slot, content, and display:contents ancestors.

This CL does not have behavioral changes on its own.

[1] https://chromium-review.googlesource.com/c/517940/

BUG=399816

Change-Id: I7bf5faaf3e9fe3d1b4f62c22076be6ad31790cfe
Reviewed-on: https://chromium-review.googlesource.com/543037
Reviewed-by: nainar <nainar@chromium.org>
Commit-Queue: Rune Lillesveen <rune@opera.com>
Cr-Commit-Position: refs/heads/master@{#481853}
sigbjornf
Hold global GC heap lock while making audio thread access.
For auxillary threads that rarely need to gain access to another
thread's GC heap, we have to ensure that this happens while the
heap-owning thread isn't concurrently GCing the heap. Otherwise there
is the possibility that heap objects might be relocated or mutated
while the auxillary thread tries to access.

A CrossThreadPersistent<T> (CTP) ensures reference liveness across
threads, but isn't sufficient to handle the wanted exclusive access
after a non-attached thread has deref'ed the persistent. So, for
this to happen, keep the global CTP lock while accessing a heap
object during offline audio rendering -- it specifically accessing
heap objects while a GC runs. As all GCs hold the lock on the global
CTP region while they run, this ensures exclusion.

It is clearly desirable to have all heap access be under the control
of the heap-owning thread, and threaded code should try hard to avoid
accessing another thread's heap objects. The CTP global lock is the
mechanism to use when that isn't practically feasible -- feel free to
add a "TODO(foo): avoid using" next to any instances that you end up
introducing.

As regards audio thread cross-thread usage, the code needs auditing to
check if there are other places where setting up this CTP lock is
required.

R=haraken,rtoy,hongchan
BUG=732511

Review-Url: https://codereview.chromium.org/2951903003
Cr-Commit-Position: refs/heads/master@{#481809}
rune
Update style for body when viewport defining element changes.
Whether the body box has scrolling overflow or not depends on the
computed overflow of the html element.

The HasOverflowClip flag, along with creating and removing a paint
layer on LayoutBlock is updated as part of SetStyle. However, if the
html element is recalculated, its overflow changing causing the
viewport defining element to change, but body did not need a recalc,
the overflow clip flag and paint layer is not updated for body.

This CL forces a SetStyle on the body LayoutObject to trigger the
necessary update after recalc when when the viewport defining element
changes.

This fixes scrollingElement.html in wpt/cssom-view.

Bug: 665927
Change-Id: I146c3e976edef28074bde6531fe4c6ec65ecb090
Reviewed-on: https://chromium-review.googlesource.com/544958
Commit-Queue: Rune Lillesveen <rune@opera.com>
Reviewed-by: Dave Tapuska <dtapuska@chromium.org>
Reviewed-by: Rick Byers <rbyers@chromium.org>
Cr-Commit-Position: refs/heads/master@{#481682}
mstensho
Don't include ComputedStyle.h from Node.h
This caused it to be included in about 3400 compilation units. Removing this
dependency reduces the number to about 1000.

Compiling ComputedStyle.h takes almost 6 seconds here (which is worth an
investigation on its own).

Some changes elsewhere were required because of this, because they
inadvertently depended on things included via ComputedStyle.h . Keeping
Blob & co merely forward-declared in IDBValueWrapping.h required some
extra work.

The dependency was introduced here:

https: //codereview.chromium.org/2821193003
Change-Id: I5323c12821ae7e5408f6f5f1fee17222a0acf511
Reviewed-on: https://chromium-review.googlesource.com/543155
Commit-Queue: Morten Stenshorne <mstensho@opera.com>
Reviewed-by: Rune Lillesveen <rune@opera.com>
Reviewed-by: nainar <nainar@chromium.org>
Reviewed-by: Joshua Bell <jsbell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#481675}
rune
No need to update layout for scrollingElement in compositing.
The style and layout is guaranteed to be clean at this point.

Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I28d877f2cafa9fe49e5ce922cf9b95d2e3fa8b2c
Reviewed-on: https://chromium-review.googlesource.com/540795
Reviewed-by: Chris harrelson <chrishtr@chromium.org>
Commit-Queue: Rune Lillesveen <rune@opera.com>
Cr-Commit-Position: refs/heads/master@{#481440}
mstensho
Element::ClientQuads() needs to take transforms into account.
In LayoutGeometryMap, when there's a non-uniform step (e.g. when inside
multicol), we fall back on doing it the slow way, i.e. we involve
LayoutObject::MapLocalToAncestor(). The mode flags initially passed from
ClientQuads() will just be echoed here, so we need to make sure that
kUseTransforms is specified.

BUG=683925

Change-Id: I2a6fe83fb1332a19a581203d6c44c6924da3f027
Reviewed-on: https://chromium-review.googlesource.com/541339
Reviewed-by: Chris harrelson <chrishtr@chromium.org>
Commit-Queue: Morten Stenshorne <mstensho@opera.com>
Cr-Commit-Position: refs/heads/master@{#481039}
mstensho
[LayoutNG] Place floats correctly in non-physical writing modes.
Use logical offsets as much as we can, and have legacy layout convert
it for us when storing physical offsets in FloatingObject. Use
SetLogicalLeftForFloat() and SetLogicalTopForFloat() in
LayoutBlockFlow for this. They actually take inline and block offsets.

Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: Iffd4aa759cb520f03a7642f15c1e40279e48c2b9
Reviewed-on: https://chromium-review.googlesource.com/541363
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Commit-Queue: Morten Stenshorne <mstensho@opera.com>
Cr-Commit-Position: refs/heads/master@{#480995}
mstensho
Update FlagExpectations for enable-slimming-paint-v2
Based on results from https://chromium-review.googlesource.com/c/539399/3

Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I461903e9bc16ea85abf8f7cb80c7a6b468a37c51
Reviewed-on: https://chromium-review.googlesource.com/541298
Reviewed-by: Chris harrelson <chrishtr@chromium.org>
Commit-Queue: Morten Stenshorne <mstensho@opera.com>
Cr-Commit-Position: refs/heads/master@{#480830}
rune
Update HasOverflowClip for body after style recalc.
The HasOverflowClip flag on LayoutBlock is updated as part of SetStyle,
but for body, the flag may need to change as a result of changing the
overflow property on the root element.

This CL always updates the flag for body after a style recalc. It's
only strictly necessary to do this if the root element is recalculated
and changes overflow between visible and a non-visible overflow, and at
the same time, the body element does not need a style recalc. Those
checks would complicate the code with little gain, so left to be done
unconditionally.

This fixes scrollingElement.html and HTMLBody-ScrollArea_quirksmode.html
in wpt/cssom-view. The latter had a bug that it didn't clear the
"scroll" values set to check if overflowY could be set, which caused a
subsequent test to incorrectly fail in both Blink and Gecko.

BUG=665927

Change-Id: I72ea8c51f2ec52320aaacd7373bc1a6e8a80dbed
Reviewed-on: https://chromium-review.googlesource.com/540596
Reviewed-by: Dave Tapuska <dtapuska@chromium.org>
Reviewed-by: Rick Byers <rbyers@chromium.org>
Commit-Queue: Rune Lillesveen <rune@opera.com>
Cr-Commit-Position: refs/heads/master@{#480824}
rune
Null check PrimaryFont().
No known way to reproduce, but this null check fixes a crasher reported
to the Opera crash servers for the desktop version of Opera. There was
already a null check for PrimaryFont() on the first line style in the
same method. This fix has been shipped and confirmed to fix the issue
for Opera.

Only seeing crashes for Windows on our crash server, so it might be a
Windows-only issue.

R=drott@chromium.org,eae@chromium.org

Change-Id: Ifca144023a319e4b900da12c62900819ba09f777
Reviewed-on: https://chromium-review.googlesource.com/538758
Reviewed-by: Dominik Röttsches <drott@chromium.org>
Commit-Queue: Rune Lillesveen <rune@opera.com>
Cr-Commit-Position: refs/heads/master@{#480406}
mstensho
If min/max widths are already dirty during layout, don't recalculate.
Min/max widths are recalculated right before layout if they are dirty, but only
on those objects that actually need it, even if they are marked dirty. If the
object doesn't need min/max widths to figure out its own size, and no ancestor
needs this information either, the flag should just be left on indefinitely.
It's a waste of time to recalalculate the min/max widths for such objects, and
just leaving them dirty instead will also help the marking machinery cut off
earlier, since it will walk the containing block chain until it finds something
that's already marked.

If we get to layout and the flag is still set, it has to mean that nobody cares
about the min/max widths. This is a speculative fix for bug 732703, that
restores to the behavior we had prior to
https://chromium-review.googlesource.com/c/527640/ .

BUG=732703

Change-Id: I146dd8e2d41712aece91fdb199a2254f1a24e43f
Reviewed-on: https://chromium-review.googlesource.com/538658
Reviewed-by: Emil A Eklund <eae@chromium.org>
Reviewed-by: Stefan Zager <szager@chromium.org>
Commit-Queue: Morten Stenshorne <mstensho@opera.com>
Cr-Commit-Position: refs/heads/master@{#480774}
mstensho
Need to dirty min/max widths on certain children, regardless of entry-point.
It doesn't matter whether it's during layout or not that we decide to
recalculate the min/max widths. If the min/max widths of a child is known to be
affected by changes in the containing block, we need to recalculate them
regardless of that.

This got broken by https://chromium-review.googlesource.com/527640 . It used to
work prior to that change, because then, dirty bits on the child of the
shrink-to-fit container were accidentally left behind from a previous layout
pass, so that min/max widths got properly recalculated the next time its parent
got marked dirty.

BUG=728548

Change-Id: I011e2101d3913ac44284a6d18c16260a42ee7eee
Reviewed-on: https://chromium-review.googlesource.com/538694
Reviewed-by: Emil A Eklund <eae@chromium.org>
Reviewed-by: Stefan Zager <szager@chromium.org>
Commit-Queue: Morten Stenshorne <mstensho@opera.com>
Cr-Commit-Position: refs/heads/master@{#480591}
mostynb
add missing import for enable_extensions
BUG=733663,725906
TBR=brettw

Change-Id: I2c4b30ac5c93372952f7f3901929afc57bef6572
Reviewed-on: https://chromium-review.googlesource.com/537372
Reviewed-by: Mostyn Bramley-Moore <mostynb@opera.com>
Reviewed-by: Brett Wilson <brettw@chromium.org>
Commit-Queue: Mostyn Bramley-Moore <mostynb@opera.com>
Cr-Commit-Position: refs/heads/master@{#479784}
hugoh
Allow generation of a chromium outdirs when enable_extensions=false
This allows us at Opera to patch chromium a little less before
building a downstream product that doesn't depend on extensions.

At the moment, the 'chrome' target does not compile when
enable_extensions=false - and this is fine since Chrome indeed
needs extensions. But other browser products that use
enable_extensions=false can now generate an outdir without
getting complaints from GN.

BUG=725906

TEST=gn gen out/GnTest
TEST=gn gen --args='enable_extensions=false' out/GnTest
TEST=gn gen --args='is_component_build=true' out/GnTest
TEST=gn gen --args='is_component_build=true enable_extensions=false' out/GnTest
TEST=gn gen --args='target_os="android"' out/GnTest
TEST=gn gen --args='target_os="android" enable_extensions=false' out/GnTest
TEST=gn gen --args='target_os="chromeos"' out/GnTest
TEST=gn gen --args='target_os="chromeos" is_component_build=true' out/GnTest

Review-Url: https://codereview.chromium.org/2904443004
Cr-Commit-Position: refs/heads/master@{#479646}
ingemara
Remove WebContentsDelegateAndroid::OnGoToEntryOffset
It was added by Opera in https://codereview.chromium.org/684133007, but
has since stopped being used downstream. There are no references to the
method in any upstream code.

BUG=

Review-Url: https://codereview.chromium.org/2942553002
Cr-Commit-Position: refs/heads/master@{#479637}
mstensho
Update LEGEND implementation to better match the spec.
Only rendered legends [1] should establish a new block formatting context and
shrink to fit.

[1] https://html.spec.whatwg.org/multipage/rendering.html#rendered-legend

BUG=727378

Change-Id: I0aeddbd6d4b345bbe626be8ac2efd1fea501372e
Reviewed-on: https://chromium-review.googlesource.com/535595
Reviewed-by: Stefan Zager <szager@chromium.org>
Commit-Queue: Morten Stenshorne <mstensho@opera.com>
Cr-Commit-Position: refs/heads/master@{#480791}
mstensho
Check if we are going to create a new column row, instead of just assuming it.
Before attempting to guess what the height of the next column row is going to
be, make sure that we're actually going to create one. If we're not going to
create one, the height of the already existing row is what we should use.

This fixes a recently introduced DCHECK failure. It also makes us handle
overflowing columns in a nested fragmentation context properly. That has
probably never worked before, though.

Also shortened the name of a parameter, to prevent the code formatter from
creating soup.

Change-Id: I45ccc272312a0757630c0d97d1d023168756d51c
Reviewed-on: https://chromium-review.googlesource.com/535556
Reviewed-by: Emil A Eklund <eae@chromium.org>
Commit-Queue: Emil A Eklund <eae@chromium.org>
Cr-Commit-Position: refs/heads/master@{#479428}
hugoh
Add missing #include <cerrno> in socket_options.cc
One of our toolchains does not expose |errno| in the global namespace.

BUG=none

Review-Url: https://codereview.chromium.org/2930873002
Cr-Commit-Position: refs/heads/master@{#479366}
mstensho
Relax a DCHECK: Column indices out of bounds are fine here.
Just let MultiColumnFragmentainerGroup::LogicalHeightInFlowThreadAt() return
0 if the column index is past the end. The last column *within* bounds will
get its height clamped against the bottom of the flow thread, like before.

BUG=732030

Change-Id: Icd0c8d77f73a02b69a27f24ca70b7b0a023c28dd
Reviewed-on: https://chromium-review.googlesource.com/533016
Reviewed-by: Emil A Eklund <eae@chromium.org>
Commit-Queue: Morten Stenshorne <mstensho@opera.com>
Cr-Commit-Position: refs/heads/master@{#479436}
mstensho
Made focus hightlight region calculation (outline-style:auto) multicol-aware.
Went for a very simplistic solution, at least for now. Just use the bounding
box of everything inside the multicol container.

BUG=714675

Change-Id: Ie5ca0f747edc4ac3b384ecb784443592edee7379
Reviewed-on: https://chromium-review.googlesource.com/534473
Commit-Queue: Xianzhu Wang <wangxianzhu@chromium.org>
Reviewed-by: Xianzhu Wang <wangxianzhu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#479406}
mstensho
Let NextLogicalTopForUnbreakableContent() rely on PageLogicalHeightForOffset().
Due to poorly duplicated code (not consistently clamping against computed
height/max-height), the machinery was confused as to how tall a next
fragmentainer group (column group) would be, and would trick the line layout
code into incorrectly believing that there'd be enough space for a tall line,
if we just pushed it all the way past the current fragmentainer group. This
caused a DCHECK failure:

DCHECK_GT(page_logical_height, LayoutUnit()) in

LayoutBox: :PageLogicalHeightForOffset().
Change-Id: I1e34fe3e84d798f3679404589414d90a758a72ea
Reviewed-on: https://chromium-review.googlesource.com/532959
Reviewed-by: Emil A Eklund <eae@chromium.org>
Commit-Queue: Morten Stenshorne <mstensho@opera.com>
Cr-Commit-Position: refs/heads/master@{#479305}
wdzierzanowski
Stop assuming metadata contains at least one stream
It is valid for a media::Demuxer implementation to provide 0 streams in
GetAllStreams().  In this case, the metadata built by PipelineImpl is
empty too.  This should be handled, just like PipelineImpl already
handles absence of streams with PIPELINE_ERROR_COULD_NOT_RENDER.

TEST=media_blink_unittests

Review-Url: https://codereview.chromium.org/2930333004
Cr-Commit-Position: refs/heads/master@{#479066}
ckulakowski
Add ifdef guard to WorkletModuleTreeClient.h
We use "jumbo" compilation of blink in our project. The main idea is
to compile some number of cc files as one compilation unit. It
significantly speeds up compilation time of blink. With "jumbo"
enabled there is compilation error due to lack of ifdef
guard in file WorkletModuleTreeClient.h.

BUG=732727

Review-Url: https://codereview.chromium.org/2935823003
Cr-Commit-Position: refs/heads/master@{#478967}
sigbjornf
Avoid AudioBufferSourceHandler data race.
Following r478084, the main thread may contend with the audio thread
on accessing AudioBufferSourceNodeHandler's mutable state. Coordinate
such access by introducing a Mutex over |min_playback_rate_|.

Using atomic ops would be the natural choice for handling this, but
steering clear of those over doubles (cf. https://crrev.com/1256053006)
until std::atomic<> is allowed.

R=haraken,hongchan
BUG=731568

Review-Url: https://codereview.chromium.org/2929283002
Cr-Commit-Position: refs/heads/master@{#478679}
mstensho
Better handling of min/max widths that depend on the containing block.
This is about how we behave when NeedsPreferredWidthsRecalculation()
is true. This is a rather rare situation, and also an unfortunate one,
since min/max width calculation should be strictly bottom-up.

If we mark min/max widths of an object as dirty, we need to guarantee
that they're actually going to be recalculated. Otherwise, if the
object is left around with dirty min/max widths, it will block
subsequent min/max dirtying of any descendant. We also need to make
sure that if we mark min/max widths as dirty due to
NeedsPreferredWidthsRecalculation(), we also need to mark the min/max
widths of every child with the same issue as dirty, recursively, since
any layout change may have affected the min/max widths there too.

Documented NeedsPreferredWidthsRecalculation(). Added one test that
has been failing for ages, and one that started to fail because of the
bug referenced. Both pass now.

BUG=728548

Change-Id: I8b9325ba20a6da2329d28d21a6eca6bc1aa36c06
Reviewed-on: https://chromium-review.googlesource.com/527640
Reviewed-by: Stefan Zager <szager@chromium.org>
Commit-Queue: Morten Stenshorne <mstensho@opera.com>
Cr-Commit-Position: refs/heads/master@{#478616}
mstensho
Update HR implementation to match the spec.
Don't hardcode HR as establishing a new formatting context.
Set overflow:hidden in the UA stylesheet instead. [1]
Also specify unicode-bidi:isolate [2]

Some heavy test expectation rebaselining is necessary, since making
HR overflow:hidden entails that it will now establish a PaintLayer.

[1] https://html.spec.whatwg.org/multipage/rendering.html#the-hr-element-2
[2] https://html.spec.whatwg.org/multipage/rendering.html#bidi-rendering

BUG=728499

Change-Id: I1734242d240cb236269b218283bcb16b4ca7c0e4
Reviewed-on: https://chromium-review.googlesource.com/521044
Commit-Queue: Morten Stenshorne <mstensho@opera.com>
Reviewed-by: Stefan Zager <szager@chromium.org>
Cr-Commit-Position: refs/heads/master@{#478611}
sigbjornf
Avoid unsafe heap access from audio thread.
The audio thread tries to touch main thread Blink GCed objects in a
select few places, which isn't safe as a GC might concurrently run.

Avoid such cross off-thread usage, rearrange the processing of
finished nodes from the audio thread to the main thread.

R=hongchan,rtoy,haraken
BUG=727091,729275

Review-Url: https://codereview.chromium.org/2913303002
Cr-Commit-Position: refs/heads/master@{#478084}
wdzierzanowski
Declare kAppendWholeFile as constexpr
kAppendWholeFile was dynamically initialized, causing it to be 0 at the
time of the initialization of the kMediaSourceADTSTests array when
built with VC 2015.  This resulted in an assertion failure in
MockMediaSource constructor.

std::numeric_limits::max() is constexpr in C++11, so fix that by
declaring kAppendWholeFile as constexpr too.

While we're here, let's change DCHECKs in mock_media_source.cc to
CHECKS, because there is no reason to prefer DCHECK over CHECK in
test-only code.

TEST=media_unittests --gtest_filter=ProprietaryCodecs/BasicMSEPlaybackTest.PlayToEnd/*

Review-Url: https://codereview.chromium.org/2920243002
Cr-Commit-Position: refs/heads/master@{#477755}
karlo
Floor widths in LayoutTable::BorderBefore() and BorderAfter().
LayoutTable::BorderBefore() and LayoutTable::BorderAfter() incorrectly
did not floor widths.  Borders in tables are not yet sub pixel, so all
border widths should be integers.

BUG=727928

Change-Id: I7ca1a93b4a749c112100634a984ebe825c1570a8
Reviewed-on: https://chromium-review.googlesource.com/520385
Reviewed-by: David Grogan <dgrogan@chromium.org>
Reviewed-by: Emil A Eklund <eae@chromium.org>
Commit-Queue: Karl Anders Øygard <karlo@opera.com>
Cr-Commit-Position: refs/heads/master@{#480402}
fs
Tidy up SVGListPropertyHelper
Turn some iterations into range-based for-loops. Use operator== from
Vector<...> rather than re-implementing it. Remove FindItem (unused.)
Deduplicate some code, replace 0 with nullptr where appropriate and
simplify the padding loop.

BUG=709001

Review-Url: https://codereview.chromium.org/2920103002
Cr-Commit-Position: refs/heads/master@{#476914}
mstensho
De-virtualize HasRelativeLogical{Height,Width} in LayoutBox.
It's not overridden anywhere.

Change-Id: I5eb4be5ee121c726c5219854ed9e9408b3ac62e5
Reviewed-on: https://chromium-review.googlesource.com/522062
Reviewed-by: Stefan Zager <szager@chromium.org>
Commit-Queue: Morten Stenshorne <mstensho@opera.com>
Cr-Commit-Position: refs/heads/master@{#476777}
mstensho
No longer let 0 mean that fragmentainer height is unknown.
For multicol, PageLogicalHeightForOffset() would normally figure out what to
return by consulting the flow thread, which would find the appropriate column
set, which in turn would find the appropriate fragmentainer group and return
its height.

We used to treat a 0 value as "unknown" most of the time (but there were also
cases where we'd accept it as a column height). We now always have to call
IsPageLogicalHeightKnown() first to tell whether it's known or not. This is
reasonable, since the calling code always has to act upon the situation of not
knowing the height (typically skip some steps, since fragmentation is
impossible until height is known).

It is now forbidden to call PageLogicalHeightForOffset() if height is unknown
(there are DCHECKs). The height is unknown in many cases in the first multicol
balancing pass. The height will be known once we have made a column height
estimate. It doesn't have to be the final and correct height. This CL doesn't
change anything in that regard, but now we are required to be sure that we
have some clue at all before dealing with fragmentainer heights.

MultiColumnFragmentainerGroup now has a flag that tells whether the logical
height is known or not. We need the flag, because the logical height may
actually end up as 0, e.g. when a multicol container just has zero-height
content, or when the multicol container itself has a specified height of 0.
This unclamped height will be used as block progression for the column row,
which will contribute to the final height of the multicol container. The
actual column height will be clamped to not be less than 1px. This is in
accordance with the spec [1]. We previously used to treat truly zero-height
fragmentainer groups as having an unknown height in some parts of the code,
while in other parts of the code we'd just accept it and end up dividing by
it (to convert a flow thread offset to a column index, for instance).

This is a clean-up CL that happens to fix bugs.

[1] https://drafts.csswg.org/css-break/#breaking-rules

BUG=722041,722754

Change-Id: I63550d804bef073a5c24570d63bd55176ec5e396
Reviewed-on: https://chromium-review.googlesource.com/514049
Commit-Queue: Morten Stenshorne <mstensho@opera.com>
Reviewed-by: Emil A Eklund <eae@chromium.org>
Cr-Commit-Position: refs/heads/master@{#476270}
fs
Remove svg/animations/animate-local-url.html from TestExpectations
No flakes observed after https://codereview.chromium.org/2907193002.

TBR=schenney@chromium.org
BUG=727257

Review-Url: https://codereview.chromium.org/2917623002
Cr-Commit-Position: refs/heads/master@{#475869}
mstensho
Always relayout children of LayoutView when printing.
We can normally trust UpdateLogicalWidth() to detect and report size changes,
but this is not the case when printing, because
FrameView::ForceLayoutForPagination() changes the logical width of the
LayoutView behind our back.

BUG=702778

Review-Url: https://codereview.chromium.org/2908503003
Cr-Commit-Position: refs/heads/master@{#475862}
rune
Do not prepend implicit type selectors to :host rules.
:host and :host-context() should not have implicit type selectors pre-
pended for universal rules with default @namespace. Default @namespace
applies to type and universal selectors inside :host() and
:host-context(), but a default @namespace rule should not affect :host.
That is, :host matches the host element regardless of any @namespace
rules.

R=hayato@chromium.org,kochi@chromium.org
BUG=727603

Change-Id: I78d2919275aa6bdc4fdc5b02a4772d2352819258
Reviewed-on: https://chromium-review.googlesource.com/518019
Reviewed-by: Takayoshi Kochi <kochi@chromium.org>
Commit-Queue: Rune Lillesveen <rune@opera.com>
Cr-Commit-Position: refs/heads/master@{#475834}
rune
Put unqualified pseudos into the more specific rulesets.
We were incorrectly putting unqualified pseudo classes for :focus,
:visited, :-webkit-any-link and :link into the universal RuleSet which
meant we would match them for every element defeating the optimization
of having the separate rulesets.

This patch starts tracking the pseudos inside the extraction step to
make sure we put them into the right ruleset. It also adds some asserts
that the default UA sheet never adds any universal rules.

This removes one rule (:focus) from the set of rules for every element.

Bug: 721514
Change-Id: I4208e1c8c938aa0af7a736594f3c0059b6b28fcc
Reviewed-on: https://chromium-review.googlesource.com/517789
Commit-Queue: Rune Lillesveen <rune@opera.com>
Reviewed-by: Naina Raisinghani <nainar@chromium.org>
Cr-Commit-Position: refs/heads/master@{#475642}
fs
Clean up creation of "detached" SVG* data type objects
Add CreateDetached helpers for the various objects (or, their tear-offs)
that can be created without having a context element. This is in
preparation for replacing some of these with their DOM* counterparts
from the Geometry specifications [1]. The "detached" term is borrowed from
the SVG2 specification [2].
Also drop all of the default arguments that pass QualifiedName::Null(),
and instead explicitly pass them where needed (for detached objects.)

[1] https://drafts.fxtf.org/geometry/
[2] https://svgwg.org/svg2-draft/struct.html#__svg__SVGSVGElement__createSVGNumber

BUG=709001

Review-Url: https://codereview.chromium.org/2912663002
Cr-Commit-Position: refs/heads/master@{#475583}
mstensho
Less duplicated code between AvoidsFloats() and CreatesNewFormattingContext().
In general there shouldn't really be any need for both. We could just remove
AvoidsFloats() and keep CreatesNewFormattingContext(). But then again, it might
be considered weird to say that replaced content creates a block formatting
context. So let's keep the both of them for now.

However, the following rule should always apply: If the object creates a new
formatting context, it implies that it also avoids floats. That's the reason for
declaring LayoutBlockFlow::AvoidsFloats() as final.

Furthermore, the only kind of LayoutBlock-type objects that DOESN'T create a
new formatting context, are certain LayoutBlockFlow (block container) objects.
So move the checks over from LayoutBlock to LayoutBlockFlow. Keep a virtual
true-returning CreatesNewFormattingContext() in LayoutBlock. We could actually
consider removing this, but there are 2-3 call sites that currently need it.

This CL causes a couple of minor rendering differences: Previously, HR elements
were told to avoid floats, but not to establish block formatting contexts.
Let's be consistent and return true for both. This makes us more compatible
with Edge. Test included. Turning HR elements into true block formatting
contexts also affects margin collapsing. Its top and bottom margins no longer
collapse. Had to make a change to the default style sheet for HR inside
SELECT because of this. Inside SELECT, HR loses its borders, so that its top
and bottom margins would previously collapse, but not anymore, now that it
establishes a block formatting context. To cancel out any rendering difference,
reduce margins in this particular case.

Similarly for RT (ruby text). LayoutRubyText objects are repositioned after
layout, which essentially requires them to contain all child floats, i.e.
establish a new block formatting context. Previously they achieved a
quasi-formatting context by returning true from AvoidFloats(). The screenshot
test fast/ruby/float-overhang-from-ruby-text.html would fail spectacularly if
they exposed child floats to their sibling ruby base. That test expectation
still requires a tiny update to its layout tree dump, though.

This CL also makes CreatesNewFormattingContext() return true for tables,
flexboxes, grids, and anything blocky that isn't LayoutBlockFlow. This
shouldn't be a web-exposable change, though, since no non-LayoutBlockFlow types
can contain float children (e.g. a float inside a table would have to be
wrapped inside either a table-cell or a table-caption (which both establish a
new block formatting context), and a float inside a flexbox would have to be
wrapped inside a flex item (which establishes a new block formatting context)).

BUG=460704

Change-Id: If60c1fc636db73a7ff241471ea7bf95adf996512
Reviewed-on: https://chromium-review.googlesource.com/512824
Reviewed-by: Robert Hogan <robhogan@gmail.com>
Commit-Queue: Morten Stenshorne <mstensho@opera.com>
Cr-Commit-Position: refs/heads/master@{#475749}
rune
Fixed flaky test snav-z-index.html.
requestAnimationFrame before initTest().

Without this change, repeat-each=10 caused failures most of the time.
With this change repeat-each=100 has been run locally a few times
without any failures (Linux x64).

Also converted some setTimeout => requestAnimationFrame for better
predictability.

R=kochi@chromium.org
BUG=724567

Change-Id: Ic1f27c3fda1ff7da063ab29286d707cb518ab7a6
Reviewed-on: https://chromium-review.googlesource.com/518163
Reviewed-by: Takayoshi Kochi <kochi@chromium.org>
Commit-Queue: Rune Lillesveen <rune@opera.com>
Cr-Commit-Position: refs/heads/master@{#475429}
fs
Attempt to fix flakiness in svg/animations/animate-local-url.html
SMIL animations start after the 'load' event has been dispatched, so
make sure to schedule the relevant timer after the 'load' event handler
has run.

TBR=schenney@chromium.org
BUG=727257

Review-Url: https://codereview.chromium.org/2907193002
Cr-Commit-Position: refs/heads/master@{#475364}
fs
Remove unused methods in SVGListPropertyHelper and SVGPropertyTearOff*
SVGPropertyTearOffBase: :GetType, and corresponding concretization in
Review-Url: https://codereview.chromium.org/2913513002
Cr-Commit-Position: refs/heads/master@{#475310}
rune
Use LowerASCII instead of DeprecatedLower in css/
Incorrectly folded upper-case non-ascii characters into ascii for type,
attribute, id, and class selectors causing non-matching selectors to
match.

Also fixed for media types and features.

BUG=726176

Change-Id: I5a6f813b2722ee4efcff2ab933f5ad075faadcbb
Reviewed-on: https://chromium-review.googlesource.com/517105
Commit-Queue: Rune Lillesveen <rune@opera.com>
Reviewed-by: Morten Stenshorne <mstensho@opera.com>
Cr-Commit-Position: refs/heads/master@{#475021}
rune
Drop author ::-internal-* pseudo at parse time.
The SelectorChecker already always failed, but the selector should be
invalid and the whole rule dropped. There is a single pseudo
::-internal-media-controls-overlay-cast-button which is still web-
facing. That is tracked by issue 678285.

Moved the update pseudo page in @page into a separate method.

BUG=725480,678285

Change-Id: Ifca8a0e593c4d11720b0b0822e4c753ff45fb52b
Reviewed-on: https://chromium-review.googlesource.com/512827
Commit-Queue: Rune Lillesveen <rune@opera.com>
Reviewed-by: Mounir Lamouri <mlamouri@chromium.org>
Cr-Commit-Position: refs/heads/master@{#474987}
sigbjornf
Enable heap compaction on all 'container' arenas.
Reconcile indexing for compactable arenas to always be wrt
the arena index -- it was miscued on setting, using an
offset instead, thereby preventing vector[1-4] arenas from
being considered for compaction.

R=haraken
BUG=726335

Review-Url: https://codereview.chromium.org/2908463002
Cr-Commit-Position: refs/heads/master@{#474966}
fs
Stricter equality check for local refs in CSSURIValue
'local' references ("#foo") needn't even consider the absolute URL(s)
when being compared. In this particular case, the (redundant) comparison
ended up comparing equal because a base-URL-less parser context is used
when parsing the property (will be fixed separately.)
When |is_local_| is set, only consider the relative URLs during the
comparison.

BUG=725469

Review-Url: https://codereview.chromium.org/2905033003
Cr-Commit-Position: refs/heads/master@{#474717}
sigbjornf
blink_gc_plugin: disallow WeakMember<> fields in off-heap objects.
Add missing check for WeakMember<> fields in non-managed classes;
not permitted just like Member<>.

R=dcheng,haraken
BUG=724418

Review-Url: https://codereview.chromium.org/2902563002
Cr-Commit-Position: refs/heads/master@{#474368}
mstensho
When moving past a left-hand scrollbar, don't jump way outside the content box.
We handle rendering, scrolling and scrollbars quite poorly if a scrollbar is
actually wider than its containing block. See crbug.com/724255 for more info on
this corner-case.

We end up with negative values in parts of the code where they are not
expected. This CL is just a simple regression fix to at least make sure that
scrollWidth doesn't get messed up by left-hand scrollbars.

AngularJS depends on this.

BUG=720227

Review-Url: https://codereview.chromium.org/2893833004
Cr-Commit-Position: refs/heads/master@{#474226}
rune
Don't trigger full active style update on styleSheets access.
Element.styleSheets and ShadowRoot.styleSheets need to be made up-to-
date on access. We used to do a full active style update, but re-
collecting the stylesheet list should be enough, leaving the active
style dirty flags intact.

We introduce a dirty-flag for the stylesheet list in
StyleSheetCollection to avoid repeatedly re-collecting this list while
the active style is still dirty.

This coincidentally fixes issue 722826 since we do not collect
stylesheets in import shadow trees as part of the active style update,
but is now made up-to-date on request when accessing the styleSheets
collection on shadow roots inside import documents.

This fixes the performance issue 717506.

R=meade@chromium.org
BUG=717506,722826

Review-Url: https://codereview.chromium.org/2884993002
Cr-Commit-Position: refs/heads/master@{#473846}
hugoh
Correct logic "Should ContextMenu target the selection?"
If the selection doesn't have focus, it shouldn't be the target
of the context menu.

For example, an _unfocused_ range selection should not be the
context menu's target (the focused element should be the target).

BUG=725005, 725022

Review-Url: https://codereview.chromium.org/2880313002
Cr-Commit-Position: refs/heads/master@{#473842}
fs
Get SVGLayoutTreeAsText shape values from ComputedStyle
The values from ComputedStyle better reflect what values are actually
used.

Review-Url: https://codereview.chromium.org/2888603005
Cr-Commit-Position: refs/heads/master@{#473157}
rune
Make CSSSelector::SelectorText() non-recursive.
Should fix the stack overflow issue for selectors with an excessive
amount of compound selectors.

R=meade@chromium.org
BUG=719374

Change-Id: I2a1cfb8cb2d00d96f8d46a6e7317c5871020c6cd
Reviewed-on: https://chromium-review.googlesource.com/506020
Reviewed-by: Eddy Mead <meade@chromium.org>
Commit-Queue: Rune Lillesveen <rune@opera.com>
Cr-Commit-Position: refs/heads/master@{#473972}
rune
Update styleSheets list in import without active style update.
Querying document.styleSheets should not need to do a full active style
update. This CL is implementing a light-weight update of the styleSheets
list querying document.styleSheets on html import documents.

We collect and swap style_sheets_for_style_sheet_list_ for the
collection of the import document without touching the active style or
the dirty flags for active style on the master document. This is
straightforward for import documents as they don't have an active
stylesheet list themselves. Doing this optimization for top level
documents and shadow trees is the next step, but we need to be more
careful for those cases to keep the dirtyness without having to re-
collect for the styleSheets api every time.

BUG=717506

Review-Url: https://codereview.chromium.org/2880303002
Cr-Commit-Position: refs/heads/master@{#472751}
fs
Remove SVGTextMetrics Width/Height getters
Remove said methods, replacing them with an additional Advance(...)
overload and a new method Extents() for the users that need those (all
in SVGTextQuery.)

BUG=544767

Review-Url: https://codereview.chromium.org/2888623008
Cr-Commit-Position: refs/heads/master@{#472650}
rune
Remove duplicate selector list serialization code.
CSSStyleRule::GenerateSelectorText() was identical to
CSSSelectorList::SelectorsText(). Removed the former.

R=nainar@chromium.org

Change-Id: Ia9432434c8a7943228a39fe5d1005b2fb49492bc
Reviewed-on: https://chromium-review.googlesource.com/506730
Reviewed-by: Alexis Menard <alexis.menard@intel.com>
Reviewed-by: Naina Raisinghani <nainar@chromium.org>
Commit-Queue: Rune Lillesveen <rune@opera.com>
Cr-Commit-Position: refs/heads/master@{#472627}
rune
Clear document scope dirtiness in import StyleEngine.
This is part of the plan to fix 717506 by re-collect sheets for
style_sheets_for_style_sheet_list_  separately from updating all of
active style to make it more light-weight.

Some sanity checking and comment about document scope dirtiness in,
and clear dirtiness after updating active sheets for, html imports.

Also renamed to UpdateActiveStyleSheetsInImport() to make it clearer
what the method does.

BUG=717506

Review-Url: https://codereview.chromium.org/2880263002
Cr-Commit-Position: refs/heads/master@{#472447}
rune
Allocate CSSGlobalRuleSet on heap.
Avoids allocating the CSSGlobalRuleSet on html import StyleEngines.

Review-Url: https://codereview.chromium.org/2883003002
Cr-Commit-Position: refs/heads/master@{#472186}
rune
Avoid synchronous stylesheet update on html import loaded.
A use counter was updating the styleSheets list, which updated all of
active style to figure out if an html import contains stylesheets.
Instead, do a simpler walk of the stylesheet candidate nodes and return
early if one of them has a sheet, or a sheet load is in progress.

BUG=717506

Review-Url: https://codereview.chromium.org/2882983002
Cr-Commit-Position: refs/heads/master@{#472139}
hugoh
Rename *Focus*-methods of FrameSelection to clarify its public API
As we've now added FS::SelectionHasFocus in [1], let's rename
FS::*IsFocused* to FS::*FrameIsFocused* to emphasize that these
methods give information about the Frame (in contrast to
FS::SelectionHasFocus).

BUG=715889
TEST=No behavior change

[1] = crrev.com/2841093002
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Review-Url: https://codereview.chromium.org/2876973003
Cr-Commit-Position: refs/heads/master@{#472129}
rune
Don't try to set the empty string as the preferred set.
Noticed during debugging that we did an extra MarkDocumentDirty() for
active stylesheet update trying to change the preferred set from empty
string to empty string in a document where no sheets had a title
attribute.

Guard the call sites which didn't check for emptiness and add a DCHECK
in the SetPreferredStylesheetSetNameIfNotSet implementation.

Review-Url: https://codereview.chromium.org/2879223002
Cr-Commit-Position: refs/heads/master@{#472039}
fs
Use CorrespondingUseElement() in SVGElement::TreeScopeForIdResolution
For elements sourced non-locally, CorrespondingElement() will give the
TreeScope of the document it was sourced from rather than the TreeScope
of the <use> element. Until we are able to resolve references at
ComputedStyle resolution, attempt to use the host of the shadow tree,
i.e the (outermost) <use> element. (This will not work when external
paint servers are supported, or with a paint server defined in the
referenced document.)

BUG=721167

Review-Url: https://codereview.chromium.org/2877973002
Cr-Commit-Position: refs/heads/master@{#471955}
hugoh
Make context menu aware of hidden selection
When the frame's selection is hidden, the context menu should
use the focused element (not the selection) as context.

BUG=715059

Expected: Context menu for <a>.
Review-Url: https://codereview.chromium.org/2869713003
Cr-Commit-Position: refs/heads/master@{#471719}
fs
Nested <use>s can resolve against an external resource
Rather than using TargetElementFromIRIString(...) when resolving nested
<use> references, we should be using ResolveTargetElement(), since the
latter also considers a possible external resource.

BUG=721196

Review-Url: https://codereview.chromium.org/2875303002
Cr-Commit-Position: refs/heads/master@{#471632}
mstensho
Distinguish between row (fragmentainer group) height and column (fragmentainer) height.
TLDR; The spec [1] says that a fragmentainer height must always be 1px or
greater, to ensure progress. If we just do this, we'll avoid a lot of trouble
with limitations in the data types that we use.

While *column* heights will now be clamped to >= 1px, we still allow the height
of a *row* (fragmentainer group) to be less than 1px. We don't want the row to
take up more space than it should in its container.
E.g. <div style="columns:2; height:0.5px;"><div style="height:1px";></div></div>
will give a row height of 0.5px, as specified. The column height, on the other
hand, should be clamped up to 1px.

And here, for the nastiness that this CL aims to fix:
<div style="columns:2; height:0.25px;">
    <div style="height:10000000px;"></div>
</div>
The content to fragment is 10 million pixels tall, and the column height has
been specified as 0.25px. Internally in our code, heights are stored as
LayoutUnit, which is a fixed-point unit with 6 bits reserved for decimals. On
the other side of the decimal point we have room for 32-6 bits = 26 bits, which
is what we have for a signed integer. That's 25 bits for the absolute value.
That's just over 30 million. LayoutUnit uses saturated arithmetic so there'll
never be any integer overflow or underflow, but there may be other ill effects.
Like in this case, if we actually allow a column height of less than 1px (i.e.
0.25px), when the engine for example wants to figure out the *actual* column
count (column count was *specified* as 2, but there's no way we're going to be
able to fit a 10 millions pixels tall thing in two columns when the column
height is 0.25px, so the actual count will be way higher), we take the flow
thread portion (10000000px) and divide by the column height (0.25px). If we
divide something by something (positive) less than 1, we of course end up with
a quotient larger than the dividend. While the dividend may be small enough to
fit unclamped in a LayoutUnit (10000000px fits just fine), the quotient
(40000000) may not. So, while the actual column count really is 40 million (if
we allow columns to be shorter than 1px), the engine will clamp the 40 million
to fit inside a LayoutUnit. That's 33554431. This is the root of the problem,
and this incorrect column count value may in turn lead to other bad things,
even negative column heights in subsequent rows (and good luck calculating a
used column count off that!). It would probably be possible to cope with this,
if we only take extra care everywhere, when dealing with close-to-insane
numbers.

Or we can just do what the spec says, and clamp column heights to >= 1px.

[1] https://drafts.csswg.org/css-break/#breaking-rules

BUG=712626,715208

Review-Url: https://codereview.chromium.org/2874933005
Cr-Commit-Position: refs/heads/master@{#471330}
jl
Inherit [Unforgeable] attributes between components
Specifically, when an interface in modules/ inherits an interface in core/
that defines an [Unforgeable] attribute, the interface in modules/ should
still have the attribute.

BUG=712070

Review-Url: https://codereview.chromium.org/2874153003
Cr-Commit-Position: refs/heads/master@{#471284}
fs
Fix textPath textLength position adjustment for the spacing case
Follow-up to https://codereview.chromium.org/2870393002, adjusting the
<textPath> 'textLength' computation in the same way.

BUG=719522

Review-Url: https://codereview.chromium.org/2868413003
Cr-Commit-Position: refs/heads/master@{#471248}
mostynb
debug_fission does not depend on bundled binutils
Change-Id: Ic6cd79175a1ea51dcd8f6ba11bf48ed6f800db6b
Reviewed-on: https://chromium-review.googlesource.com/503011
Reviewed-by: Nico Weber <thakis@chromium.org>
Reviewed-by: Brett Wilson <brettw@chromium.org>
Commit-Queue: Mostyn Bramley-Moore <mostynb@opera.com>
Cr-Commit-Position: refs/heads/master@{#471243}
mstensho
Improve LayoutMultiColumnFlowThread::IsPageLogicalHeightKnown().
Simply returning whether the last column set has a known height isn't really
sufficient. All column sets need to have known heights.

However, instead of asking each column set every time we call
LayoutMultiColumnFlowThread::IsPageLogicalHeightKnown(), use a flag.

BUG=709792,717939

Review-Url: https://codereview.chromium.org/2877703003
Cr-Commit-Position: refs/heads/master@{#471231}
rune
Rebuild layout tree in flat tree order.
Marking the DOM for layout tree rebuild and the actual rebuilding is
now contained in the lifecycle update at a point where the shadow dom
distribution is up-to-date. We can therefore safely mark the flat-tree
ancestor chain without risking that it's broken by a distribution.

The point of doing RebuildLayoutTree in flat tree order is that layout
boxes can then be re-attached in the layout tree order which makes it
simpler to handle whitespace reattachment. For shadow trees and slotted
elements, when using the shadow-including tree order, we could have
elements rebuild their layout boxes in an order arbitrarily decided by
the slot assignments and slot positions in the shadow tree.

Note that while the RebuildLayoutTree traversal used to happen in the
shadow-including order, the layout attachment already happens in the
flat tree order.

See [1] for a plan to fix correctness and performance of whitespace
re-attachment.

This CL is doing the following changes:

1. Modify MarkAncestorsWithChildNeedsReattachLayoutTree to mark flat
   tree ancestry.

2. Rebuild distributed children for InsertionPoint and HTMLSlotElement.
   These children were rebuilt after their host's shadow tree before
   this change.

3. Factored out RebuildLayoutTreeForChild() as common code for both
   walking light tree children in ContainerNode, and distributed
   children in InsertionPoint and HTMLSlotElement.

4. Made FinalDestinationSlot() a member of node instead of a static
   function as it is now needed in multiple files.

[1] http://bit.ly/2ozyBdx

Review-Url: https://codereview.chromium.org/2836753002
Cr-Commit-Position: refs/heads/master@{#471188}
mostynb
remove superfluous size_t value >= 0 check
This assertion adds no value, and can trigger warnings (and errors if
you build with -Werror). I think it should be removed. If it is really
important, a comment where the variable is defined would suffice.

Patch submitted upstream:

https: //github.com/gperftools/gperftools/pull/885
Change-Id: Ife6de127928bfdd0c3861b65cdeb8e5ccbfee16d
Reviewed-on: https://chromium-review.googlesource.com/503034
Reviewed-by: Will Harris <wfh@chromium.org>
Commit-Queue: Mostyn Bramley-Moore <mostynb@opera.com>
Cr-Commit-Position: refs/heads/master@{#471054}
bratell
Merged all PointerToId functions into TraceHelper::PointerToString.
There are many places in scheduler/renderer that need to make a string
out of a pointer for tracing purposes. This creates a shared function
for them.

This was noticed while experimenting with jumbo builds which can not
handle reused symbol names in the global or global anonymous scope.

Review-Url: https://codereview.chromium.org/2837323002
Cr-Commit-Position: refs/heads/master@{#470948}
rune
Check StyleSheetIsLoading before clearing LinkStyle sheet.
StyleSheetIsLoading() returns true if the top sheet is loaded but has
loading imports. If the top level sheet is cleared before we check the
loading status, we will not appropriately call RemovedPendingSheet()
which may block rendering indefinitely.

R=meade@chromium.org,pmeenan@chromium.org
BUG=718358

Review-Url: https://codereview.chromium.org/2873133002
Cr-Commit-Position: refs/heads/master@{#470943}
fs
Fix textLength position adjustment for the "adjust spacing" case
There should be no advance adjustment after the last character (really,
"typographic unit"), so divide the excess space by the character count
minus one - i.e the number of gaps - rather than the character count.

BUG=719522

Review-Url: https://codereview.chromium.org/2870393002
Cr-Commit-Position: refs/heads/master@{#470928}
fs
Remove the SVGImageElement::needs_loader_uri_update_ flag
Since xml:base is no longer a thing, there's no reason to delay the
resource (image) load until the <image> element is in the document.

Remove the flag and initiate resource loads a way resembling
HTMLImageElement. This means a change in behavior, since it will now be
possible get the load to start before the image is inserted into the
document. The new behavior matches Gecko.

Also clean up the code a bit, remove some unused includes and add a TODO
for the document adopt case.

BUG=720310

Review-Url: https://codereview.chromium.org/2868323002
Cr-Commit-Position: refs/heads/master@{#470898}
sigbjornf
Fix compilation of heap compaction debug diagnostics code.
R=
BUG=675877

Review-Url: https://codereview.chromium.org/2871123005
Cr-Commit-Position: refs/heads/master@{#470893}
jl
Reimplement [PutForwards] per spec
An attribute setter for an attribute X with [PutForwards=Y] should mostly
just do

  Set(Get(this, X), Y, value)

With the previous implementation, we instead essentially inlined both the
getting of X and setting of Y into the setter. This is unnecessary (both
will be implemented correctly separately) and also incorrect, since both
the getter for X and setter for Y could be overridden by a script.

BUG=683310

Review-Url: https://codereview.chromium.org/2733763003
Cr-Commit-Position: refs/heads/master@{#470864}
hugoh
Algorithm for deciding if a frame's selection should be hidden
Background:
Crrev.com/464698 introduced "hiding" of unfocused selections
in text controls. Hiding avoids clearing the selection upon change
of focus.

Problem:
Now we only hide selections inside text controls.
Selections within content-editable elements must also be hidden.

Solution:
Generalize previous work into an algorithm that, given current
DOM and its activeElement, determines whether a frame's selection
should be hidden.

See the algorithm in InHidden() for documentation and read its
unit tests in FrameSelectionTest.cpp.

BUG=715059, 715889

Review-Url: https://codereview.chromium.org/2841093002
Cr-Commit-Position: refs/heads/master@{#470822}
mostynb
include what you use: errno.h in native_test_launcher.cc
Add missing errno.h include.

Review-Url: https://codereview.chromium.org/1428653003
Cr-Commit-Position: refs/heads/master@{#470564}
rune
Counters are always generated content and cannot be selected.
Copying selection across generated ::before/::after with counter() did
not copy the contents, but the counter content was painted as selected
as if it was.

LayoutTextFragment was already overriding the implementation of
CanBeSelectionLeaf() to skip generated content, but LayoutCounter
inherits from LayoutText which returns always true. Return false for
LayoutCounter as it is always generated content.

R=mstensho@opera.com
BUG=703807

Review-Url: https://codereview.chromium.org/2867083003
Cr-Commit-Position: refs/heads/master@{#470141}
bratell
Avoid duplicating the BleedAvoidanceIsClipping function in Blink paint
There were two copies of BleedAvoidanceIsClipping and that is not what
we want.

I noticed this while experimenting with jumbo builds where the two
identical symbols would collide.

Review-Url: https://codereview.chromium.org/2863083002
Cr-Commit-Position: refs/heads/master@{#469951}
mstensho
The first table row is pushed down by border-spacing.
We need to make sure this happens *before* laying it out when inside a
fragmentation context.

Added tests fast/multicol/balance-table-with-border-spacing.html and
fragmentation/table-with-border-spacing.html for this.

This change also fixes breaking inside border-spacing adjacent to table
rows with break-inside:avoid set. There should be no reason to prevent
breaking inside border spacing, just because it's adjacent to such table
rows, but it looks like this was the behavior we got, by accident.
Updated printing/avoid-setting-header-offset-on-header.html accordingly
and threw in an additional test
fragmentation/border-spacing-break-before-unbreakable-row.html for this
collateral fix. It's hopefully correct, since we now match Edge's behavior.

BUG=709387,534751

Review-Url: https://codereview.chromium.org/2803383002
Cr-Commit-Position: refs/heads/master@{#469690}
mmarkowicz
Workaround for UCRT deadlock between gpu's main and watchdog threads
Deadlock is likely caused by UCRT lib bug that can be reproduced with
low-frequency in Opera Browser on Windows 7. Deadlock will permanently freeze
gpu process (watchdog will not intervene as, ironically, it's involved in a
deadlock).

BUG=718388
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel

Review-Url: https://codereview.chromium.org/2857743004
Cr-Commit-Position: refs/heads/master@{#469617}
rune
Disable inheritance propagation for text-align.
The text-align property has an internal value -webkit-match-parent with
a dependency on the parent computed style used in the UA sheet for LI,
which means the independent inheritance optimization won't work.

R=ktyliu@chromium.org,nainar@chromium.org
BUG=716797

Review-Url: https://codereview.chromium.org/2860743004
Cr-Commit-Position: refs/heads/master@{#469609}
rune
Stop matching scrollbar pseudo element without a scrollbar.
While matching rules for elements, we mark elements as affected-by-* for
user action pseudo classes like hover. It means that when the element is
later hovered, we need to recalculate style to apply hover styles to
that element.

In general, we currently don't support pseudo classes after pseudo
elements, but for scrollbar pseudo elements we do:

  ::-webkit-scrollbar:hover {}

However, we do not want such rules to mark the element as affected-by-
hover. The hover style on scrollbar parts get their hover style updated
when hovered regardless of any flags, and making scrollbar pseudo
element rules affect hover updates on the actual elements causes
unnecessary style recalcs.

BUG=716006

Review-Url: https://codereview.chromium.org/2850743003
Cr-Commit-Position: refs/heads/master@{#469309}
sigbjornf
IsAccessWhiteListed(): avoid unnecessary stringification.
The origin whitelist may well be empty, so check that first
before taking on the stringification of the security origin.

R=
BUG=

Review-Url: https://codereview.chromium.org/2855133005
Cr-Commit-Position: refs/heads/master@{#469300}
mostynb
allow_posix_link_time_opt and is_cfi are clang features
This is required for GCC builds with is_official_build=true.

BUG=464797

Review-Url: https://codereview.chromium.org/2858723002
Cr-Commit-Position: refs/heads/master@{#469188}
fs
Hoist layout update out of SVGGraphicsElement::GetBBox and overrides
Call Document::UpdateStyleAndLayoutIgnorePendingStylesheets() in the DOM
entrypoint instead of in each GetBBox implementation/override. Add
DCHECKs as needed in the GetBBox implementations instead to assert the
precondition.
Adjust ResizeObservation::ComputeTargetSize (which shouldn't need to
update the layout anyway) to account for this.

Review-Url: https://codereview.chromium.org/2854123004
Cr-Commit-Position: refs/heads/master@{#469061}
fs
Rename SVGPreserveAspectRatio::GetCTM to ComputeTransform
This method doesn't "get (a) CTM", it rather computes a transform that
maps from the (initial) viewport space to the viewbox space while
considering the value of 'preserveAspectRatio'.

Review-Url: https://codereview.chromium.org/2856863005
Cr-Commit-Position: refs/heads/master@{#469057}
fs
Simplify the SVGGraphicsElement ...CTM methods
GetCTM() only has a single caller, so can be trivially folded. Similarly
GetScreenCTM which has one kAllowStyleUpdate and one
kDisallowStyleUpdate, so it can be folded while hoisting the call to
update style and layout.
This means that there are no longer a collision between internal methods
and the ones exposed in the DOM, so the "...FromJavascript" suffixes can
be dropped.

Review-Url: https://codereview.chromium.org/2858913002
Cr-Commit-Position: refs/heads/master@{#469055}
rune
Don't update column position in StyleDidChange.
StyleDidChange set the first column position to the horizontal border
spacing value regardless of whether this value changed or not.

I am not familiar with how table layout works in Blink and haven't
debugged this extensively, but when we re-layout a table cell because
it has out-of-flow content which needs layout, the first effective
column position is set wrongly. It gets its initial value from the line
removed in this CL by a style recalc on the table element prior to the
re-layout, which is the h_spacing_, but the spacing is subtracted once
more in http://bit.ly/2pBB7x1

R=eae@chromium.org,mstensho@opera.com
BUG=716006

Review-Url: https://codereview.chromium.org/2855853002
Cr-Commit-Position: refs/heads/master@{#468920}
fs
More targeted resource-switching mechanism for SVG selection painting
The mechanism by which resources are generated for painting using
selection style for SVG text is a bit too heavy-handed, and can end up
invalidating both layout and other things. All that is needed is looking
up any <paint> ('fill' or 'stroke') references and invalidating any
state from the non-selection style.

Use a reduced/tailored version of SVGResourcesCache::ClientStyleChanged
that only recreates/swaps the SVGResources object for the LayoutObject
and wrap that mechanism in a scope object.

BUG=713024
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Review-Url: https://codereview.chromium.org/2846513002
Cr-Commit-Position: refs/heads/master@{#468658}
fs
getScreenCTM on <use> should not include the additional translation
This is a partial revert of https://codereview.chromium.org/2711503002,
preserving the fix from that bug (crbug.com/678167) while restoring the
LocalCoordinateSpaceTransform() infrastructure to compute the correct
CTM for <use> elements.

BUG=716711

Review-Url: https://codereview.chromium.org/2853223002
Cr-Commit-Position: refs/heads/master@{#468657}
sigbjornf
Revert "Verify that constant vectors aren't invalidated during iteration."
Back out the problem diagnosis CHECKs() added in r463124; condition not
triggered.

R=haraken
BUG=699269

Review-Url: https://codereview.chromium.org/2857503002
Cr-Commit-Position: refs/heads/master@{#468584}
sigbjornf
Fix detached event listener attribute updating.
The parser will in some cases create new elements in documents that
have become frame-detached. Account for that -- no execution context
due to the document having become detached -- when processing the
event listeners of an event attribute.

R=haraken
BUG=714353

Review-Url: https://codereview.chromium.org/2855443002
Cr-Commit-Position: refs/heads/master@{#468294}
fs
Abort the SVG filter content recording if the FilterData was dropped
In the (rare) case of a recording being started and the FilterData
structure being yanked away (and destroyed) from under
SVGFilterPainter's feet, we need to put the PaintController in a
consistent state before destroying it.
Add a new method SVGFilterRecordingContext::Abort() and call that when
SVGFilterPainter::FinishEffect encounters a null FilterData for the
LayoutObject.

BUG=713024
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Review-Url: https://codereview.chromium.org/2847133002
Cr-Commit-Position: refs/heads/master@{#468092}
fs
Refactor FilterData::state_ handling in SVGFilterPainter
Make FilterData::state_ only be checked and updated within
SVGFilterPainter, and not by SVGFilterRecordingContext or the local
painting helper.
Instead SVGFilterRecordingContext only manages the recording state, and
gets passed bounds while returning a paint record.
This simplifies some of the corner-cases with regards to how "aborted"
filters are handled, getting rid of some "FilterData is null" in many
cases.

BUG=713024
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Review-Url: https://codereview.chromium.org/2851753002
Cr-Commit-Position: refs/heads/master@{#468085}
mstensho
Don't truncate the border-spacing before the table-header-group when fragmenting.
BUG=716442

Review-Url: https://codereview.chromium.org/2848883002
Cr-Commit-Position: refs/heads/master@{#468055}
fs
Proactively dispose image filters for SVG filter chains
Because of the spanning of multiple heaps by the resources associated
with FilterEffects [GCd] (SkImageFilter [mallocd]), the garbage
collector only observes a relatively slow growth, while resources tied
by or via the other heap can be substantial.

Since we have fairly good control of the lifetimes here, we can try to
dispose of our references to the resources on the other heap up front,
and prevent growth due to (dead) GCd objects in limbo.

Also rename FilterEffect::ClearResult to DisposeImageFilters to better
match it does nowadays.

BUG=610158

Review-Url: https://codereview.chromium.org/2846593008
Cr-Commit-Position: refs/heads/master@{#467983}
landell
Avoid sending double responding close control frames in WebSockets
This avoids sending a second ack close frame when we get a flow
control request from the renderer while waiting for the connection to
be closed.

BUG=

Review-Url: https://codereview.chromium.org/2845033002
Cr-Commit-Position: refs/heads/master@{#467964}
rune
Remove unused AttachContext parameter.
Review-Url: https://codereview.chromium.org/2844253002
Cr-Commit-Position: refs/heads/master@{#467904}
bratell
Merge two IsInDocument implementations.
There were two helper functions IsInDocument implementations in
core/input and this moves them to EventHandlingUtil so they can
be shared.

R=dtapuska@chromium.org

Review-Url: https://codereview.chromium.org/2845973002
Cr-Commit-Position: refs/heads/master@{#467684}
bratell
Remove unused "using" statements in WebKit/Source/platform.
Some "using" statements that were no longer used lingered in the
source code so let us remove them.

Review-Url: https://codereview.chromium.org/2841923002
Cr-Commit-Position: refs/heads/master@{#467654}
rune
Better overflow handling for aspect-ratio MQ.
This change fixes two issues:

1. Clamp instead of casting double values from parser to internal
   unsigned storage.
2. Promote width/height/numerator/denominator multiplications to double
   to avoid integer overflow for large numerator/denominators.

R=yoav@yoav.ws,suzyh@chromium.org
BUG=676709,714079

Review-Url: https://codereview.chromium.org/2836613002
Cr-Commit-Position: refs/heads/master@{#467615}
bratell
Adding missing include guard for SharedGpuContext.h
Review-Url: https://codereview.chromium.org/2841933002
Cr-Commit-Position: refs/heads/master@{#467054}
tmoniuszko
Make //content/public/renderer dependency on //media public
There's following include chain:
content/public/renderer/content_renderer_client.h
media/base/decode_capabilities.h
media/base/video_color_space.h
ui/gfx/color_space.h
third_party/skia/include/core/SkColorSpace.h
SkMatrix44.h

Dependency chain must be also public to make sure that target that depends
on //content/public/renderer has include paths configured properly and
skia header inclusion doesn't cause 'include file not found' error during
compilation.

BUG=

Review-Url: https://codereview.chromium.org/2839623002
Cr-Commit-Position: refs/heads/master@{#467018}
mstensho
Allow forced breaks inside floats.
BUG=700919

Review-Url: https://codereview.chromium.org/2840443003
Cr-Commit-Position: refs/heads/master@{#466848}
fs
Tidy up fragment loops in SVGInlineTextBoxPainter
Convert the loop in PaintTextFragments to a for-range, and remove the
unneeded local variable in CollectFragmentsInRange.

CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Review-Url: https://codereview.chromium.org/2843483002
Cr-Commit-Position: refs/heads/master@{#466696}
rune
Removed superfluous custom style DCHECK.
Custom style callbacks are called during style recalc. There is no need
to check that ShadowRoot does not have such callbacks during layout
tree rebuild. There is already a check in ShadowRoot::RecalcStyle().

R=nainar@chromium.org
BUG=595137

Review-Url: https://codereview.chromium.org/2833223002
Cr-Commit-Position: refs/heads/master@{#466551}
ollel
Add curly brackets to list of characters that gn needs to escape
Curly brackets {} needs to be escaped to avoid brace expansion
on systems using bash as the default shell.

BUG=709934

Review-Url: https://codereview.chromium.org/2809633002
Cr-Commit-Position: refs/heads/master@{#466286}
rune
Scopeless matching of :host rules for style sharing.
The kSharingRules mode for selector matching needs to bypass scope
checking in various places because we match selectors from the set of
global uncommon attribute rules for which the source scope is unknown.

We should really store these rules per scope, at least for Shadow DOM
v1, and pass the correct scope for matching.

BUG=711539

Review-Url: https://codereview.chromium.org/2824853004
Cr-Commit-Position: refs/heads/master@{#465980}
rune
Collect media query results for non-matching stylesheets.
Viewport and device dependent media query results are collected after
an active stylesheet update happen. The results are collected on the
ScopedStyleResolvers and propagated to the CSSGlobalRuleSet. It's
necessary that the active stylesheet update causes these media query
results to be up-to-date so that e.g. a viewport resize checks these
results to detect that we need an active stylesheet update for a given
resize.

That did not happen when we only added sheets for which the media
attrbute did not match, because adding a sheet with a null RuleSet does
not affect the computed style and the changed_rule_sets set was empty.

Now, if we add or remove a sheet which does not apply, and that sheet
has a viewport or device dependent media query, still return
kActiveSheetsAppended or kActiveSheetsChanged to trigger the re-
collection of those media query results.

BUG=710878

Review-Url: https://codereview.chromium.org/2829873002
Cr-Commit-Position: refs/heads/master@{#465912}
fs
Move the BreakCycle() method from the cycle solver to SVGResources
This means we can get rid of the SVGResources::ResetFoo methods, and
thus the "friend"-ship between SVGResourcesCycleSolver and SVGResources.
This also reduces the dependencies between the cycle solver and specific
resource types.
Choose a more "semantic" name (ClearReferencesTo), and also remove the
unused DEBUG_CYCLE_DETECTION define.

Review-Url: https://codereview.chromium.org/2821333002
Cr-Commit-Position: refs/heads/master@{#465535}
hugoh
Update description of mouse-click-plugin-clears-selection.html
After crrev.com/2616623002, we now do expect the layout tree
to contain a selection (a selection that is hidden). So let's
update the test's inline description to reflect this exception.

BUG=678601

Review-Url: https://codereview.chromium.org/2817073003
Cr-Commit-Position: refs/heads/master@{#464710}
hugoh
Do not send redundant selectionchange-events (decouple focus)
This CL aims to remove redundant selectionchange-events
that were sent upon change of focus caused by element.focus(),
tab-navigation, spatnav and mouse-clicks.

Goals:
1. Send == one selectionchange-event, not two, for each caret jump.
2. Send <= one selectionchange-event, not two, for each focus jump.

Background:
When you click/tab to an <input> text-field, a
ViewHostMsg_TextInputStateChanged-message is sent to browser-side.

Problem:
With current logic, RenderFrameImpl::didChangeSelection is
called twice so two ViewHostMsg_TextInputStateChanged-messages
are sent to browser-side:
 (1) when focus leaves an <input>-field (unnecessary!).
 (2) when focus enters another <input>-field.

Worse, also the web page gets two selectionchange events.
The first one is immediately invalid so the webpage should
not react to it.

(1) happens because FocusController::setFocusedElement()
always clears the selection when a new element gets focus.

Solution:
Do not clear selection when focus moves. To keep current visual
behavior when focus moves away from a text-field we need to hide
that field's selection (clicking outside a text-field hides its
selection).

Test updates:
1. Check for one selectionchange event, not two.
2. LayoutTests' trees now expect the "hidden" selection.
3. A new test in WebFrameTest.cpp tests tab-key navigation.

BUG=678601, 679635, 699015, 692898
TEST=In content_shell, select some text in an <input>-field,
     click another <input>-field (move focus).
     Notice: one selectionchange event is fired (as in Firefox).
TEST=In content_shell, select some text in an <input>-field,
     click on an <img>. Notice: selection gets hid and
     zero selectionchange events are fired (as in Firefox).

Review-Url: https://codereview.chromium.org/2616623002
Cr-Commit-Position: refs/heads/master@{#464698}
fs
Add connected-paranoia in SVGElement::UpdateRelativeLengthsInformation
When (animated attribute) mutations are trigger by a 'id' change (via
an IdTargetObserver), relative lengths state may be revalidated while
the element are in the process of being removed from the document, but
has not yet been marked as such. If relative length state is updated in
such a case, the |elements_with_relative_lengths_| set could end up in
an inconsistent state.
Instead of only relying on the connected bit of the current element,
also check all the ancestors to make sure.

BUG=705200

Review-Url: https://codereview.chromium.org/2817913002
Cr-Commit-Position: refs/heads/master@{#464408}
rduszynski
Fix disabling FFMpeg video decoders on non-Android platforms
If disable_ffmpeg_video_decoders is set to true on platfoms other
than Android ffmped_video_decoder.* is always included.
This patch removes those sources and fixes dependencies in code.

Review-Url: https://codereview.chromium.org/2808093008
Cr-Commit-Position: refs/heads/master@{#464394}
bratell
Avoid duplicate functions/code in core/inspector: isErrorStatusCode
While experimenting with unity builds I encountered a few duplicate
symbols and functions in core/inspector. One of them was
isErrorStatusCode, a one instruction function that was defined in both
NetworkResourcesData.cpp and InspectorNetworkAgent.cpp.

This patch renames one of them IsHTTPErrorStatusCode, a more suitable
name.

Review-Url: https://codereview.chromium.org/2807533005
Cr-Commit-Position: refs/heads/master@{#464076}
bratell
Deduplicating compositing scrollingCoordinator helper
In the experiments with unity builds I ran into the
scrollingCoordinatorFromLayer function that was defined identically at
two different places. This patch moves the code to PaintLayer where
it is also available to PaintLayer itself.

R=pdr@chromium.org
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Review-Url: https://codereview.chromium.org/2803013005
Cr-Commit-Position: refs/heads/master@{#464054}
fs
Invalidate the "values cache" when resetting animated value state
When we revalidate the animated value, and the value 'source' is the
'values' attribute, we need to also reset the cached 'from' and 'to'
values kept in SVGAnimationElement. If not, a target change could clear
the animated from/to values and not notice that they are stale on
revalidation.
Companion to https://codereview.chromium.org/2763283002.

BUG=710247

Review-Url: https://codereview.chromium.org/2817643003
Cr-Commit-Position: refs/heads/master@{#464037}
fs
Strip only ASCII spaces from SMIL 'values' attributes
This is more consistent with other microsyntaxes used for attribute
parsing, while also making it consistent with the XSSAuditor.

BUG=709365, 710460

Review-Url: https://codereview.chromium.org/2807193003
Cr-Commit-Position: refs/heads/master@{#463662}
fs
Support calc(...) in ConsumeAngleOrPercent / for conic-gradient
Because of the explicit check for <percentage-token>, calc(...) would
not be properly handled for percentages. CSSGradientValue also wasn't
checking for calc() values when evaluating stops.
Rewrite ConsumeAngleOrPercent in a vein similar to
ConsumeLengthOrPercent.
Make CSSPrimitiveValue::IsAngle() consider resolved type, and update
CSSRotation TypedOM implementation to counter this.

BUG=709730

Review-Url: https://codereview.chromium.org/2813583002
Cr-Commit-Position: refs/heads/master@{#463585}
rune
Rename cleanup in comments in css/ directory.
After the renaming of methods and variables to match chromium style,
a bunch of comments were not correct.

BUG=643310

Review-Url: https://codereview.chromium.org/2812743003
Cr-Commit-Position: refs/heads/master@{#463561}
rune
Rename cleanup in comments in style/ directory.
After the renaming of methods and variables to match chromium style,
a bunch of comments were not correct.

BUG=643310

Review-Url: https://codereview.chromium.org/2812593005
Cr-Commit-Position: refs/heads/master@{#463559}
rune
kChildNeedsReattachLayoutTree should not be initially set.
This flag should have been dropped in [1] since we dropped setting
kNeedsReattachLayoutTree initially in that CL.

[1] https://codereview.chromium.org/2760233004

R=nainar@chromium.org
BUG=595137

Review-Url: https://codereview.chromium.org/2807063003
Cr-Commit-Position: refs/heads/master@{#463421}
fs
Use a ResizeObserver to determine default font-size for text tracks
Text track needs to derive the default font for the cues from the size
of the <video> area, and currently does this by updating style during
the call to layout() on the LayoutTextTrackContainer, violating the
document lifecycle.

To avoid mutating style during layout, hook up a ResizeObserver from
TextTrackContainer to HTMLVideoElement and rely on the ResizeObserver
logic to iterate on the style and layout.

This eliminates the need to have a special LayoutObject for
TextTrackContainer, so just use a LayoutBlockFlow and remove all traces
of LayoutTextTrackContainer.

The media/track/track-cue-rendering.html test is updated to check sizes
after layout and paint instead of a forced layout.

BUG=372245

Review-Url: https://codereview.chromium.org/2803243002
Cr-Commit-Position: refs/heads/master@{#463280}
sigbjornf
Verify that constant vectors aren't invalidated during iteration.
Clearing a heap vector while it is being iterated and on the stack is
unsafe, as it promptly releases the backing store.

Add CHECK()s to verify that this doesn't happen for a crasher involving
MediaQuerySets that's proving hard to pindown, but there are some
suggestions that the heap vector contents of MediaQuerySet::m_queries
is being mutated.

R=
BUG=699269

Review-Url: https://codereview.chromium.org/2806003002
Cr-Commit-Position: refs/heads/master@{#463124}
bratell
Avoiding name collisions between flexbox and grid
I'm still experimenting with unity builds and one of the name
collisions that you encounter when compiling layout is between flexbox
code and grid code. This patch changes top level functions to be
member functions.

No functional changes.

Review-Url: https://codereview.chromium.org/2803323002
Cr-Commit-Position: refs/heads/master@{#463059}
bratell
Avoid duplicate functions/code in core/editing: endTag
While experimenting with unity builds I encountered a few duplicate
symbols and functions in core/editing. This patch renames, moves
and unifies them.

elementCannotHaveEndTag is a utility function used in serializers
and since it is used in multiple places, and MarkupFormatter is
not a good place for it, let us put it in EditingUtilities.

BUG=708949
R=yosin@chromium.org

Review-Url: https://codereview.chromium.org/2804943002
Cr-Commit-Position: refs/heads/master@{#462994}
mstensho
A column-span:all element should always establish a new formatting context.
This also applies when the element isn't contained by a multicol container
(which means that we shouldn't require the spanner placeholder to be present).

BUG=709362

Review-Url: https://codereview.chromium.org/2799363003
Cr-Commit-Position: refs/heads/master@{#462865}
bratell
Avoid converting an IntRect to IntRect via FloatRect
IntRects can be implictly converted to FloatRect so code managed
to call enclosingIntRect on an IntRect which then converted to
FloatRect and back for an expensive noop.

R=mstensho@opera.com
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Review-Url: https://codereview.chromium.org/2805203003
Cr-Commit-Position: refs/heads/master@{#462848}
fs
Use long timeout for the svg/interfaces.html test
Lots of interfaces, so can take a while to run. Use the 'long' timeout
option.

BUG=709030

Review-Url: https://codereview.chromium.org/2806513002
Cr-Commit-Position: refs/heads/master@{#462655}
fs
Revert "Neuter the "screen scale factor" computation for SVG <text>"
This reverts commit 6f80957a6a5e7ec792a2f3cd7f06e2a744196d1d.

Clean revert, but a reference to FrameHost had to be changed to Page, and
an ASSERT was changed to a DCHECK.

BUG=706880,664961

Review-Url: https://codereview.chromium.org/2805043002
Cr-Commit-Position: refs/heads/master@{#462563}
mstensho
Remove DCHECK in column balancer that failed because of flexbox bugs.
This DCHECK was useful (detects broken layout, but nothing more dangerous than
that). However, as long as we don't paginate flex items at their final block
position (see bug 606350), we cannot assert like this, because it's going to
fail under certain circumstances.

BUG=685047

Review-Url: https://codereview.chromium.org/2797313003
Cr-Commit-Position: refs/heads/master@{#462447}
bratell
Avoid duplicate functions/code in core/editing: MatchResultICU
While experimenting with unity builds I encountered a few duplicate
symbols and functions in core/editing. This patch renames, moves
and unifies them.

There is a global MatchResult in css/SelectorChecker.h and if that one
is included anywhere in editing, then it will collide with a local
MatchResult used in iterators. Renaming the local one MatchResultICU
will both match the name of other symbols and avoid the collision.

BUG=708949
R=yosin@chromium.org

Review-Url: https://codereview.chromium.org/2806433002
Cr-Commit-Position: refs/heads/master@{#462431}
bratell
Avoid duplicate functions/code in core/editing: kInvalidOffset
While experimenting with unity builds I encountered a few duplicate
symbols and functions in core/editing. This patch renames, moves
and unifies them.

kInvalidOffset is a name used both by PositionIterator and TextIterator.
This renames on of them kInvalidTextOffset to better match its use and
to avoid the name collision.

BUG=708949
R=yosin@chromium.org

Review-Url: https://codereview.chromium.org/2798283002
Cr-Commit-Position: refs/heads/master@{#462428}
bratell
Avoid duplicate functions/code in core/editing: DirectionalSelection
While experimenting with unity builds I encountered a few duplicate
symbols and functions in core/editing. This patch renames, moves
and unifies them.

shouldAlwaysUseDirectionalSelection is a common helper function
and since it's not identicallty implemented everywhere it cannot
be merged. Instead make the one in SelectionModifier a member function
to move it out of global scope.

BUG=708949
R=yosin@chromium.org

Review-Url: https://codereview.chromium.org/2798143003
Cr-Commit-Position: refs/heads/master@{#462427}
bratell
Avoid duplicate functions/code in core/editing: kUnsetCodePoint
While experimenting with unity builds I encountered a few duplicate
symbols and functions in core/editing. This patch renames, moves
and unifies them.

kInvalidCodePoint is used in both ForwardGraphemeBoundaryStateMachine and
BackwardGraphemeBoundaryStateMachine so to avoid clashes, use different
names for them.

BUG=708949
R=yosin@chromium.org

Review-Url: https://codereview.chromium.org/2801893004
Cr-Commit-Position: refs/heads/master@{#462423}
bratell
Avoid duplicate functions/code in core/editing: computeDistance
While experimenting with unity builds I encountered a few duplicate
symbols and functions in core/editing. This patch renames, moves
and unifies them.

Several classes use computeDistanceToLeftGraphemeBoundary and instead
of copying the whole function, make a single copy in EditingUtilities.
Also move computeDistanceToRightGraphemeBoundary since those two functions
are too similar to split up.

BUG=708949
R=yosin@chromium.org

Review-Url: https://codereview.chromium.org/2802953002
Cr-Commit-Position: refs/heads/master@{#462420}
fs
Implement support for the 'transform-box' property
Spec:

 https://drafts.csswg.org/css-transforms-1/#transform-box

Intent to implement:

 https://groups.google.com/a/chromium.org/d/topic/blink-dev/v8g3QF8pRF8

Implemented behind the CSSTransformBox Blink runtime flag.
Add some basic tests and a smoke test for the "legacy" transform-box
behavior. Existing tests are adjusted to be compatible with the new
behavior.
The test svg/transforms/transform-origin-css-property.xhtml is "fixed"
by adding units when required (unitless numbers are not valid in inline
style.)

BUG=595829

Review-Url: https://codereview.chromium.org/2786643003
Cr-Commit-Position: refs/heads/master@{#462266}
rune
Document::hoverNode() is always an Element.
Make hoverNode(), hoverElement() and only mark Elements as hovered
using FlatTreeTraversal::parentElement() instead of parent(). This
means we can get rid of some checks for nodes being text or element
nodes. It means we also only mark elements as being hovered in the flat
tree ancestor chain.

R=ecobos@igalia.com

Review-Url: https://codereview.chromium.org/2797173002
Cr-Commit-Position: refs/heads/master@{#462257}
bratell
Removing duplicate functions and symbol names in core/css
In the unity build experiment I encountered a few colliding duplicate
symbol names in core/css and this patch removes them by replacing
duplicated symbols with a single code and by doing some symbol
renames.

Review-Url: https://codereview.chromium.org/2797973002
Cr-Commit-Position: refs/heads/master@{#462256}
rune
Allow display:contents elements in hover chain.
Document::updateHoverActiveState walked the shadow-including ancestor
path assuming no layoutObject meant display:none. Changed to walk flat
tree ancestors checking for display:contents style in addition.

ContainerNode::setHovered did not allow hover state to be changed when
setting hovered=true on elements without a layout object. Changed to
allow for display:contents here as well.

R=ecobos@igalia.com
BUG=705984

Review-Url: https://codereview.chromium.org/2790133002
Cr-Commit-Position: refs/heads/master@{#462199}
bratell
Rename duplicate symbols inside core/dom
While experimenting with unity builds I got into problems with
code that used the same symbol name for multiple purposes. This
renames those which also will make the life for symbol debugging
slightly easier.

kSupplementName: Name used in both CSSSelectorWatch.cpp and
DocumentParserTiming.cpp.

WTF::Unicode symbols: Depending on how unity builds are created,
global "using" statements can affect more than intended and trigger
warnings and errors. Now global "using" statements are not allowed by
the Chromium coding standard so assuming it will eventually apply to
Blink as well, the using statements might as well be removed now.

previousAncestorSiblingPostOrder was a function in both
FlatTreeTraversal.cpp and NodeTraversal.cpp. Could easily be made
class local and the name collision was no more.

Review-Url: https://codereview.chromium.org/2802723002
Cr-Commit-Position: refs/heads/master@{#462123}
sigbjornf
PagePopupController: handle frame-detached window usage.
R=haraken
BUG=708225

Review-Url: https://codereview.chromium.org/2798863002
Cr-Commit-Position: refs/heads/master@{#462078}
rune
Revert increased limit for m_selectorIndex.
If 2^13 simple selectors in a style rule was not enough, 2^14 will be
exceeded at some point. Leave the available bit for later use and avoid
regressions for m_selectorIndex when we need that bit.

R=esprehn@chromium.org
BUG=704562

Review-Url: https://codereview.chromium.org/2797953002
Cr-Commit-Position: refs/heads/master@{#462015}
bratell
Fewer reused duplicate symbol names in animation.
When experimenting with unity builds you get conflicts between
cpp files if they use the same symbol name for different things
(or the same thing). This make names more unique. No functional changes.

Formatted with git cl format (#includes moving around).

R=alancutter@chromium.org

Review-Url: https://codereview.chromium.org/2794013002
Cr-Commit-Position: refs/heads/master@{#461755}
bratell
Remove duplicate using statement.
One "using namespace WTF::Unicode" is enough, and actually might be one
too many if the Chromium coding style is adapted in blink.

This caused a bit of a problem when experimenting with unity builds.

R=jsbell@chromium.org

Review-Url: https://codereview.chromium.org/2792933003
Cr-Commit-Position: refs/heads/master@{#461686}
mstensho
[LayoutNG] WIP on storing layout output in the legacy tree for multicol.
Painting NG fragment trees is still not supported, so in the meantime
we'll keep LayoutMultiColumnFlowThread and LayoutMultiColumnSet, and have
multicol painted and hit-tested in the old-fashioned way (just like
everything else, really).

Based on work by glebl.

BUG=635619

Review-Url: https://codereview.chromium.org/2786923004
Cr-Commit-Position: refs/heads/master@{#461409}
rune
Added available bit to m_selectorIndex.
Increased the max number of simple selectors for one style from 8192 to
16384 by moving one bit to the second 32-bit part to make space for
another bit. There is one bit left, but it cannot be utilized since the
bit field cannot span two 32 bit values. This doesn't really fix the
issue since it's not unlikely someone will use more than 16000 selectors
if they use more than 8000 selectors.

R=meade@chromium.org
BUG=704562

Review-Url: https://codereview.chromium.org/2785103004
Cr-Commit-Position: refs/heads/master@{#461389}
fs
Implement Image::maybeAnimated for SVGImage
This CL renames SVGImage::hasAnimations to maybeAnimated, overriding
the implementation from the base class (Image.) The old method matches
the new one in certainty of the reply, and allows SVGImages to be paused
when being scrolled out of view etc.

BUG=706152

Review-Url: https://codereview.chromium.org/2783133002
Cr-Commit-Position: refs/heads/master@{#461094}
bratell
Avoid duplicating the target name "svg".
It has not been possible to build just the svg code with
ninja -C out/Default svg
because of two other, minor, build targets named svg.
This commit renames those svg_layout and svg_style.

Review-Url: https://codereview.chromium.org/2783253002
Cr-Commit-Position: refs/heads/master@{#461073}
rune
Rephrased documentation about VTT, ::cue, and custom pseudo scopes.
We should not make these rules part of boundary crossing rules as they
will go away when Shadow DOM v0 goes away. Adjusted the documentation
to not hint in that direction.

R=kochi@chromium.org,meade@chromium.org
BUG=551751

Review-Url: https://codereview.chromium.org/2787823002
Cr-Commit-Position: refs/heads/master@{#461059}
bratell
Removing unnecessary "using" statements.
In the Chromium code style using statements are not allowed and these
ones are not even needed/used so let us just drop them.

Review-Url: https://codereview.chromium.org/2788693002
Cr-Commit-Position: refs/heads/master@{#460866}
bratell
Remove unused variable layout_object.
clang triggered compilation errors about this unused variable when
experimenting with a unity build. Not sure why doesn't detect that it
is unused normally.

R=mstensho@opera.com

Review-Url: https://codereview.chromium.org/2785213002
Cr-Commit-Position: refs/heads/master@{#460862}
bratell
Adding missing include in svg/GradientAttributes.h
If you managed to include GradientAttributes.h before you included
SVGGradientElement.h you would have no definition of
SVGSpreadMethod and other types.

R=fs@opera.com

Review-Url: https://codereview.chromium.org/2790623002
Cr-Commit-Position: refs/heads/master@{#460791}
rune
Pass nextTextSibling to ::before layout rebuild.
Correct whitespace re-attachment relies on the next text node being
tracked in order to re-attach when a previous sibling element changes
display type. We did that just while traversing light tree siblings or
slotted siblings.

::before pseudo element display type may affect following whitespace
text node, so we need to pass on the next text sibling result from the
descendant traversal.

As we traverse siblings from right-to-left, we should also rebuild
::after before DOM siblings, and ::before after DOM siblings.

This fixes the case where an element, whose left-most child, or shadow
root child, is a whitespace text node, changes its ::before element's
display type from block to inline.

The pseudo element layout tree rebuild is renamed from reattach* to
rebuild* to match the semantics of the rest of the methods.

R=esprehn@chromium.org
BUG=648951

Review-Url: https://codereview.chromium.org/2766163002
Cr-Commit-Position: refs/heads/master@{#460737}
hugoh
Render focus-selection-textarea at constant font-size to avoid flakiness
When crrev.com/453211 updated FreeType on Linux, some glyphs
got bigger due to the new antialiasing and hinting settings.

Bigger glyphs made focus-selection-textarea.html layout differently.
With the new layout, scripted mouse clicks no longer hit the right spot.

After the manual rebaselining in crrev.com/453211, the expected result
on Linux started to include FAIL whereas other platforms still expected
PASS. This CL makes also Linux PASS.

BUG=706119, 274030

TEST=python third_party/WebKit/Tools/Scripts/run-webkit-tests -t\
     PcDebug LayoutTests/fast/forms/focus-selection-textarea.html

Review-Url: https://codereview.chromium.org/2786953002
Cr-Commit-Position: refs/heads/master@{#460732}
tommyt
PaymentApp: Receive payment app responses in Android
This change adds a callback parameter to
ServiceWorkerPaymentInstrument.invokePaymentApp, so that the response
from the payment app can be passed back to the merchant.

Depends on https://codereview.chromium.org/2718013004/

BUG=669876

Review-Url: https://codereview.chromium.org/2775933002
Cr-Commit-Position: refs/heads/master@{#460715}
karlo
Fix for performance regression on high dpi devices.
ComputedStyle::getRoundedInnerBorderFor() could generate negative
content boxes for boxes with no content and sub pixel borders that
round up (eg. 1.5px-1.99px).  Negative content boxes are illegal per
spec, and causes BoxBorderPainter::paintBorderFastPath() to bail,
and performance to be substantially degraded.

This issue would be evident on the paint-offset-changes perftest when
device pixel ratio was set to eg. 1.5.  The issue was introduced in
934becac5daa91ea979fb66e4ae21761ca11ebc9

BUG=692955

Review-Url: https://codereview.chromium.org/2782153002
Cr-Commit-Position: refs/heads/master@{#460534}
fs
Deduplicate testharness test names in LayoutTests/svg/
Some tests were using non-unique names, which triggers a harness error
for "newer" versions of testharness.js.
Twiddle the relevant names a bit so that they become unique.

BUG=705626

Review-Url: https://codereview.chromium.org/2782583002
Cr-Commit-Position: refs/heads/master@{#460447}
rune
Corrected specificity for :not for default @namespace.
The argument to :not() consists of a universal, type, or a simple
selector. However, we prepend an implicit universal selector with the
default namespace URI to all compound selectors to correctly match only
elements in the default namespace. That is not necessary for compounds
inside pseudo argument lists, but we do in those cases as well.

When calculating the specificity for :not(), we assume its argument
consists of a single simple selectors, but in the case where we have a
default namespace, a namespaced universal selector is prepended. We
only added the specificity for the universal selector in that case.
Instead, walk all sub-selectors of the :not() compound when calculating
the specificity.

R=meade@chromium.org
BUG=706206

Review-Url: https://codereview.chromium.org/2777063007
Cr-Commit-Position: refs/heads/master@{#460355}
hugoh
Reland: Do not send redundant selectionchange-events (decouple focus)
Reason for reland:
Update Win7/10 LayoutTests correctly: crbug.com/706119

Background:
Blink tells browser-side when a new <input>-element gets focus.
The information is passed in the
ViewHostMsg_TextInputStateChanged-message.

Problem:
With current logic, RenderFrameImpl::didChangeSelection is
called twice so two ViewHostMsg_TextInputStateChanged-messages
are sent to browser-side:
 (1) when focus leaves an <input>-field (unnecessary!).
 (2) when focus enters another <input>-field.

Worse, also the web page gets two selectionchange events.
The first one is immediately invalid so the webpage should
not react to it.

(1) happens because FocusController::setFocusedElement()
always clears the selection when a new element gets focus.

Solution:
When JavaScript moves focus to an element, element.focus(),
and when the user moves focus using tab-key navigation or
mouse, we don't clear the old selection (we hide it). This
means, we only send one selectionchange event, not two, for
each caret jump (as in Firefox).

Test updates:
1. Check for one selectionchange event, not two.
2. LayoutTests' trees now expect the "hidden" selection.
3. A new test in WebFrameTest.cpp tests tab-key navigation.

Follow-up will remove the remaining redundant clears:
crbug.com/692898 (tab jumps to non-editable elements).

BUG=678601, 679635, 699015
TEST=In content_shell, select some text in an <input>-field,
     click another <input>-field (move focus).
     Notice: one selectionchange event is fired.

Review-Url: https://codereview.chromium.org/2616623002
Cr-Commit-Position: refs/heads/master@{#460314}
mstensho
Stop appending fragmentainer groups when flow thread offset approaches infinity.
The final column height is a function of the difference between the logical
bottom and logical top of the flow thread portion of a given fragmentainer
group. If the logical top is LayoutUnit::max(), we know for sure that the
bottom won't be any larger than that. Just give up in such cases (and keep
using the current fragmentainer group), rather than ending up dividing by zero.

BUG=703543

Review-Url: https://codereview.chromium.org/2784493002
Cr-Commit-Position: refs/heads/master@{#460284}
bratell
Remove the wrapper functions content::RecordAction et al
content::RecordAction and content::RecordComputedAction no longer
add any value (they used to do thread hopping) so replace them with
direct calls to base::RecordAction and base::RecordComputedAction.

Also remove includes and using declarations from files not using the
functions at all.

BUG=601483
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_site_isolation

Review-Url: https://codereview.chromium.org/2771233002
Cr-Commit-Position: refs/heads/master@{#460037}
rune
Add separate trace events for recalcStyle and rebuildLayoutTree.
When style recalc and layout tree building is fully separated, it will
be valuable to measure them separately as well.

R=nainar@chromium.org,esprehn@chromium.org
BUG=595137

Review-Url: https://codereview.chromium.org/2779573002
Cr-Commit-Position: refs/heads/master@{#460027}
hugoh
Do not send redundant selectionchange-events (decouple focus)
Background:
Blink tells browser-side when a new <input>-element gets focus.
The information is passed in the
ViewHostMsg_TextInputStateChanged-message.

Problem:
With current logic, RenderFrameImpl::didChangeSelection is
called twice so two ViewHostMsg_TextInputStateChanged-messages
are sent to browser-side:
 (1) when focus leaves an <input>-field (unnecessary!).
 (2) when focus enters another <input>-field.

Worse, also the web page gets two selectionchange events.
The first one is immediately invalid so the webpage should
not react to it.

(1) happens because FocusController::setFocusedElement()
always clears the selection when a new element gets focus.

Solution:
When JavaScript moves focus to an element, element.focus(),
and when the user moves focus using tab-key navigation or
mouse, we don't clear the old selection (we hide it). This
means, we only send one selectionchange event, not two, for
each caret jump (as in Firefox).

Test updates:
1. Check for one selectionchange event, not two.
2. LayoutTests' trees now expect the "hidden" selection.
3. A new test in WebFrameTest.cpp tests tab-key navigation.

Follow-up will remove the remaining redundant clears:
crbug.com/692898 (tab jumps to non-editable elements).

BUG=678601, 679635, 699015
TEST=In content_shell, select some text in an <input>-field,
     click another <input>-field (move focus).
     Notice: one selectionchange event is fired.

Review-Url: https://codereview.chromium.org/2616623002
Cr-Commit-Position: refs/heads/master@{#459984}
karlo
Fix for performance regression on high dpi devices.
ComputedStyle::getRoundedInnerBorderFor() could generate negative
content boxes for boxes with no content and sub pixel borders that
round up (eg. 1.5px-1.99px).  Negative content boxes are illegal per
spec, and causes BoxBorderPainter::paintBorderFastPath() to bail,
and performance to be substantially degraded.

This issue would be evident on the paint-offset-changes perftest when
device pixel ratio was set to eg. 1.5.  The issue was introduced in
934becac5daa91ea979fb66e4ae21761ca11ebc9

BUG=692955

Review-Url: https://codereview.chromium.org/2771093003
Cr-Commit-Position: refs/heads/master@{#459770}
rune
Update :in-range/:out-of-range when steppable min/max/value changes.
We called pseudoStateChanged in a lot of cases where it wasn't
necessary. It should suffice to call it for the mentioned pseudo
classes when the min and max attributes changes, or the value is
changed, either as an attribute or as a result of user input.

This should fix the performance regressions in issue 704775.

R=tkent@chromium.org
BUG=704775

Review-Url: https://codereview.chromium.org/2774723004
Cr-Commit-Position: refs/heads/master@{#459733}
sigbjornf
blink_gc_plugin: retire warn-stack-allocated-trace-method option.
As a final(!) step in phasing in the check over trace() methods inside
of STACK_ALLOCATED() classes, remove the detection of the warning option.
It's always on.

R=
BUG=689874

Review-Url: https://codereview.chromium.org/2776033002
Cr-Commit-Position: refs/heads/master@{#459677}
sigbjornf
Remove no-op blink-gc-plugin argument.
Following the clang roll in r455977, the clang blink_gc_plugin always
warns of STACK_ALLOCATED() classes having redundant trace() methods;
drop using the gc-plugin no-op option.

R=
BUG=689874

Review-Url: https://codereview.chromium.org/2776023002
Cr-Commit-Position: refs/heads/master@{#459676}
sigbjornf
Clarify Beacon transmission limit checking.
The implementation of navigator.sendBeacon() imposes a cap on the size
of transmitted beacon payloads. The internal handling of that limit
was not as clear as could be, so attempt to clarify its representation
and handling.

Also clarify the interpretation of a negative cap limit: if a frame's
settings provide a negative value, no transmission limit is imposed.

R=mkwst, tyoshino
BUG=701678

Review-Url: https://codereview.chromium.org/2753863003
Cr-Commit-Position: refs/heads/master@{#459564}
fs
Make resource lookup more uniform in SVGResources::buildResources
Replace the pattern:

if (!ensureResources(resources).setFoo(
        getLayoutSVGResourceById<LayoutSVGResourceBar>(...)))
  treeScopeResources.addPendingResource(...);

with a new pattern using a new attachToResource helper which folds in
the last step (addPendingResource) as well. This makes for less
callsites to adjust when modifying resource lookup.
This also makes the return value of the setFoo(...) methods unnecessary,
so make them return void.

BUG=454767

Review-Url: https://codereview.chromium.org/2772773005
Cr-Commit-Position: refs/heads/master@{#459533}
fs
Add SVGFitToViewBox::hasValidViewBox helper
This encapsulates the use of the 'is valid' flag of SVGRect. This both
makes for more readable code, and should make it easier to transition
away from the 'is valid' flag. (Note: !isSpecified() implies !isValid().)

BUG=703050

Review-Url: https://codereview.chromium.org/2774753004
Cr-Commit-Position: refs/heads/master@{#459520}
sigbjornf
PartitionDumpStats(): reduce stack consumption for 'light' reporting.
Following r456291's lead, avoid putting a large array on the stack for
light stats reporting in PartitionDumpStats(), where it isn't made use
of. This avoids running into stack pressure when sampling memory use
in production builds (on Windows, in particular.)

R=haraken
BUG=704894

Review-Url: https://codereview.chromium.org/2771033006
Cr-Commit-Position: refs/heads/master@{#459498}
sigbjornf
Clear out prefinalizer-allocated vector for conservative GC safety.
It is unsafe to revive dead objects by creating references to them
while in a finalizer, prefinalizer or not. Avoid doing so in
MediaStreamSource::setReadyState(), which MediaStreamComponent's
prefinalizer may end up running.

See associated comment for further details.

R=haraken
BUG=704234

Review-Url: https://codereview.chromium.org/2776473003
Cr-Commit-Position: refs/heads/master@{#459390}
sigbjornf
Simplify pre+post GC ThreadState steps.
No need to involve the ThreadHeap for these, as they're entirely
handled by the ThreadState now.

R=
BUG=671856

Review-Url: https://codereview.chromium.org/2774473003
Cr-Commit-Position: refs/heads/master@{#459373}
fs
Revalidate SMIL animation value after target change
When a target moves in the tree, the animation value was invalidated,
but never revalidated again when the element was reinserted.
Make sure to signal a revalidation if there's an active interval and the
the animation is running after the target element was reinserted.

BUG=701128

Review-Url: https://codereview.chromium.org/2763283002
Cr-Commit-Position: refs/heads/master@{#459150}
fs
Use SVGResources in SVGLayoutTreeAsText writeResources
As the FIXME suggests, this should better reflect the actual state of
the resources resolution by including the cycle-solving step.

Some tests (recursive-clip/mask, clip-path-recursive-call-by-child)
needs to be updated to reflect the change to actually show cycles
having been broken. The rests of the tests are updated to reflect
that LayoutSVGInlineText can't have resources.

BUG=454767

Review-Url: https://codereview.chromium.org/2763363002
Cr-Commit-Position: refs/heads/master@{#459119}
rune
Notify inspector of stylesheet changes when removing tree scopes.
We did not update active stylesheet lists when removing a shadow since
there is no collection to update. However, the inspector expects a
notification since it receives a flat vector of active stylesheets from
all scopes.

Add a m_treeScopesRemoved member to not early return from
updateActiveStyleSheets and still call probe::activeStyleSheetsUpdated.
Unless other tree scopes are dirty, calling the inspector is all that
happens.

R=kochi@chromium.org
BUG=703427

Review-Url: https://codereview.chromium.org/2766373002
Cr-Commit-Position: refs/heads/master@{#459039}
qingchengl
Update expat to 2.2.0 to fix CVE vulnerability.
Security fixes:
    CVE-2016-0718 -- Fix crash on malformed input
    CVE-2016-4472 -- Improve insufficient fix to CVE-2015-1283 /
    CVE-2015-2716 introduced with Expat 2.1.1
    CVE-2016-5300 -- Use more entropy for hash initialization
        than the original fix to CVE-2012-0876
    CVE-2012-6702 -- Resolve troublesome internal call to srand
            that was introduced with Expat 2.1.0
            when addressing CVE-2012-0876 (issue #496)

BUG=703537

Review-Url: https://codereview.chromium.org/2761253002
Cr-Commit-Position: refs/heads/master@{#459025}
sigbjornf
Allow safe per-thread heap compaction UMA reporting.
R=haraken
BUG=704413

Review-Url: https://codereview.chromium.org/2769113003
Cr-Commit-Position: refs/heads/master@{#459024}
mstensho
No default value for AncestorSearchConstraint in locateFlowThreadContainingBlockOf().
The default used to be to bail out and return nullptr if it encountered
something unbreakable. It's better to let callers make a conscious choice here.
Tree-read operations (painting or hit testing, for instance) that call
LayoutObject::locateFlowThreadContainingBlock() are typically interested in
converting from flow thread coordinates to visual coordinates.

This is a defensive CL that only reverts unintended and bad changes from
https://codereview.chromium.org/2748973002 - added a TODO for cases where we
have LayoutState; if we are inside of layout, we should ideally stop at
strictly unbreakable ancestors.

BUG=702978

Review-Url: https://codereview.chromium.org/2764883004
Cr-Commit-Position: refs/heads/master@{#458784}
mpawlowski
Allow building the dump_syms tool on Windows
The Windows target was not ported from gyp, until now.
We're building dump_syms on Windows in Opera so I though I'd share the patch.

BUG=245456

Review-Url: https://codereview.chromium.org/2712423002
Cr-Commit-Position: refs/heads/master@{#458759}
sigbjornf
Revert of MediaStreamSource: verify unlocked state when finalizing. (patchset #1 id:1 of https://codereview.chromium.org/2741663004/ )
Reason for revert:
Diagnosis completed, reverting (cf. https://bugs.chromium.org/p/chromium/issues/detail?id=682945#c48 )

Original issue's description:
> MediaStreamSource: verify unlocked state when finalizing.
>
> To diagnose an audio thread crash condition, verify that the lock
> over audio consumers that MediaStreamSource keeps, isn't held when it is
> being finalized. If it is, then the audio thread is active using the
> MediaStreamSource object..which is not a well-formed state to be in.
>
> R=
> BUG=682945
>
> Review-Url: https://codereview.chromium.org/2741663004
> Cr-Commit-Position: refs/heads/master@{#456029}
> Committed: https://chromium.googlesource.com/chromium/src/+/c662576c8bb7cecef0dd9a699112fa5cc4b6ab79

TBR=hongchan@chromium.org,haraken@chromium.org,rtoy@chromium.org,guidou@chromium.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=682945

Review-Url: https://codereview.chromium.org/2765073004
Cr-Commit-Position: refs/heads/master@{#458744}
sigbjornf
Revert of Lock out GCs while iterating over MediaStreamSource audio consumers. (patchset #1 id:1 of https://codereview.chromium.org/2761463002/ )
Reason for revert:
Revert this check, no longer needed (cf. https://bugs.chromium.org/p/chromium/issues/detail?id=682945#c48 )

Original issue's description:
> Lock out GCs while iterating over MediaStreamSource audio consumers.
>
> Attempt to diagnose a crash condition by locking out main thread GCs
> while the audio thread propagates consumeAudio() updates.
>
> R=haraken
> BUG=682945
>
> Review-Url: https://codereview.chromium.org/2761463002
> Cr-Commit-Position: refs/heads/master@{#457753}
> Committed: https://chromium.googlesource.com/chromium/src/+/e78674d2467706fa8634f8542251591d1d358b57

TBR=haraken@chromium.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=682945

Review-Url: https://codereview.chromium.org/2768683004
Cr-Commit-Position: refs/heads/master@{#458716}
sigbjornf
Revert of Revert "Pull AudioDestinationConsumer off the Blink GC heap." (patchset #1 id:1 of https://codereview.chromium.org/2757883002/ )
Reason for revert:
Experiment finished, we do want bb9b04fe09 (cf. https://bugs.chromium.org/p/chromium/issues/detail?id=682945#c48 )

Original issue's description:
> Revert "Pull AudioDestinationConsumer off the Blink GC heap."
>
> This reverts commit bb9b04fe0965eeb09f229f7a727fe7235add810f,
> attempting to diagnose root crash cause.
>
> R=rtoy,haraken
> BUG=682945
>
> Review-Url: https://codereview.chromium.org/2757883002
> Cr-Commit-Position: refs/heads/master@{#457833}
> Committed: https://chromium.googlesource.com/chromium/src/+/937ebc1a2de7ac71ec1de4c6bb1ed7a6331e4683

TBR=haraken@chromium.org,hongchan@chromium.org,rtoy@chromium.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=682945

Review-Url: https://codereview.chromium.org/2762413004
Cr-Commit-Position: refs/heads/master@{#458700}
rune
Make all setNeedsReattachLayoutTree happen from updateStyle.
The setNeedsReattachLayoutTree calls which were done outside of
updateStyle were all accompanied by a NeedsReattachStyleChange for the
node marking the ancestor chain for recalc. Therefore we can simply
mark for re-attachment inside the recalcStyle pass instead.

Enforce the invariant by introducing a DCHECK that the we are inside
updateStyleAndLayoutTree, and that the shadow DOM distribution is
up-to-date.

R=nainar@chromium.org,esprehn@chromium.org
BUG=595137

Review-Url: https://codereview.chromium.org/2760233004
Cr-Commit-Position: refs/heads/master@{#458683}
sigbjornf
OfflineAudioContext: add missing suspendIfNeeded() call.
R=haraken,rtoy
BUG=704012

Review-Url: https://codereview.chromium.org/2760323002
Cr-Commit-Position: refs/heads/master@{#458656}
rune
Updating :in-range should not rely on validation.
m_validityIsDirty is not related to isInRange() and isOutOfRange().
This fixes sibling style invalidation using invalidation sets for
:in-range and :out-of-range changes when value changes through
setAttribute.

R=tkent@chromium.org
BUG=699884

Review-Url: https://codereview.chromium.org/2764023003
Cr-Commit-Position: refs/heads/master@{#458576}
sigbjornf
Enable idle GC for worker thread heaps.
Idle task processing is now supported on threads other than
the main thread, hence go ahead and enable idle GCs for
worker thread heaps.

R=haraken
BUG=702902

Review-Url: https://codereview.chromium.org/2765843002
Cr-Commit-Position: refs/heads/master@{#458405}
mostynb
LinkedStack.h is no longer used, remove it
BUG=none
NO_DEPENDENCY_CHECKS=true

Review-Url: https://codereview.chromium.org/2761853003
Cr-Commit-Position: refs/heads/master@{#458376}
sigbjornf
Check detached status before attempting to clear drag transfer state (reland.)
Speculatively try to address failing access of dragState() when
clearing out state after 'dragend' has been dispatched.

R=dcheng
BUG=702516

Review-Url: https://codereview.chromium.org/2759603002
Cr-Original-Commit-Position: refs/heads/master@{#457993}
Committed: https://chromium.googlesource.com/chromium/src/+/a995166eab58770b85268173bf9b34e4bc276171
Review-Url: https://codereview.chromium.org/2759603002
Cr-Commit-Position: refs/heads/master@{#458354}
sigbjornf
MouseEventManager: reset drag state upon detaching.
If an ongoing drag detaches the frame of the dragged element, have
the MouseEventManager reset the drag state while handling the detachment
from the frame. Otherwise the DragState will retain a reference to
the drag source (and its document) for too long, triggering a reported
leak on shutdown.

R=
BUG=703057

Review-Url: https://codereview.chromium.org/2762613002
Cr-Commit-Position: refs/heads/master@{#458116}
mstensho
getClientRects() shouldn't clip against any ancestors.
Inside multicol we used to clip against the column box of each fragment. Since
fragments don't really exist in our implementation (we rather have this tall
flow thread which we slice into columns, when appropriate), we still need to
clip in the block direction, to properly fake the fragments.

Removed fragmentainerInFlowThread(), since it's no longer used. Added a
parameter to the clip rectangle calculation code, to be able to only limit the
clip rectangles in the block direction.

BUG=685927

Review-Url: https://codereview.chromium.org/2750153002
Cr-Commit-Position: refs/heads/master@{#458109}
bratell
Add include guards to header files in content missing them
Review-Url: https://codereview.chromium.org/2759103002
Cr-Commit-Position: refs/heads/master@{#458053}
sigbjornf
Check detached status before attempting to clear drag transfer state.
Speculatively try to address failing access of dragState() when
clearing out state after 'dragend' has been dispatched.

R=dcheng
BUG=702516

Review-Url: https://codereview.chromium.org/2759603002
Cr-Commit-Position: refs/heads/master@{#457993}
mstensho
Need to notify the multicol machinery when floats have been laid out.
We may have to trigger creation of additional fragmentainer groups, in case
there's no regular in-flow content that does it for us.

Review-Url: https://codereview.chromium.org/2762483002
Cr-Commit-Position: refs/heads/master@{#457978}
fs
Rework SMIL animation target invalidation
The invalidation of a timed/animation element's target "tuple" (element,
attribute name, attribute type) is somewhat complex.
Rework it to use two methods that can be overridden rather than having
overrides for each setTargetElement/setAttribute{Name,Type}. This allows
to get rid of complicated things like the checkInvalidCSSAttributeType()
in SVGAnimateElement. It should also make the code slightly easier to
reason about when it comes to what state gets invalidated where.

BUG=641437,701128

Review-Url: https://codereview.chromium.org/2746013007
Cr-Commit-Position: refs/heads/master@{#457972}
sigbjornf
Correctly track cross-thread pending FetchEvents.
ServiceWorkerGlobalScopeProxy is an object that resides on the
main thread heap, but is passed to the embedder and called
on the (service) worker thread. As the object is GC managed
by the main thread, the worker thread cannot update the proxy
object with references to heap objects residing in its heap,
as the per-thread heap design assumes that each heap only keeps
local heap references (via Member<T> and similar.) References
across heaps must instead be kept and handled by explicit
CrossThreadPersistent<> references.

This per-thread heap rule was not being followed for the tracking
of pending FetchEvents; adjust the map representation to do so.

R=haraken
BUG=702527

Review-Url: https://codereview.chromium.org/2752203005
Cr-Commit-Position: refs/heads/master@{#457970}
fs
Inherit 'viewBox' into view spec if it is valid
When constructing a view spec from a fragment identifier, the
(negated) hasEmptyViewBox() condition was used to determine if the
viewBox value should be set from the element. This condition however
will equate to:

  !(is-valid && is-empty) => !is-valid || !is-empty

meaning that invalid viewBox values would be transferred. In the case
where a <view> element without a 'viewBox' specified was referenced, the
'viewBox' value from the root could be overwritten by an invalid one.

Use only the validity of the 'viewBox' to determine if the value should
be inherited.

BUG=702380

Review-Url: https://codereview.chromium.org/2753773009
Cr-Commit-Position: refs/heads/master@{#457921}
mstensho
Consistent pagination strut propagation policies.
There's no break opportunity between a spanner and the next block in a column.
Also no break opportunity between a float and an in-flow block. The spec is a
bit vague here, but our implementation certainly doesn't support it.

We have to prevent strut propagation in such cases. If the first piece of
content inside the block (e.g. a line) doesn't fit inside the current
fragmentainer, it's the line that needs to be pushed, not the block.

One of the tests included here used to cause a DCHECK failure.

Review-Url: https://codereview.chromium.org/2746013010
Cr-Commit-Position: refs/heads/master@{#457888}
mstensho
Always include flow thread overflow in the last column set.
Also do this if the last column set is followed by one or more column spanner
placeholders, or we'd just risk losing content in such situations.

BUG=699029

Review-Url: https://codereview.chromium.org/2758663003
Cr-Commit-Position: refs/heads/master@{#457882}
mstensho
Push the top margin of floats past all useless fragmentainers.
The top margin of a float is not to be split across fragmentainer boundaries if
it can be avoided. We had code to push the margin over to the next
fragmentainer if we were out of space, but we may actually have to push it all
the way to the next fragmentainer *group* (i.e column row) in some cases.

calculatePaginationStrutToFitContent() helps us get there. That's the method we
use to push oversize content (lines and unbreakable blocks) to a better place,
so let's use it for margins too.

Review-Url: https://codereview.chromium.org/2759693002
Cr-Commit-Position: refs/heads/master@{#457881}
sigbjornf
Revert "Pull AudioDestinationConsumer off the Blink GC heap."
This reverts commit bb9b04fe0965eeb09f229f7a727fe7235add810f,
attempting to diagnose root crash cause.

R=rtoy,haraken
BUG=682945

Review-Url: https://codereview.chromium.org/2757883002
Cr-Commit-Position: refs/heads/master@{#457833}
rune
Floats are also out-of-flow considering white-space.
When blocks in inlines break lines, we don't create LayoutObjects for
whitespace Text nodes following those blocks unless they are out-of-flow.
However, we incorrectly didn't skip floats looking for such blocks
which caused us to drop whitespace LayoutObjects after floats.

R=mstensho@opera.com
BUG=569786

Review-Url: https://codereview.chromium.org/2757563006
Cr-Commit-Position: refs/heads/master@{#457762}
sigbjornf
Lock out GCs while iterating over MediaStreamSource audio consumers.
Attempt to diagnose a crash condition by locking out main thread GCs
while the audio thread propagates consumeAudio() updates.

R=haraken
BUG=682945

Review-Url: https://codereview.chromium.org/2761463002
Cr-Commit-Position: refs/heads/master@{#457753}
rune
Skip ruleset invalidations for SubtreeStyleChange roots.
When the TreeScope invalidation root is already with SubtreeStyleChange
there is no need to schedule ruleset invalidations for that scope. We
did not end up scheduling the invalidation sets, but went through a lot
of unnecessary steps in scheduleInvalidationsForRuleSets(). Instead,
just return early.

Added some more tests and corrected typos from
https://crrev.com/5fef4a38

Review-Url: https://codereview.chromium.org/2751193004
Cr-Commit-Position: refs/heads/master@{#457715}
mstensho
Make the gdb Vector pretty-printer work with Python version >= 3.
In iterators it's now called __next__(), not next(), apparently.

Review-Url: https://codereview.chromium.org/2754473007
Cr-Commit-Position: refs/heads/master@{#457711}
rune
Remove incorrect styleResolver() checks.
Whether the StyleResolver is created or not does no longer tell if we
have usable invalidation sets or not. Removing SubtreeStyleChange which
is presumably not necessary anymore.

Add a check for not scheduling any invalidation sets if the document is
already marked for full recalc.

Review-Url: https://codereview.chromium.org/2749273004
Cr-Commit-Position: refs/heads/master@{#457383}
tsniatowski
Fix android key event timestamps
Pass a Java long to C++ as a jlong type, not a C++ long which can have a
different size to avoid broken / negative event timestamp values.
ImeAdapter's Java side uses "long" in SendKeyEvent, so the C++ side must
use a jlong or int64_t, and not a C++ long. Otherwise things don't work
well when system uptime is over 2^31ms (~25 days).

Additionally, do not do an extra divide-by-1000 when the used helper
function will do the milliseconds to seconds conversion already, so the
timestamps are correctly measured in milliseconds.

The resulting keyboard event timestamps end up nicely sane and positive,
and no longer clamped to 0 in PerformanceBase.cpp.

BUG=701726
R=aelias@chromium.org

Review-Url: https://codereview.chromium.org/2755453004
Cr-Commit-Position: refs/heads/master@{#457369}
mstensho
Strictly unbreakable objects need to prevent interaction with the outside.
A strictly unbreakable object (i.e. when getPaginationBreakability() ==
ForbidBreaks) has no valid break points inside. This is the case for e.g.
images, writing mode roots and scrollable objects. If such an object is in the
containing block chain between two nested multicol containers, column content
in multicol containers on the inside shouldn't interact with columns in the
enclosing multicol container.

BUG=698686

Review-Url: https://codereview.chromium.org/2748973002
Cr-Commit-Position: refs/heads/master@{#457177}
mstensho
Remove old flow-thread aware code from computeLogicalLocationForFloat().
CSS regions supported variable fragmentainer widths. However, multicol doesn't,
so the code is no longer necessary.

Review-Url: https://codereview.chromium.org/2748963002
Cr-Commit-Position: refs/heads/master@{#457149}
sigbjornf
sendBeacon(): once transmission allowance has been reached, always fail.
Fix allowance checking logic for Beacon transmissions upon reaching
the limit. If the allowance limit was 'perfectly' exhausted after N
Beacon requests, subsequent Beacon requests would go ahead without
the (now zero) allowance limit imposed.

R=mkwst
BUG=701678

Review-Url: https://codereview.chromium.org/2751953002
Cr-Commit-Position: refs/heads/master@{#457088}
sigbjornf
Accurate transfer of SerializedScriptValue allocation costs.
r456009 added transferring of allocation costs for a
SerializedScriptValue and any array buffers that it refers to,
transferring that cost from one v8 context to another as part
of a postMessage()

The handoff 'protocol' provided there fell short in that it could
fail to subtract transferable (array buffer contents) costs in
the source context, or end up doing it twice if the postMessage()
failed. Bookkeeping confusion resulted.

Rework the mechanism by instead having ArrayBufferContents keep
track of its external allocation cost registration status, so as
to prevent double discounting. Along with that, it is both safe
and accurate to unregister all allocation costs prior to
transfer. Should the value successfully be posted to its target
context, cost will be registered there. And if not, the value will
be destructed (..but without discounting allocation cost yet again.)

R=jbroman,haraken
BUG=700353

Review-Url: https://codereview.chromium.org/2741793003
Cr-Commit-Position: refs/heads/master@{#456800}
sigbjornf
Pull AudioDestinationConsumer off the Blink GC heap.
The AudioDestinationConsumer interface and its single implementation
does not meet the bar for being on the Blink GC heap. It doesn't cause
harm to have them there, but in order to diagnose an unexplained
failure, pull these objects off the heap.

We may want to restore them to the Blink GC heap once the issue has
been resolved.

R=
BUG=682945

Review-Url: https://codereview.chromium.org/2748133003
Cr-Commit-Position: refs/heads/master@{#456736}
fs
Dirty pres. attribute style on <svg> dimension change when not attached
When an <svg> wasn't attached, and it had its 'width'/'height' mutated
via the SVG DOM interfaces (SVG*Length), presentation attribute style
would not be dirtied. This could lead to an incorrect size being
computed in some cases.
Ensure that presentation attribute style is always updated if the <svg>
element is not attached.

BUG=701075

Review-Url: https://codereview.chromium.org/2747153002
Cr-Commit-Position: refs/heads/master@{#456702}
fs
Invalidate SVG 'transform' pres. attribute style even if not attached
When the 'transform' attribute was manipulated via its SVG DOM
representation (SVGTransformList), the
presentation-attribute-style-is-dirty flag would not be set unless the
element had been attached.
Reorder the contents of the 'transform' branch in
SVGGraphicsElement::svgAttributeChanged so that the presentation
attribute style is always dirtied regardless of attachment status.

BUG=701075

Review-Url: https://codereview.chromium.org/2745053005
Cr-Commit-Position: refs/heads/master@{#456696}
fs
Remove argument to LayoutSVGResourceGradient::collectGradientAttributes
We can assume that element() is non-null, and just cast it in the
overriding implementations.
Move the synchronizeAnimatedSVGAttribute(...) calls into actual
attribute collection, so that it applies to all elements in the
inheritance chain.
Also rewrite the lengthy comment, because gradient building has changed
significantly from what it describes, and attribute collection now
precedes the actual Gradient construction. Replicate the new comment to
the similar place for <pattern>s.

BUG=661598

Review-Url: https://codereview.chromium.org/2749593002
Cr-Commit-Position: refs/heads/master@{#456662}
fs
Add Gradient::addColorStops method
This seems a better fit on Gradient than on LayoutSVGResourceGradient.

Review-Url: https://codereview.chromium.org/2749583002
Cr-Commit-Position: refs/heads/master@{#456504}
sigbjornf
Turn IDBTransaction into the ContextLifecycleObserver it needs to be.
Revert r453574's switch to using ContextClient for IDBTransaction,
going back to ContextLifecycleObserver. This is needed in order for
IDBTransaction's debug checks upon destruction to be able to safely access
the ExecutionContext.

While ContextClient keeps a weak reference to its ExecutionContext,
accessing it from a destructor assumes that weak processing for the
ContextClient will already have run (and cleared out the ExecutionContext
weak reference, if needs be.) This assumes that weak processing will
always run, which it won't if the ContextClient and ExecutionContext are
determined to be garbage during the same GC.

Update ContextLifecycleObserver comments to mention this subtle detail.

R=jsbell,haraken
BUG=699819

Review-Url: https://codereview.chromium.org/2742393002
Cr-Commit-Position: refs/heads/master@{#456432}
fs
Remove <filter> from the chainableResourceTags set
We don't actually support inheritance for <filter>, so having it in the
set is of no use.

BUG=661598

Review-Url: https://codereview.chromium.org/2743293002
Cr-Commit-Position: refs/heads/master@{#456380}
fs
Refactor <paint> URL resolution in SVGResources
Hoist the has-url check out of paintingResourceFromSVGPaint(), and
remove |hasPendingResource| - consider all null-returns as having pending
resources. (This means "incorrect" <paint> URL references are considered
pending, just as URL references for other resource types.)

BUG=454767

Review-Url: https://codereview.chromium.org/2746933002
Cr-Commit-Position: refs/heads/master@{#456374}
fs
Move common gradient attribute collection to SVGGradientElement
Move the collection of attributes shared by both gradient types to the
base class (collectCommonAttributes.) Introduce a new helper for looking
up a potential element to inherit attributes from. Restructure the
"collection loop" a bit after the common code has been broken out.
This also means that buildStops() can be made private.

BUG=661598

Review-Url: https://codereview.chromium.org/2741993002
Cr-Commit-Position: refs/heads/master@{#456371}
fs
Use IdTargetObserver in SVGSMILElement
Move SVGSMILElement (target reference) and SVGSMILElement::Condition to
use IdTargetObserver via SVGURIReference::observeTarget.
Simplify the result to avoid needing the lookupEventBase helper.

BUG=661598

Review-Url: https://codereview.chromium.org/2737403003
Cr-Commit-Position: refs/heads/master@{#456367}
sigbjornf
PartitionAlloc: use less stack when dumping stats.
Avoid unnecessary stack usage in PartitionDumpStatsGeneric() for
the intermediate array of sizes used for full stats reporting.

Full stat dumps are currently only made use of by unit tests,
light reports do not make really use of an intermediate array and
allocation can be avoided for those. Addressing some reported
stack overflow failures (Windows.)

R=haraken
BUG=699893, 699922

Review-Url: https://codereview.chromium.org/2741853007
Cr-Commit-Position: refs/heads/master@{#456291}
rune
Track lastTextNode during rebuildLayoutTree.
We keep track of last seen text node for more efficient whitespace
re-attachment. When style recalc and layout tree building was split,
the text node is still tracked during recalc, stored in a hash map, and
retreived when needed during layout tree building.

However, the text nodes are also traversed during layout tree building
so that we can track the nodes during that phase instead.
StyleReattachData is removed and this CL reverts back to using the
m_nonAttachedStyle map for ComputedStyle.

The comment about reversed traversal of children for avoiding n^2
performance is moved to rebuildChildrenLayoutTrees() since that's where
the issue is. We should be able to do the child recalc first-to-last
now if we want to.

R=nainar@chromium.org,esprehn@chromium.org
BUG=595137

Review-Url: https://codereview.chromium.org/2740823005
Cr-Commit-Position: refs/heads/master@{#456047}
rune
Initial containing block for print not affected by page zoom.
The page zoom factor is not applied to the ICB for printing, yet the
ICB basis for media queries and viewport units were. Use 1 as a page
zoom factor in viewportSizeForViewportUnits and use that method to get
the size for the ICB for evaluating media queries.

BUG=699014,699910

Review-Url: https://codereview.chromium.org/2738173002
Cr-Commit-Position: refs/heads/master@{#456040}
sigbjornf
MediaStreamSource: verify unlocked state when finalizing.
To diagnose an audio thread crash condition, verify that the lock
over audio consumers that MediaStreamSource keeps, isn't held when it is
being finalized. If it is, then the audio thread is active using the
MediaStreamSource object..which is not a well-formed state to be in.

R=
BUG=682945

Review-Url: https://codereview.chromium.org/2741663004
Cr-Commit-Position: refs/heads/master@{#456029}
hugoh
Remove LayoutTests that test the now unsupported user-select: ignore
BUG=none

Review-Url: https://codereview.chromium.org/2740953004
Cr-Commit-Position: refs/heads/master@{#456028}
wdzierzanowski
Stop assuming anything about result of MFStartup()
MFStartup() usually returns S_OK.  However, being a system library
function it doesn't have to, and we have no control over it.  It can
return an error when something goes wrong within Media Foundation, or
simply on an "N" edition of Windows that doesn't even have Media
Foundation.
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel

Review-Url: https://codereview.chromium.org/2735783002
Cr-Commit-Position: refs/heads/master@{#456026}
sigbjornf
postMessage(): transfer allocation costs along with value.
A MessageEvent's data value will in some cases hold on to significant
amounts of off-heap memory, so we take care of registering that
external allocation with v8, so that it can be taken into consideration
by the GC triggering logic.

However, when posting a message to another context, we must arrange for
its total 'external allocation' to be associated with the target context.
Including the sizes of any transferables (array buffers), so balance the
books more accurately by also transferring the external allocation cost
of those transferables.

R=
BUG=698981

Review-Url: https://codereview.chromium.org/2734173002
Cr-Commit-Position: refs/heads/master@{#456009}
fs
Remove side-effects from the SVGTreeScopeResources constructor
SVGTreeScopeResources and SVGDocumentExtensions carries disjoint state,
so this side-effect is not required.

Review-Url: https://codereview.chromium.org/2739063004
Cr-Commit-Position: refs/heads/master@{#455826}
fs
Fold SVGDocumentExtensions::reportError into only user
This method only had a single user, and it seems like it could just call
Document::addConsoleMessage directly.
Also remove a stray 'public' access specifier by moving the single
method in it up a bit in the file.

Review-Url: https://codereview.chromium.org/2738233002
Cr-Commit-Position: refs/heads/master@{#455802}
sigbjornf
Remove some dated Member friendships.
CollectionBackingTraceTrait no longer exists, and Visitor only
needs to be friend with WeakMember<>.

R=
BUG=

Review-Url: https://codereview.chromium.org/2745433003
Cr-Commit-Position: refs/heads/master@{#455786}
fs
Use IdTargetObserver in SVGUseElement
Change SVGUseElement to use the observeTarget() helper from
SVGURIReference. Since SVGUseElement has some additional requirements
for its reference management, a more low-level observeTarget() variant
is exposed.
To facilitate this change, clearShadowTree() is renamed to
clearResourceReference(), and the shadow tree tear-down is hoisted out
of it.

BUG=661598

Review-Url: https://codereview.chromium.org/2744613002
Cr-Commit-Position: refs/heads/master@{#455769}
fs
Use IdTargetObserver in SVGFEImageElement
Change SVGFEImageElement to use the observeTarget() helper from
SVGURIReference.
A slight change in behavior for when a load is initiated for a potential
image resource is made. Instead of using a "failed element lookup and a
non-existing id" as the condition, use "failed element lookup and non-
local resource reference".
Also add a new method clearImageResource() and put the tear-down for
the image resource, and change a use of ownerDocument() to just
document().

BUG=661598

Review-Url: https://codereview.chromium.org/2740003003
Cr-Commit-Position: refs/heads/master@{#455765}
fs
Disable virtual/gpu-rasterization/images/cross-fade-background-size.html
Minor differences on Windows bots.

TBR=xhwang@chromium.org
NOTRY=true
BUG=699573

Review-Url: https://codereview.chromium.org/2741693002
Cr-Commit-Position: refs/heads/master@{#455714}
fs
Store element reference for event-bases too
Rather than using the (obviously "racy") technique of looking up the
event-base element again when disconnecting from it, store the reference
on connect (sharing storage with the sync-base element since they are
mutual exclusive) and use it to disconnect properly.

BUG=641437

Review-Url: https://codereview.chromium.org/2739893002
Cr-Commit-Position: refs/heads/master@{#455699}
mstensho
Text control elements should contain all (shadow DOM) children.
For instance, INPUT type="search" elements allow styling of the cancel button,
via a ::-webkit-search-cancel-button pseudo element selector. We don't want authors
to be able to escape the containing INPUT element by styling the cancel button as
position:absolute, etc.

Force INPUT and other text control elements to be in the containing block chain of
all its descendants. This should be a good idea in general (and at least harmless),
and there's also C++ code [1] that essentially assumes that it is so.

Since this change makes canContainFixedPositionObjects() in LayoutObject and
ComputedStyle even more different than they used to be, we need to change some
code from using the one in ComputedStyle to the one in LayoutObject.

Two existing tests in fast/forms/ had to be updated, since they were adding together
offsetLeft of an INPUT element and offsetLeft of something inside the INPUT element
in a way that used to work by accident. Use getBoundingClientRect() instead, since
the test ultimately wants absolute coordinates anyway.

[1] See ThemePainterDefault::paintSearchFieldCancelButton()

BUG=685527
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Review-Url: https://codereview.chromium.org/2733593002
Cr-Commit-Position: refs/heads/master@{#455644}
fs
Add a new mechanism for watching SVGElement 'href' targets
This CL adds a new mechanism for watching elements referenced via 'href'
attributes. It uses IdTargetObserver as the basis adding a callback for
notification.
This is a step away from relying on SVGTreeScopeResources for tracking
of "pending" elements for these use cases. Each element is instead does
its own tracking via the relevant TreeScope. This will eventually mean
that the buildPendingResourcesIfNeeded mechanism can be removed.

SVGTextPathElement and SVGMPathElement are updated to use this new
scheme. Other uses will be replaced in future CLs.

BUG=661598

Review-Url: https://codereview.chromium.org/2737653006
Cr-Commit-Position: refs/heads/master@{#455584}
karlo
Account for borders and padding when calculating background tile size.
This is required when sub-pixel borders and padding are used, otherwise
the tile size may become one pixel too small, causing rendering artifacts.
Test case attached.

BUG=686435
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Review-Url: https://codereview.chromium.org/2689993003
Cr-Commit-Position: refs/heads/master@{#455454}
mstensho
Search the entire subtree when looking for the end of an inline continuation chain.
Inlines may be nested, so we may not find the last inline in the chain as a
direct child of the anonymous blocks. We need to search the entire subtree.
Don't do this with anonymous blocks that wrap block children (the block-level
DOM children of the inline-level objects), though. We're not going to find
anything interesting there.

This fix is speculative; the original bug report didn't come with a test case.

BUG=662767

Review-Url: https://codereview.chromium.org/2738503004
Cr-Commit-Position: refs/heads/master@{#455420}
sigbjornf
XMLHttpRequest: return null upon failing responseArrayBuffer allocation.
The allocation of a response ArrayBuffer may fail, a large enough
contiguous chunk of memory simply not being available from the
underlying allocator. The spec [1] now admits allocation failure as a
possibility, allowing the return of a null buffer if so.

Update our implementation accordingly, returning null rather than
failing hard with an OOM.

1 - https://xhr.spec.whatwg.org/#arraybuffer-response

R=haraken,yhirano
BUG=673211

Review-Url: https://codereview.chromium.org/2730943002
Cr-Commit-Position: refs/heads/master@{#455398}
rune
Move ::selection invalidation to applyPseudoStyleChanges.
Removed need for separate StyleDifference constant for ::selection and
otherwise simplified the code.

R=mstensho@opera.com

Review-Url: https://codereview.chromium.org/2732113002
Cr-Commit-Position: refs/heads/master@{#455262}
rune
Make ::first-line invalidation work when added or removed.
We were only invalidating ::first-line properly when both old and new
ComputedStyle contained ::first-line styles. Now, instead call
setNeedsLayoutAndPrefWidthsRecalc to trigger changes when either old or
new ComputedStyle does not have ::first-line style.

The ::first-line invalidation is moved from Element to LayoutObject,
and unnecessary traversal code removed.

I have not been able to come up with a case where we need to compare
PseudoIdFirstLineInherited style, so diffing that is removed.

R=mstensho@opera.com
BUG=562418,564239,689979

Review-Url: https://codereview.chromium.org/2728383002
Cr-Commit-Position: refs/heads/master@{#455088}
fs
Make HashTraits<QualifiedName>::emptyValue return a const reference
This avoids unnecessary construction of a temporary object, saving a few
cycles and some code-space (~2k on x86-64.)
Also inline QualifiedName::null for some additional savings.

Review-Url: https://codereview.chromium.org/2702403013
Cr-Commit-Position: refs/heads/master@{#455069}
fs
Don't double-resolve URL in TextTrackLoader::load
The caller (HTMLTrackElement::loadTimerFired) will already have
resolved the URL.

BUG=466083

Review-Url: https://codereview.chromium.org/2731953002
Cr-Commit-Position: refs/heads/master@{#455050}
mstensho
Allow zero-height fragmentainers.
We used to assert against this, but we really can't, since there are
legitimiate reasons for a fragmentainer (and fragmentainer groups and column
sets) to have zero height, e.g. when its content is zero-height.

BUG=698359

Review-Url: https://codereview.chromium.org/2737503002
Cr-Commit-Position: refs/heads/master@{#455040}
sigbjornf
TestInterfaces: support delegate clearing.
Following r454834, the implementation of SetDelegate() also needs to
handle resetting of the test delegate.

R=
BUG=698713

Review-Url: https://codereview.chromium.org/2738513004
Cr-Commit-Position: refs/heads/master@{#455030}
fs
Improve handling of duplicate id's for SVG resources
This CL attempts to fix the known issues with duplicate id's and SVG
resources. There are a variety of cases where this fails, and the added
tests attempt to cover those as well as possible.

The know bugs generally stem from:

 * Resources being registered in (layout) tree order after style
   recalc. This for instance mean that any later defined resources
   will shadow any earlier appearing resource (which would the correct
   one.)

 * Removing a resource container does not consider that there could now
   be another resource that is no longer shadowed by the one removed.
   Together with the above, this also meant that removing a resource
   from the DOM could invalidate, and break, all occurences of said
   resource.

This CL attempts to handle the above by factoring the result of
getElementById into the equation, considering it to be "the truth" when
possible/required. The new methods registerResource and
unregisterResource form the basis of this, codifying the two basic
operations on which the tracking is built. The tracking of the
'registered' flag from LayoutSVGResourceContainer is now handled by
SVGTreeScopeResources. While this flag could be considered an
optimization at this point, DCHECKs are added to attempt to keep it
true to it's purpose.

BUG=454767

Review-Url: https://codereview.chromium.org/2722543002
Cr-Commit-Position: refs/heads/master@{#454951}
bratell
Stop casting HTMLInputElement to HTMLInputElement.
There can be some confusion which cast method to use, the
one for HTMLElements or the one for ListedElements so don't
even bother.

Review-Url: https://codereview.chromium.org/2728403003
Cr-Commit-Position: refs/heads/master@{#454899}
ckulakowski
Add message loop to v8's unittests
When (at least some) v8 unittests are started in bigger batch
we hit v8 garbage collector's incremental marking hard limit.
When it happens v8's engine posts task and it causes crash as
there is no active message loop. This change creates message
loop for v8's unittests to fix this crash.

BUG=695374

Review-Url: https://codereview.chromium.org/2735703003
Cr-Commit-Position: refs/heads/master@{#454898}
sigbjornf
RenderFrameImpl: avoid creating many temporary WebDocuments.
Accessing a property off of a WebFrame's document will entail instantiating
a WebDocument, which implies a WebPrivatePtr<> holding a persistent reference.

Avoid the overhead via some manual CSEing.

R=esprehn,jochen
BUG=

Review-Url: https://codereview.chromium.org/2723083002
Cr-Commit-Position: refs/heads/master@{#454878}
rune
Bit-mask incorrectly removed first-line pseudo bit.
The m_pseudoBits member only contains the 8 bits for the public pseudo
element bits, yet we used a mask to retrieve them. That mask was
incorrectly set to 0x1fe when it should have been 0xff. Anyway, that
mask is unnecessary and removed.

The mask issue caused StylePropagationDiff, returned from
diffPseudoStyles, to be NoChange for pure ::first-line changes. That
NoChange return were the only case which triggered first-line
invalidation properly.

Instead, always check for pseudo style changes in
pseudoStyleCacheIsInvalid. This fixes issue 698451.

The pseudoStyleCacheIsInvalid method has a weird name, has bugs, and
should be put on LayoutObject and called as part of setStyle instead.
That is for follow-up CLs.

R=meade@chromium.org,mstensho@opera.com
BUG=698451

Review-Url: https://codereview.chromium.org/2729373003
Cr-Commit-Position: refs/heads/master@{#454850}
mharanczyk
Avoid fetching RFH from nav handle for not committed navigations.
For devtool use case there is only a need to check if hosts match,
so compareing frame tree node id instead of raw pointers will give
same result.

BUG=697991

Review-Url: https://codereview.chromium.org/2730873002
Cr-Commit-Position: refs/heads/master@{#454849}
karlo
Calculate positioningArea and not just size, for tiling background.
Computing the correct background tiling size when sub-pixel border or
padding is used, requires calculating the full positioning area and not
just size. The actual fix for 686435 is in a followup cl.

BUG=686435
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Review-Url: https://codereview.chromium.org/2690053002
Cr-Commit-Position: refs/heads/master@{#454843}
sigbjornf
WebViewTestProxyBase: clear out main test delegate upon destruction.
The first BlinkTestRunner created is set as the main delegate of test
interfaces along with being set as the delegate of the web view test
proxy object.

When that view test proxy goes away, unregister the main delegate at
the same time as it can no longer be safely accessed.

R=tkent
BUG=698166

Review-Url: https://codereview.chromium.org/2734713002
Cr-Commit-Position: refs/heads/master@{#454834}
mstensho
Isolate strictly unbreakable multicol containers that are nested.
A strictly unbreakable object (i.e. when getPaginationBreakability() ==
ForbidBreaks) has no valid break points inside. This is the case for e.g.
images, writing mode roots and scrollable objects. If such an object is an
inner multicol container, column content inside shouldn't interact with
enclosing columns.

BUG=696726,695535,675070

Review-Url: https://codereview.chromium.org/2729903003
Cr-Commit-Position: refs/heads/master@{#454765}
mmarkowicz
Update views::Textfield cursor color on text color change
views::Textfield::SetTextColor should apply new color to the cursor as well.
Currently this will happen but only after Textfield::OnNativeThemeChanged
is triggered in some way.

BUG=697939

Review-Url: https://codereview.chromium.org/2730623003
Cr-Commit-Position: refs/heads/master@{#454616}
bratell
Remove some unnecessary 'using namespace'
The construct "using namespace" is not allowed by the Chromium
coding style and since these are not even necessary I'm just
removing them.

Review-Url: https://codereview.chromium.org/2729093003
Cr-Commit-Position: refs/heads/master@{#454605}
fs
The WebVTT 'line' settings should be parsed as a float
Per https://w3c.github.io/webvtt/#parse-the-webvtt-cue-settings .
Negative zero is transformed to positive zero.

Also make valid percentages outside of [0, 100] fail quicker.

BUG=697869

Review-Url: https://codereview.chromium.org/2725313002
Cr-Commit-Position: refs/heads/master@{#454587}
rune
Call getUncachedPseudoStyle on correct node for ::selection.
getUncachedSelectionStyle is typically called for the LayoutObject we
are currently painting. This might not be the node the ::selection
style is matched for. Specifically, we request getUncachedSelectionStyle
on LayoutText objects, but we need to match the ::selection style on its
parent element.

This already happened inside getUncachedPseudoStyle, but it's guarded by
a hasPseudoStyle() call for the pseudo element type. In the case where
we pass in a LayoutText, we are relying on the computed style with the
PseudoIdSelection bit set to be propagated down to the LayoutText object.
That does not happen if the style change for the element parent is
NoChange or NoInherit.

Instead find the element for which we are matching ::selection in
getUncachedSelectionStyle instead. The firstAncestorOrSelf() call is
still present in getUncachedPseudoStyle as there may be other pseudo
elements types where we rely on this.

R=mstensho@opera.com
BUG=685174

Review-Url: https://codereview.chromium.org/2727253004
Cr-Commit-Position: refs/heads/master@{#454575}
sigbjornf
Support XMLHttpRequest.send(URLSearchParams)
Update send()'s overloaded set to also include URLSearchParams,
mirroring a recent BodyInit spec addition,

 https://fetch.spec.whatwg.org/#bodyinit

R=yhirano,tyoshino
BUG=694449

Review-Url: https://codereview.chromium.org/2723583005
Cr-Commit-Position: refs/heads/master@{#454571}
rune
needsPaintInvalidation() should not return true for selection.
In [1] we introduced a paint invalidation constant for repainting
selection. needsPaintInvalidation() started to also return true when
only the selection needed paint invalidation. Callers of that method
assumes that true will cause at least a full element repaint which made
us skip setting the diff to invalidate the object and only invalidate
the selection in some cases. Instead, only return true for
PaintInvalidationObject and PaintInvalidationSubtree.

[1] https://crrev.com/eff357ef

R=mstensho@opera.com
BUG=697337

Review-Url: https://codereview.chromium.org/2727843004
Cr-Commit-Position: refs/heads/master@{#454564}
bratell
Remove some unnecessary using namespaces and add include guards
The Chromium Code Style doesn't allow using namespace and when
I looked at the code it seems some of them in layout are not
even needed. This removes the ones that are not needed and
adds explicit scoping at the one place it's needed.

Also adding a missing header guard and remove an unused enum.

Review-Url: https://codereview.chromium.org/2722313007
Cr-Commit-Position: refs/heads/master@{#454563}
msimonides
Add View::AddedToWidget and RemovedFromWidget.
Many views implement ViewHierarchyChanged to perform some setup once a
Widget becomes available to them. This results with code duplication.
With these new methods there will be no need to implement
ViewHierarchyChanged for the common case.

BUG=5191

Review-Url: https://codereview.chromium.org/2713643002
Cr-Commit-Position: refs/heads/master@{#454542}
bratell
Skip a few "using namespace" that we don't really need.
The Chromium coding style doesn't allow "using namespace" at all
and since the code will eventually adapt and they are causing
issues with some experiments I rather remove them now.

Review-Url: https://codereview.chromium.org/2729583004
Cr-Commit-Position: refs/heads/master@{#454449}
mstensho
Respect constrained height on nested multicol containers.
If there's no more space in an inner multicol container (according to e.g. its
height or max-height), don't create any additional fragmentainer groups (i.e.
column rows).

The spec isn't clear here, but this change moves us closer to Edge, and also
eliminates cases where we'd previously end up with pathological numbers of
fragmentainer groups.

Also flipped the logic in hasFragmentainerGroupForColumnAt(), and renamed it to
needsNewFragmentainerGroupAt().

BUG=688158

Review-Url: https://codereview.chromium.org/2725943003
Cr-Commit-Position: refs/heads/master@{#454411}
fs
Add a use-counter for transforms using the reference box on SVG element
For gauging the risk of implementing 'transform-box' proper - mostly
with an eye towards the initial value.

BUG=595829

Review-Url: https://codereview.chromium.org/2725973003
Cr-Commit-Position: refs/heads/master@{#454408}
bratell
Avoid name collision for secondsPerHour/secondsPerMinute
There are other places declaring the names secondsPerHour
and secondsPerMinute. They don't collide right now, but by
moving these to a smaller namespace I can avoid collisions
in some experiments.

Review-Url: https://codereview.chromium.org/2730683004
Cr-Commit-Position: refs/heads/master@{#454384}
fs
Fix core/frame PRESUBMIT for UseCounter changes
The start marker was missing a piece after
https://codereview.chromium.org/2586863002

Review-Url: https://codereview.chromium.org/2728543006
Cr-Commit-Position: refs/heads/master@{#454312}
sigbjornf
blink_gc_plugin: always enable warn_stack_allocated_trace_method check.
R=haraken,thakis
BUG=689864

Review-Url: https://codereview.chromium.org/2730673003
Cr-Commit-Position: refs/heads/master@{#454307}
sigbjornf
Enable Blink GC plugin check for stack allocated classes.
The latest clang roll (crbug.com/685244) included a GC plugin with
support for checking STACK_ALLOCATED() classes w/ unwanted trace
method definitions. Add support for that check to the build system,
unconditionally enabled.

R=haraken,thakis
BUG=689874

Review-Url: https://codereview.chromium.org/2724353002
Cr-Commit-Position: refs/heads/master@{#454306}
fs
Sync the FeatureObserver (UseCounter) metric in histograms.xml
Catching up with changes to Blink's
third_party/WebKit/Source/core/frame/UseCounter.h.

Review-Url: https://codereview.chromium.org/2729543004
Cr-Commit-Position: refs/heads/master@{#454280}
mharanczyk
React to not committed render frame navigations in devtools.
Currently it was trying to handle only error pages or committed
navigations which lead to RenderFrameDevToolsAgentHost being stuck
in suspended state for navigations that did not commit (for example
downloads). This in turn caused webdriver to get stuck on further
interactions with such frames. This is regression caused by
https://codereview.chromium.org/2655413002.

BUG=682002

Review-Url: https://codereview.chromium.org/2720823004
Cr-Commit-Position: refs/heads/master@{#454229}
bratell
Drop some "using namespace" in WebKit/Source/html.
Drop some "using namespace" that are not used or not allowed
by the coding standard.

Review-Url: https://codereview.chromium.org/2726603002
Cr-Commit-Position: refs/heads/master@{#453964}
sigbjornf
Construct URLSearchParams from sequence initializer.
Follow up recent spec addition[1,2] and support sequence<sequence<USVString>>
initializers for URLSearchParams.

1 - https://github.com/whatwg/url/issues/27
2 - https://github.com/whatwg/url/pull/175

R=tyoshino,haraken
BUG=680531

Review-Url: https://codereview.chromium.org/2725593003
Cr-Commit-Position: refs/heads/master@{#453903}
fs
Move MarkupTokenizerInlines.h to core/html
This set of helpers is used by HTMLTokenizer and VTTTokenizer - both of
which reside in core/html.

Review-Url: https://codereview.chromium.org/2724593002
Cr-Commit-Position: refs/heads/master@{#453887}
bratell
Avoid conflict between 2 enums named Mode and 2 values named None.
If you include (directly or indirectly) forms/TypeAhead.h or
MediaFragmentURIParser.h or track/vtt/VTTRegion.h you get conflicts
either with the enum value None or the enum name Mode so give the
enum a less generic name.

Review-Url: https://codereview.chromium.org/2724533003
Cr-Commit-Position: refs/heads/master@{#453634}
perja
bluetooth: show better error messages for services, characteristics and descriptors.
The error message now contains the UUID of the respective service, characteristic or descriptor.

BUG=619932

Review-Url: https://codereview.chromium.org/2680783002
Cr-Commit-Position: refs/heads/master@{#453590}
sigbjornf
Convert unnecessary ContextLifecycleObservers into ContextClients.
Convert remaining types that do not make use of |contextDestroyed()|
overriding, making them be context clients instead.

R=dcheng,haraken
BUG=610176

Review-Url: https://codereview.chromium.org/2721603005
Cr-Commit-Position: refs/heads/master@{#453574}
rune
Use independent property inheritance fast-path for text-align.
This was originally attempted in [1], but the custom function for
applying text-align values did not clear the inherited bit.

Added a test to the framework to catch the case for trying to propagate
a value down to a descendant with the property explicitly set.

[1] https://codereview.chromium.org/2628503002/

R=sashab@chromium.org,napper@chromium.org
BUG=628043,686585

Review-Url: https://codereview.chromium.org/2715213003
Cr-Commit-Position: refs/heads/master@{#453430}
rune
Remove out-of-date comment about scoped style resolvers.
Collecting features is not longer connected to StyleResolver and the
comment is no longer correct in any way. The nullptr test is still
there because a TreeScope may have stylesheet candidates which do not
have style sheets. A candidate is causing the TreeScope to be added to
the active list, while it has to have at least one active stylesheet to
enforce a ScopedStyleResolver instance.

R=meade@chromium.org

Review-Url: https://codereview.chromium.org/2716363002
Cr-Commit-Position: refs/heads/master@{#453427}
fs
Rename SVGPaintContext::paintSubtree to paintResourceSubtree
To better reflect it's use and function.
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Review-Url: https://codereview.chromium.org/2715513009
Cr-Commit-Position: refs/heads/master@{#453278}
fs
Tidy up instance time handling in SVGSMILElement
Merge the addBeginTime and addEndTime methods into a single method
addInstanceTime (that takes a BeginOrEnd argument.) Migrate callers to
the new method, getting rid of SVGSMILElement::handleConditionEvent in
the process.
Also inline some trivial functions in SVGAnimationElement.

BUG=641437

Review-Url: https://codereview.chromium.org/2712343004
Cr-Commit-Position: refs/heads/master@{#453233}
sigbjornf
MessagePort: don't post repeated message dispatch tasks.
If a task has already been posted to drain the incoming queue of messages,
don't post another.

R=haraken,dcheng
BUG=693595

Review-Url: https://codereview.chromium.org/2716163002
Cr-Commit-Position: refs/heads/master@{#453205}
mstensho
Allow flow thread portion logical bottom to be above its logical top.
We used to try to prevent this, as an attempt to make sure that no
fragmentainer group would have overlapping flow thread portion rectangles with
other fragmentainer groups. But that was already easily achievable with e.g. an
empty block between two column spanners anyway.

There is a legitimate reason for the flow thread portion bottom to be above the
top: negative margins.

Introduce MultiColumnFragmentainerGroup::logicalHeightInFlowThreadAt().
Less duplicated code. Some extra care is now needed, to make sure that we don't
end up with negative logical heights.

BUG=688760,683090,683554

Review-Url: https://codereview.chromium.org/2709013007
Cr-Commit-Position: refs/heads/master@{#453201}
fs
Add comment about SVGGraphicsElement.{nearest,farthest}ViewportElement
Move to bottom of interface per common practice.

BUG=695981

Review-Url: https://codereview.chromium.org/2714123003
Cr-Commit-Position: refs/heads/master@{#453124}
fs
Update VTTCue enum AlignSetting, "middle" -> "center"
Apparently this was missed in https://codereview.chromium.org/2683633006

R=foolip@chromium.org
BUG=663797

Review-Url: https://codereview.chromium.org/2719513002
Cr-Commit-Position: refs/heads/master@{#453121}
fs
Fold svgAttributeChanged into parseAttribute for SVGAnimateElement
This separation does not really give much in terms of benefits. Since
none of the SMIL-related attributes are exposed through SVG DOM, the
former method is always called after the latter. Move the code from the
former to the latter. This even avoids the attribute value lookup, for a
tiny perf gain...

BUG=641437

Review-Url: https://codereview.chromium.org/2706243012
Cr-Commit-Position: refs/heads/master@{#452861}
fs
Remove 'begin'/'end' processing from SVGSMILElement::svgAttributeChanged
The svgAttributeChanged hook is (with one exception) used for attributes
that are part of the SVG DOM representation ("object model".) 'begin'
and 'end' are not. Move handling to SVGSMILElement::parseAttribute
instead.

BUG=641437

Review-Url: https://codereview.chromium.org/2719493002
Cr-Commit-Position: refs/heads/master@{#452858}
fs
Tidy up event-/syncbase registration in SVGSMILElement
Move code for connect/disconnecting from event- and syncbase into the
Condition innerclass to improve readability.
Also make Condition::m_baseID and m_name be AtomicStrings (to avoid
casting and hashing all over the place), convert loops to range-syntax
and use references where it makes sense in related code-paths.

BUG=641437

Review-Url: https://codereview.chromium.org/2714643007
Cr-Commit-Position: refs/heads/master@{#452857}
fs
Avoid duplicating the CSS property mapping for SVG pres. attrs.
The attribute (object) -> CSS property mapping is specified at
construction and stored, so rather than having to repeat it, just read
and use the stored value.

Also add a cssValue() helper method to SVGAnimatedPath.

Review-Url: https://codereview.chromium.org/2708923011
Cr-Commit-Position: refs/heads/master@{#452839}
fs
Remove LayoutSVGResourceContainer::m_id
By passing the old and new values to the idChanged() method, the only
"reload" of the value can be eliminated, and other instances can use
getIdAttribute() on the element. This makes the m_id field unused, so
it can be removed.

BUG=454767

Review-Url: https://codereview.chromium.org/2714153002
Cr-Commit-Position: refs/heads/master@{#452838}
sigbjornf
Verify that a new heap page isn't also marked as being off heap.
Attempt to diagnose a rare assert failure, where a conservative
GC stack scan finds a potential pointer in both the heap's
negative heap page cache and in the map of in-use heap pages.

Those two mapping should be mutually exclusive by construction,
and must be -- the negative page cache must not contain false
positives. Hence, add verification when a new page is committed
& used, it does not already have a mapping in that negative cache.

R=haraken
BUG=649485

Review-Url: https://codereview.chromium.org/2715713005
Cr-Commit-Position: refs/heads/master@{#452833}
sigbjornf
A per-heap RegionTree needs no lock.
R=keishi,haraken
BUG=671856

Review-Url: https://codereview.chromium.org/2717613004
Cr-Commit-Position: refs/heads/master@{#452814}
bratell
Add header guards to CanvasAsyncBlobCreator.h
R=fs

Review-Url: https://codereview.chromium.org/2711333002
Cr-Commit-Position: refs/heads/master@{#452812}
fs
Cleanup the SVGTreeScopeResources interface
After some previous refactoring, some methods no longer need to be
public, and some methods can be folded into others to avoid some hash-
lookups.
Also use HashMap::removeAll in removeElementFromPendingResources, change
some methods to use references and hide a longish typename with 'auto'.

BUG=454767

Review-Url: https://codereview.chromium.org/2705163008
Cr-Commit-Position: refs/heads/master@{#452645}
sigbjornf
Tidy ScriptRunner pending script handling.
R=hiroshige
BUG=686281

Review-Url: https://codereview.chromium.org/2710233002
Cr-Commit-Position: refs/heads/master@{#452619}
mstensho
Avoid negative content box sizes.
Negative values had two possible causes:

1. Subtracting the scrollbar size from the border box size. Scrollbars do not
affect the border box size, but they occupy space between some border edge and
padding edge. This means that the presence of a scrollbar on an object reduces
the size of the content box and the containing block established by said
object. This means that if e.g. the specified width of an object is 10px and it
has a vertical scrollbar that takes up more than that, e.g. 15px, the content
box width should become 0, not -5px.

2. Subtracting two huge (or even saturated) LayoutUnit values from one
LayoutUnit value. When we during layout convert a specified content-box width
to border-box (via padding-box), which is what LayoutBox::m_frameRect uses, we
may end up with saturated LayoutUnit values, so that:
LayoutUnit specified_content_box_width = <whatever, something nice, maybe>;
LayoutUnit left_padding = LayoutUnit::max() /*(or something huge, at least)*/;
LayoutUnit right_padding = LayoutUnit::max() /*(or something huge, at least);*/
LayoutUnit padding_box_width = content_box_width + left_padding + right_padding;
LayoutUnit content_box_width = padding_box_width - left_padding - right_padding;
Here, content_box_width won't be the same as specified_content_box_width,
because padding_box_width got saturated. That's kind of inevitable, with
saturated arithmetic and all, but what's worse is that we used to end up with a
negative value in content_box_width, which is illegal. So just clamp negative
values to 0 to avoid that.

Negative box sizes have various kinds of ill effects, such as inline-axis
misalignment and unwanted negative block direction progression. It was possible
to get negative padding (which is illegal) resolved from percentage values.
This in turn caused unnecessary assertion failures in multicol.

Attempted to come up with sensible layout tests that don't make assumptions
about how the engine deals with extreme values internally.

BUG=683554,683090

Review-Url: https://codereview.chromium.org/2716583002
Cr-Commit-Position: refs/heads/master@{#452578}
mstensho
Merge overflowRectForFlowThreadPortion() into flowThreadPortionOverflowRectAt().
No need to keep this in LayoutMultiColumnSet anymore. Also got rid of
unused method LayoutMultiColumnSet::flowThreadPortionOverflowRect().

No behavior changes intended.

Review-Url: https://codereview.chromium.org/2711003005
Cr-Commit-Position: refs/heads/master@{#452537}
sigbjornf
Avoid needless InstanceCounter.h inclusion.
Only needed if RefCounted<> is compiled specially.

R=
BUG=

Review-Url: https://codereview.chromium.org/2714703002
Cr-Commit-Position: refs/heads/master@{#452453}
fs
Move SVGElement::buildPendingResourcesIfNeeded to SVGTreeScopeResources
Move notification of a resource "appearing" to SVGTreeScopeResources,
naming the method notifyResourceAvailable().
Simplify the handling of the pending resources map to avoid unnecessary
hash-lookups in some cases.

BUG=454767

Review-Url: https://codereview.chromium.org/2710583005
Cr-Commit-Position: refs/heads/master@{#452187}
sigbjornf
DisplayItemClient: avoid hash table temporaries when iterating.
R=pdr.
BUG=
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Review-Url: https://codereview.chromium.org/2712703002
Cr-Commit-Position: refs/heads/master@{#452147}
sigbjornf
Avoid unnecessary HashTable resizing during copy construction.
We do know the final table size, so reserve its size before starting
to copy over. Thereby avoiding intermediate table allocations.

R=esprehn
BUG=

Review-Url: https://codereview.chromium.org/2715473004
Cr-Commit-Position: refs/heads/master@{#452060}
fs
Move LayoutSVGResourceContainer registration to SVGTreeScopeResources
Move LayoutSVGResourceContainer::registerResource to
SVGTreeScopeResources, renaming it to updateResource while getting rid
of addResource (since it's only called from updateResource.)
Simplify the interaction with the m_pendingResources set a bit, to
eliminate a hash-lookup in certain code-paths.

BUG=454767

Review-Url: https://codereview.chromium.org/2714473002
Cr-Commit-Position: refs/heads/master@{#452050}
sigbjornf
Remove unnecessary PagePool locks.
With per-thread heap (arenas), there will not be any contention
on adding and removing page pool entries.

R=haraken
BUG=671856

Review-Url: https://codereview.chromium.org/2707193004
Cr-Commit-Position: refs/heads/master@{#452023}
rune
Repaint selection when element with ::selection style is recalculated.
Selection was not repainted unless the selected text was repainted due
to other style changes. Now, if the ComputedStyle is recalculated for
an element and either the old or the new ComputedStyle had a bit set
for PseudoIdSelection, schedule paint invalidation for the selection
leaf children of that element.

Note that we don't need to traverse down the descendants because the
current implementation of ::selection in Blink only affects direct
children. The selection state is only propagated to containing block
ancestor, which is why we look for a containing block to check if any
of the children is selected.

R=mstensho@opera.com
BUG=685174

Review-Url: https://codereview.chromium.org/2709693003
Cr-Commit-Position: refs/heads/master@{#451992}
fs
Compute a more correct "screen scope" transform for SVGSVGElement
For getScreenCTM, only the position (translation) of the outermost svg
element was computed - any additional transform data was dropped.

Use LayoutObject::localToAbsoluteTransform to compute the full transform
rather than just the position of the layout box. Since using this method
works for any (attached) element, implement getScreenCTM without using
computeCTM, and get rid of the ScreenScope variant of the latter. This
also allows us to simplify SVGSVGElement::localCoordinateSpaceTransform
a bit, and drop the CTMScope argument from the
localCoordinateSpaceTransform declaration(s).

It's not clear from [1] how elements which are not in the rendering tree
(i.e has 'display: none' or similar) should be handled. With this
implementation we will return an identity matrix in those cases, which
doesn't seem unreasonable. (The option would be to return 'null', which
is how elements not in the document should be treated, but we don't have
that semantic implemented yet.)

[1] https://svgwg.org/svg2-draft/types.html#__svg__SVGGraphicsElement__getScreenCTM

BUG=678167

Review-Url: https://codereview.chromium.org/2711503002
Cr-Commit-Position: refs/heads/master@{#451938}
fs
Clean up the getLayoutSVGResource*ById helpers
Drop getLayoutSVGResourceContainerById helper, since we can just use
SVGTreeScopeResources::resourceById directly.

For getLayoutSVGResourceById, rather than calling through
TreeScope::ensureSVGTreeScopedResources, just pass the
SVGTreeScopeResources and do the lookup from there. Said object is
already available in the relevant places (only the layout tree dumping
needs to be updated wrt that.)

BUG=454767

Review-Url: https://codereview.chromium.org/2708543003
Cr-Commit-Position: refs/heads/master@{#451839}
sigbjornf
Disallow cross-thread Persistent<> read access.
A Persistent<> reference is belongs to the thread that created it,
read and write access must only be performed by that thread.

Debug verification have been in place for some time to verify that Persistent<>
updates only happen on its creation thread, and that the updated heap pointer
resides on that thread's heap. Extend the debug checks to also apply to read
access, checking that no other thread accesses the Persistent<>.

This requires converting a handful of Persistent<>s to CrossThreadPersistent<>s.

R=haraken
BUG=693988

Review-Url: https://codereview.chromium.org/2702243003
Cr-Commit-Position: refs/heads/master@{#451753}
sigbjornf
Gracefully handle navigator.getVRDisplays() in detached contexts.
R=haraken
BUG=686602

Review-Url: https://codereview.chromium.org/2703283003
Cr-Commit-Position: refs/heads/master@{#451734}
sigbjornf
Simplify MediaStreamAudioSourceNode ownerships.
The processing that happens on the audio thread for this object
doesn't access the MediaStream. Hence the reference to it and the
track can be kept directly on the node object, thereby avoiding the
use of a pair of Persistent<>s.

R=haraken
BUG=693988

Review-Url: https://codereview.chromium.org/2699403002
Cr-Commit-Position: refs/heads/master@{#451726}
mwrobel
Make Editor::findEventTargetFrom() to align Clipboard API specification
This patch changes |Editor::findEventTargetFrom()| to return focused element if
selection start is not editable to align Clipboard API specification[1] for
improving interoperability.

[1] https://w3c.github.io/clipboard-apis/#to-fire-a-clipboard-event

BUG=690104
TEST=webkit_unittests --gtest_filter=ClipboardEventFlowTest.*

Review-Url: https://codereview.chromium.org/2685723005
Cr-Commit-Position: refs/heads/master@{#451716}
fs
Rewrite svg/zoom/page/zoom-get-screen-ctm.html to use testharness
In preparation for some future tweaks to this test.

BUG=678167

Review-Url: https://codereview.chromium.org/2708493003
Cr-Commit-Position: refs/heads/master@{#451657}
rune
Remove unused processedBlocks variable.
R=mstensho@opera.com

Review-Url: https://codereview.chromium.org/2702233003
Cr-Commit-Position: refs/heads/master@{#451651}
fs
Disable flaky compositing/reflections/nested-reflection-* tests
The following two tests appear to produce slightly different results
(different offsets?) somewhat randomly:

 compositing/reflections/nested-reflection-anchor-point.html
 compositing/reflections/nested-reflection-animated.html

TBR=cfroussios@chromium.org
NOTRY=true
BUG=693510

Review-Url: https://codereview.chromium.org/2702343002
Cr-Commit-Position: refs/heads/master@{#451635}
sigbjornf
Removed dated Persistent<>::checkPointer() assert.
Remove the ASan-only verification that a Persistent<> refers to a heap
object. Static asserts will ensure that Persistent<T> is only instantiated
for GCed types, so this verification adds little extra value.

R=haraken
BUG=

Review-Url: https://codereview.chromium.org/2701273002
Cr-Commit-Position: refs/heads/master@{#451580}
rune
Invalidate custom pseudo elements for RuleSet invalidations.
When we have selectors containing custom pseudo elements matching
elements inside the UA shadow, and no id, class, or attribute selectors
present, do like we do for type selectors and invalidate as part of an
invalidation set scheduled on the root node of the tree scope for
RuleSet invalidations.

We utilize the same invalidation set as for type invalidations and mark
it as invalidating custom pseudo elements as well as marking it as
tree-boundary-crossing to allow drilling into the UA shadow.

This means we will traverse into all shadow sub-trees, but it should at
least be better than the existing recalc all behavior.

The full recalc for custom pseudo elements caused a full recalc for one
of the stylesheets on facebook.com.

R=ericwilligers@chromium.org
BUG=680549

Review-Url: https://codereview.chromium.org/2700943003
Cr-Commit-Position: refs/heads/master@{#451578}
mstensho
Add out-of-flow objects under the inline in a continuation chain, when possible.
The same goes for floating objects. Only when a floating or out-of-flow
positioned object is to be added between two block-level children should we add
it to the anonymous block box holding the block-level children. If the new
child is to be added before a block-level child, and this beforeChild is the
first block-level child, we should rather make the new child the last child of
the preceding inline, rather than the first child of the anonymous block
containing block-level children.

Also cleaned up and documented the code somewhat.

BUG=689643

Review-Url: https://codereview.chromium.org/2698243002
Cr-Commit-Position: refs/heads/master@{#451525}
rune
Schedule a type selector invalidation set for RuleSet invalidations.
We marked all elements which had a selector in the tagRules bucket for
style recalc for RuleSet invalidations. That means we would recalculate
style for all spans if we added a stylesheet containing a rule with an
"#id span" selector (but not for "#id span.class" as that ends up in
the classRules bucket).

Instead, use an invalidation set containing only tag names for the
selectors where there are no ids, classes, or attribute selectors, and
which have a type selector in the rightmost compound. This means that
"#id span" will not add "span" to that set, but "span" and "div span"
will. "div span" will not add "div", and "div *" will cause a full
scope recalc. In order to support invalidation for those, we would have
had to have one invalidation set for each tag name instead of a single
descendant invalidation set for all.

RuleSet invalidations schedule this typeRuleInvalidationSet on the root
of the TreeScope When doing ruleset invalidations.

BUG=680549

Review-Url: https://codereview.chromium.org/2703643003
Cr-Commit-Position: refs/heads/master@{#451488}
fs
Use unique id's in svg/filters/feBlend-all-modes.html
The same id's would be reused in all the three groups (color
combinations.) Add the group index to the id's to avoid this.

BUG=454767

Review-Url: https://codereview.chromium.org/2703803003
Cr-Commit-Position: refs/heads/master@{#451483}
mstensho
Avoid over-eager clipping of child layers in multicol.
Self-painting layers (caused by e.g. position:relative) don't contribute to
visual overflow in their parent layout object; see
LayoutBox::addOverflowFromChild(). We cannot use the visual overflow rectangle
set on the flow thread when calculating the bounding box of a fragment
established by a child layer.

Therefore, only clip in the flow thread's block direction in
overflowRectForFlowThreadPortion(), and leave the inline axis alone. I
simplified the implementation, since it's now way easier to start with an
infinite rectangle, and just limit the dimensions that need it afterwards.

Also got rid of an old check for hasOverflowClip(), which must have been
residue from the CSS regions implementation.

This also happened to fix some inaccuracies mostly invisible to the naked
eye, when it comes to transform:scale()d text with glyphs that have negative
left bearing or overflow the line box vertically. It looks like we measure and
lay out with the CSS computed font, and then switch to a scaled font when
painting, so that it looks crisp and nice. This may result in tiny
inaccuracies in the bounding box of the text, and
fast/borders/border-antialiasing.html exhibited this, and had to be
rebaselined. Added fast/multicol/scale-transform-text.html to better
demonstrate what we're fixing.

paint/invalidation/multicol-with-relpos.html also had to be rebaselined,
since it turns out that it has never painted its stuff correctly until now.

BUG=571978

Review-Url: https://codereview.chromium.org/2699653002
Cr-Commit-Position: refs/heads/master@{#451376}
rune
Remove stray method declaration in RuleFeatureSet.
Review-Url: https://codereview.chromium.org/2703693002
Cr-Commit-Position: refs/heads/master@{#451307}
sigbjornf
Tidy DEFINE_(THREAD_SAFE_)STATIC_LOCAL() implementations.
Move the handling of static local singletons into the
WTF::StaticSingleton<T> wrapper class, including the "same thread"
debug verification.

Use it to also implement the "thread safe" variant also, which can
now be done in a straightforward manner after issue 686866 enabled
C++ thread safe statics.

R=kinuko
BUG=686866

Review-Url: https://codereview.chromium.org/2680843006
Cr-Commit-Position: refs/heads/master@{#451305}
mstensho
Don't keep pointers to table sections when told to recalculate sections.
They may have been deleted.

We should ideally assert in header(), footer() and firstBody() in LayoutTable
that we're not waiting for a section recalc, but that's currently failing in one
trybot; see crbug.com/693212

This would have fixed the original use-after-free issue with bug 680224, but
before this CL landed, I found another fix that attacked the root cause instead.
Still no point in keeping potentially dead pointers around, though.

BUG=680224

Review-Url: https://codereview.chromium.org/2636153002
Cr-Commit-Position: refs/heads/master@{#451257}
rune
Add type selector invalidation set for ruleset invalidations.
We currently look at RuleSet::tagRules() to figure out if an element
needs a style recalc when adding a stylesheet. This recalculates too
much for rules like "#id span" which ends up in the tagRules bucket,
causing style recalcs for every span. The plan is to use an
m_typeRuleInvalidationSet which contains the tag names for rules which
don't contain other simple selectors which have associated invalidation
sets.

For instance, "#id span" will not add span to m_typeRuleInvalidationSet
since we can rely on the invalidation set for #id to invalidate spans.
However, "span" or "div span" will add span to that set.

This CL prepares for this by introducing the set and a way to collect
it. This new set will be scheduled on the root node of the TreeScope
when adding/removing a stylesheet. We did not support scheduling
invalidation sets on the document node, so this CL adds that
possibility as well.

BUG=680549

Review-Url: https://codereview.chromium.org/2699883002
Cr-Commit-Position: refs/heads/master@{#451170}
sigbjornf
document.lastModified: treat invalid dates like unknown ones.
If the value supplied via Last-Modified: is unparseable, treat the
modification date as unknown and return the current time (rather than
00-00-0000 00:00:00)

This aligns behavior with all other browsers.

R=foolip
BUG=693053

Review-Url: https://codereview.chromium.org/2698773005
Cr-Commit-Position: refs/heads/master@{#451123}
sigbjornf
Remove unused blink_gc_plugin_flags.py script.
Became unused with GN, now safe to remove.

R=dcheng,thakis
BUG=

Review-Url: https://codereview.chromium.org/2691943009
Cr-Commit-Position: refs/heads/master@{#451056}
mstensho
Less code duplication in PaintLayer::collectFragments()
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Review-Url: https://codereview.chromium.org/2691303004
Cr-Commit-Position: refs/heads/master@{#450737}
fs
Don't clear 'web animations dirty' flag if we have no rare data
If an SVGElement has an instantiated ElementAnimations object and
animation time has progressed, but no actual animation has been applied
(and hence no SVGElementRareData has been created), we don't need to
clear the dirty bit in the rare data.
The initial trigger for this seems to be the Element.computedName
implementation for a detached node, which tries to compute style in
this case, triggering a DCHECK in Node::containingTreeScope when doing
so.

BUG=686424

Review-Url: https://codereview.chromium.org/2689713003
Cr-Commit-Position: refs/heads/master@{#450689}
karlo
Reorder setting of zooming, to prevent reflowing and size mismatch.
When zooming is applied to the document, the color suggestion picker can lose
or gain bottom pixels, which causes missing borders or rendering artifacts.

This appears to be caused by some unfortunate assumptions and interactions
in Source/web/resources/colorSuggestionPicker.js and friends.

The color picker is a separate window, and the contents of the window is
generated in ColorChooserPopupUIController.cpp.  colorSuggestionPicker.js
resizes the window to exactly fit the content, but the zoom factor is applied
afterwards, causing an additional reflow (see WebPagePopupImpl.cpp:329).
There is no guarantee that the zoomed contents will fit the window any more,
and much of the time it doesn't.

By setting zoom factor before forcing layout, the final size is reached the first
time around, and the window size should be correct.

BUG=691375

Review-Url: https://codereview.chromium.org/2695723002
Cr-Commit-Position: refs/heads/master@{#450513}
fs
Actually delegate in additional FilterEffectBuilder constructor
Because url(...) filters are ignored/dropped this will not have any
practical effect, but could avoid issues in the future.

BUG=593838
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Review-Url: https://codereview.chromium.org/2692883003
Cr-Commit-Position: refs/heads/master@{#450374}
fs
Remove unused includes of SVGDocumentExtensions.h
Review-Url: https://codereview.chromium.org/2696803002
Cr-Commit-Position: refs/heads/master@{#450334}
mstensho
ColumnBalancer: need to examine lines that protrude into the flow thread portion.
We cannot skip a line that starts before the flow thread portion of interest,
if it ends inside the portion.

Some extra care is needed to avoid regressions here: The part of a line that
starts before the multicol container itself needs to be ignored, or we risk
overstretching the multicol container.

BUG=642181

Review-Url: https://codereview.chromium.org/2690863003
Cr-Commit-Position: refs/heads/master@{#450033}
karlo
Support subpixel layout of borders.
This cl implements subpixel layout of borders.  Painting of subpixel
borders now uses rounding to nearest CSS pixel, and is aligned with
Edge.  Handling of device pixel ratios > 1 isn't implemented here,
and is better covered in a separate task.

This does not implement subpixel borders for tables, as that interacts
with table layout width calculations, which would also need to be
adapted to subpixels.  Again, that's better dealt with in a separate
task.

A number of test cases had to be rebaselined, due to minor changes in
layout and/or painting.  Most of these changes appear in tests that uses
zooming, and implicitly have fractional borders.

svg/zoom/page/zoom-replaced-intrinsic-ratio-001.htm now looks a bit
broken, but that's due to an unrelated issue with aspect ratio and
subpixels (in LayoutPart, if I recall correctly).

BUG=227192
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Review-Url: https://codereview.chromium.org/2640143005
Cr-Commit-Position: refs/heads/master@{#449943}
sigbjornf
Fix partition_alloc unit tests.
R=haraken
BUG=691197, 684513

Review-Url: https://codereview.chromium.org/2689103002
Cr-Commit-Position: refs/heads/master@{#449892}
sigbjornf
Tie DragState to DragController.
Clarify ownership & scope of DragState and have the page's
DragController own it.

R=dcheng
BUG=688569

Review-Url: https://codereview.chromium.org/2687193004
Cr-Commit-Position: refs/heads/master@{#449889}
fs
Remove TextTrack.regions and VTTRegionList
Removed from the WebVTT spec https://github.com/w3c/webvtt/pull/31

Because we no longer need to track a list of regions in TextTrack, we
can also remove all the plumbing between the parser and the (loadable)
TextTrack.

BUG=690014

Review-Url: https://codereview.chromium.org/2685943004
Cr-Commit-Position: refs/heads/master@{#449791}
fs
Various cleanups in VTTRegion
 * Eliminate single-use pseudo-id functions (and associated statics)

 * Avoid redundant calls to getBoundingClientRect, and use
   ClientRect::height where appropriate.

 * Allow using ElementTraversal::childrenOf in
   VTTRegion::displayLastVTTCueBox by putting a break after
   startTimer().

 * Get rid of VTTRegion::m_settings and updateParametersFromRegion
   (they are not used.)

 * Replace 'long' with 'int' for lines, because that matches the
   WebIDL type better.

 * Remove unused includes (add more specific ones when needed.)

Review-Url: https://codereview.chromium.org/2689703002
Cr-Commit-Position: refs/heads/master@{#449790}
mstensho
Specify orphans:1 and widows:1 in old multicol test.
The test and the ref rendered identically, but it didn't look as asserted by
the textual pass condition.

Review-Url: https://codereview.chromium.org/2692453002
Cr-Commit-Position: refs/heads/master@{#449637}
fs
Implement VTTCue.region and sync the VTTRegion interface
This CL implements the VTTCue.region property, replacing 'regionId'. The
main implementation mechanism is a new map in VTTParser that tracks the
regions currently seen.

Rewrite the region parser test to be based on cues rather than the list
of regions. This will ease the removal of TextTrack.regions.

Sync the VTTRegion with the current spec by

 * renaming the 'height' property to 'lines',

 * adding and using the ScrollSetting IDL enumeration type and

 * dropping the 'id' and 'track' properties.

Update tests as needed to match the above changes.

BUG=690014

Review-Url: https://codereview.chromium.org/2682333002
Cr-Commit-Position: refs/heads/master@{#449589}
sigbjornf
Prevent icf/comdat folding for OOM_CRASH() entry points.
We have various OOM-failure entry points which call OOM_CRASH() but
not much more. These are all NO/NEVER_INLINEd, but that isn't sufficient
to prevent the linker from common'ing up these identical functions
(see associated bug for an example), leading to confused crash stacks.

Avoid invasive linker optimization by adopting r306650 to OOM_CRASH().

R=haraken,primiano
BUG=690447

Review-Url: https://codereview.chromium.org/2683033008
Cr-Commit-Position: refs/heads/master@{#449582}
sigbjornf
Move VisitorMarkingMode into Visitor.
Move this enum back into Visitor where it better belongs; recent
simplifications to the marking visitor implementation class types
makes that a trivial exercise.

R=haraken
BUG=671856

Review-Url: https://codereview.chromium.org/2688083002
Cr-Commit-Position: refs/heads/master@{#449568}
mstensho
Stay within the containing block when looking for a line to dirty.
BUG=686469

Review-Url: https://codereview.chromium.org/2686913002
Cr-Commit-Position: refs/heads/master@{#449237}
fs
Remove TextTrack.{add,remove}Region
Removed from the spec by https://github.com/w3c/webvtt/pull/31

BUG=690014

Review-Url: https://codereview.chromium.org/2684993003
Cr-Commit-Position: refs/heads/master@{#449140}
sigbjornf
blink_gc_plugin: warn of unused trace methods to stack allocated classes.
A STACK_ALLOCATED()-annotated class does not need a trace method; issue
a warning if encountered.

R=haraken
BUG=689874

Review-Url: https://codereview.chromium.org/2685583002
Cr-Commit-Position: refs/heads/master@{#449046}
fs
SVGTransformList.consolidate() should return null on an empty list
SVGTransformList.consolidate() returns an SVGTransform with type
"unknown", which is an invalid object that other parts of the code
couldn't cope with. The specification:

 https://svgwg.org/svg2-draft/coords.html#__svg__SVGTransformList__consolidate

say that 'null' should be returned in this case though, so do that
instead.

Rewrite svg/dom/SVGTransformList-empty-list-consolidation.html to use
actually assert this part of the contract, and also convert it use
testharness.js while at it.

BUG=688306, 688303

Review-Url: https://codereview.chromium.org/2681803004
Cr-Commit-Position: refs/heads/master@{#448994}
rune
Clear MatchedPropertiesCache on StyleRule changes.
CSSOM changes used to cause a FullStyleUpdate which cleared the whole
StyleResolver. With the new active stylesheet update using RuleSet-
based style invalidation, clearing the MatchedPropertiesCache was
missing. The reason it needs to be cleared, is that the hash key for
the cache entry is based on StylePropertySet pointers which don't
change when adding/removing declarations to a mutable StylePropertySet.

R=meade@chromium.org
BUG=681183

Review-Url: https://codereview.chromium.org/2679623002
Cr-Commit-Position: refs/heads/master@{#448939}
sigbjornf
blink_gc_plugin: report illegal on-heap iterators as warnings/errors.
Fix classification bug, when encountered this should be reported as a
warning/error, not as a supplementary note.

R=
BUG=

Review-Url: https://codereview.chromium.org/2681753002
Cr-Commit-Position: refs/heads/master@{#448932}
fs
Remove faulty assertion in LayoutSVGResourceContainer::registerResource
When notifying pending elements we don't know what resource type the
registration is for, so it's entirely plausible that the resource type
is one that a possible client isn't really interested in (like a 'mask'
ending up pointing to a <filter>, like in this particular case.)

BUG=687985

Review-Url: https://codereview.chromium.org/2680683003
Cr-Commit-Position: refs/heads/master@{#448688}
sigbjornf
Remove trace() methods for stack-only classes.
A class annotated with STACK_ALLOCATED() does not require a trace
method, as its heap references are reachable and kept alive by virtue
of being on the stack, should any conservative GC go ahead.

R=haraken
BUG=

Review-Url: https://codereview.chromium.org/2685563002
Cr-Commit-Position: refs/heads/master@{#448627}
sigbjornf
Track constant InputDeviceCapabilities objects per-window.
Do not keep global main thread Persistent<>s for the two
constant InputDeviceCapabilities objects, as that will
end up sharing wrapper objects across contexts.

R=dcheng
BUG=688569

Review-Url: https://codereview.chromium.org/2675793005
Cr-Commit-Position: refs/heads/master@{#448597}
sigbjornf
Out-of-line trace() methods of editing template types.
With a simpler trace method infrastructure in place, we
can now define trace methods of the editing templates
out-of-line.

R=haraken
BUG=654985

Review-Url: https://codereview.chromium.org/2672413003
Cr-Commit-Position: refs/heads/master@{#448563}
sigbjornf
Add missing documentation for Allocator.h macros + EAGERLY_FINALIZE().
R=haraken
BUG=662326

Review-Url: https://codereview.chromium.org/2672273002
Cr-Commit-Position: refs/heads/master@{#448234}
sigbjornf
Have SubframeLoadingDisabler singleton live off-heap.
Primarily to diagnose potential heap corruption, keep
track of the disabled set off-heap. The untraced references
added aren't unsafe, as they are all stack-reachable by
construction.

R=dcheng,haraken
BUG=684551

Review-Url: https://codereview.chromium.org/2667853006
Cr-Commit-Position: refs/heads/master@{#447682}
sigbjornf
Disallow sequences with lengths exceeding max allocation supported.
Vector backing stores are limited in size by the maximum allowed by
their allocator. When converting incoming IDL sequence types into
native arrays, check if the requested size exceed that max limit and
throw a TypeError(), if needed.

Only pathological inputs will run up against this limit and exception.

R=
BUG=682910

Review-Url: https://codereview.chromium.org/2657173002
Cr-Commit-Position: refs/heads/master@{#447466}
mstensho
Remove unused declarations of pageLogicalHeight.
BUG=686648

Review-Url: https://codereview.chromium.org/2664063003
Cr-Commit-Position: refs/heads/master@{#447323}
sigbjornf
Change HeapCompaction feature status to stable.
R=
BUG=672030

Review-Url: https://codereview.chromium.org/2653413002
Cr-Commit-Position: refs/heads/master@{#447248}
ckulakowski
Chromium doesn't compile with -Wglobal-constructors
We compile chromium with clang flag -Wglobal-constructors in our
project. We have following compilation error during compilation
of user_input_tracker.cc:

../../chrome/browser/page_load_metrics/user_input_tracker.cc:27:11:
error: declaration requires a global constructor [-Werror,-Wglobal-constructors]
const int kRateLimitClampMillis = (kOldestAllowedEventAgeSeconds * 1000) /

In order to get rid of this global constructor I recommend to declare
static class variable UserInputTracker::kMaxTrackedEvents and global
variable kRateLimitClampMillis as constexpr which will be expanded to
numerical value during compilation.

BUG=686669

Review-Url: https://codereview.chromium.org/2662803002
Cr-Commit-Position: refs/heads/master@{#447000}
sigbjornf
Tidy generated toMemberNativeArray<>() invocations.
R=haraken
BUG=682910

Review-Url: https://codereview.chromium.org/2654143006
Cr-Commit-Position: refs/heads/master@{#446662}
sigbjornf
Cleanly detach XHR and other pending loader clients from Inspector.
If the XHR object is finalized without first being notified of
ExecutionContext destruction, its prefinalizer is responsible for making
up the difference and behave as if that did.

Do so by delegating to contextDestroyed(); this takes care of
releasing its resources promptly, along with unregistering as
a loader client (with its associated async loader and Inspector.)

Also make other Inspector loading clients cleanly detach when
finalized; prevents Inspector from keeping dead raw pointers to them.

R=yhirano,haraken
BUG=667254

Review-Url: https://codereview.chromium.org/2649323005
Cr-Commit-Position: refs/heads/master@{#446660}
fs
Don't paint selections in <mask>s, <clipPath>s and <pattern>s
Painting a selection within a <mask>, <clipPath> or <pattern> can
trigger a client "style change" to update the resource cache with
whatever the selection style refers to. This "style change" signal will
trigger a layout on the resource's clients while painting.
Since painting selections within these types of resources, add a
PaintLayerFlag and use it to disable selection painting in these cases.
Include the painting of elements references from feImage as well under
the same umbrella.

BUG=683388
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Review-Url: https://codereview.chromium.org/2648343004
Cr-Commit-Position: refs/heads/master@{#446318}
sigbjornf
Remove trace frame template specialization.
More tidying after r445993, only one instantiation of these method
templates.

R=haraken
BUG=683019

Review-Url: https://codereview.chromium.org/2654243002
Cr-Commit-Position: refs/heads/master@{#446302}
sigbjornf
Float32ImageData, PerformanceObserver: no finalization needed.
R=haraken
BUG=

Review-Url: https://codereview.chromium.org/2652393002
Cr-Commit-Position: refs/heads/master@{#446289}
sigbjornf
Emit trace(Visitor*) rather than a templated trace().
One trace() method will now suffice, simplify generated code.

R=haraken
BUG=683019

Review-Url: https://codereview.chromium.org/2653153003
Cr-Commit-Position: refs/heads/master@{#446262}
sigbjornf
blink_gc_plugin: retire overloaded traceImpl detection and handling.
With the specialized InlineGlobalMarkingVisitor gone (r445993), Blink no
longer use a templated traceImpl() method for its trace methods. Follow
up and remove the checks for it in the GC plugin.

R=
BUG=683019

Review-Url: https://codereview.chromium.org/2655933002
Cr-Commit-Position: refs/heads/master@{#446137}
rune
Return ActiveSheetsChanged when rulesets change in common prefix.
When comparing old and new active sheets, we only append the added
sheets to the ScopedStyleResolver if the old sheet vector is a prefix
of the new sheets. However, that's not correct if any of the RuleSets
in the common prefix changed due to media query changes or cssom
modifications of a stylesheet.

I can confirm that this fixes 681472. The other two issues in the BUG
field look like duplicates, but I've not been able to reproduce them.

R=meade@chromium.org,sashab@chromium.org
BUG=681472,677371,681882

Review-Url: https://codereview.chromium.org/2650743002
Cr-Commit-Position: refs/heads/master@{#446008}
sigbjornf
Revert of Add null check to animations for registered custom property initial values (patchset #2 id:20001 of https://codereview.chromium.org/2649863006/ )
Reason for revert:
This goes together with the revert https://codereview.chromium.org/2649103008/ ; looks like the two CLs didn't match up,

 https://build.chromium.org/p/chromium.webkit/builders/WebKit%20Mac10.10/builds/29275

(Hope the double revert doesn't cause too much work.)

Original issue's description:
> Add null check to animations for registered custom property initial values
>
> After a recent change to CSSInterpolationType for registered custom properties
> it was assumed that all registered custom properties had initial CSSValues.
> This is not the case and null derefs were reachable. This patch fixes up
> the false assumption.
>
> BUG=684234
>
> Review-Url: https://codereview.chromium.org/2649863006
> Cr-Commit-Position: refs/heads/master@{#445969}
> Committed: https://chromium.googlesource.com/chromium/src/+/f2ec8922cbe5f632a937cf242faf5f23c0d1b3ff

TBR=ericwilligers@chromium.org,alancutter@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=684234

Review-Url: https://codereview.chromium.org/2650403002
Cr-Commit-Position: refs/heads/master@{#445996}
sigbjornf
Revert of Add smooth interpolation support for <color> custom properties (patchset #5 id:80001 of https://codereview.chromium.org/2564793002/ )
Reason for revert:
Added test is seen failing on the bots, e.g.,

 https://build.chromium.org/p/chromium.webkit/builders/WebKit%20Linux%20Trusty/builds/22494
 https://build.chromium.org/p/chromium.webkit/builders/WebKit%20Mac10.11/builds/15502

Original issue's description:
> Add smooth interpolation support for <color> custom properties
>
> This change enables smooth interpolation for animations on
> custom properties registered as <color>.
>
> This does not add support for CSS Transitions, only CSS
> Animations and Web Animations.
> This does not add support for currentcolor for CSS Animations,
> supporting this may require further redesigns to style resolution.
>
> BUG=671904
>
> Review-Url: https://codereview.chromium.org/2564793002
> Cr-Commit-Position: refs/heads/master@{#445967}
> Committed: https://chromium.googlesource.com/chromium/src/+/96bee2c42c8df73523e971850215d29d1c40c15f

TBR=sashab@chromium.org,alancutter@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=671904

Review-Url: https://codereview.chromium.org/2649103008
Cr-Commit-Position: refs/heads/master@{#445994}
sigbjornf
Devirtualize Visitor and remove inline visitor specialization.
The Blink GC infrastructure requires its managed objects to provide
a "trace()" method which will visit all the heap references it keeps
into the Blink GC heap, by calling the "trace()" method on each of
these via an incoming |visitor| argument (a Visitor.)

The Visitor interface is really only used for that, i.e., to perform GC
marking, so the flexibility it provides by way of overridable virtual
methods, is unused. And it slows down the GC marking phase, something
the specialized "inline visitor" (InlineGlobalMarkingVisitor) demonstrated,
which devirtualized the mark() method, with noticable improvements to
overall GC marking times.

Given that and Visitor's use, devirtualize Visitor entirely and make
it a GC marking visitor and nothing else. Besides removing code complexity,
this also allows the removal of InlineGlobalMarkingVisitor along with
all the specialized trace() implementation methods that we emit for each
Blink GC managed object.

Performance numbers show a ~10% improvement on marking times for
oilpan_gc_times.{tough_animation_cases, blink_perf_stress}; code size
(Android(ARM) official build, content shell) is 180k less.

R=
BUG=683019

Review-Url: https://codereview.chromium.org/2652923002
Cr-Commit-Position: refs/heads/master@{#445993}
fs
Don't "repack" parameters in SVGElement::attributeChanged
Instead of making a AttributeModificationParams which always uses the
"directly" modification reason, just forward the original reason.
The 'reason' argument was added by [1] which did not indicate why SVG
elements would be subject to different treatment than regular elements.

[1] https://codereview.chromium.org/14234005

Review-Url: https://codereview.chromium.org/2652653002
Cr-Commit-Position: refs/heads/master@{#445698}
mstensho
Merge list of orthogonal writing mode roots into depth-ordered layout list.
If we're going to perform a series of subtree layouts, rather than one layout
from LayoutView, and we at the same time have a list of orthogonal writing mode
roots that need to be laid out before their ancestors, we need to make sure
that subtrees are laid out in an overall tree depth ordered manner, or we risk
skipping layout of a subtree needing layout. That would cause trouble for the
column balancer (which examines the tree after layout and expects everything to
be laid out), and quite possibly other kinds of trouble elsewhere too.

BUG=680224

Review-Url: https://codereview.chromium.org/2635143003
Cr-Commit-Position: refs/heads/master@{#445497}
mstensho
Don't cancel out scroll offset when calculating the clip rectangle for multicol.
We still want the clip rect to be relative to the multicol container, but we
cannot get there by using the location() of the flow thread's PaintLayer,
because then we'll then cancel out the scroll offset that's also baked into
offsetOfPaginationLayerFromRoot.

This CL will cause paint/invalidation/paged-with-overflowing-block-rl.html to
regress, but it turned out that it just passed by accident anyway. Having that
test broken is way less serious than barely being able to scroll at all in a
regular multicol container.

BUG=674640
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Review-Url: https://codereview.chromium.org/2643123004
Cr-Commit-Position: refs/heads/master@{#445478}
fs
Move 'id'-related invalidation to SVGElement::attributeChanged
There's no reason for 'id'-related invalidation to reside in
SVGElement::svgAttributeChanged since it has no interaction with an
(animated) SVG DOM attribute. Move it to SVGElement::attributeChanged
instead.
This will also enable us to make use of the old/new value that is
available in attributeChanged().

BUG=454767

Review-Url: https://codereview.chromium.org/2645383002
Cr-Commit-Position: refs/heads/master@{#445393}
fs
SVG objects with same idrefs conflict when under different shadow root
When SVG idrefs are the same, even though the
LayoutSVGResourcesContainers are created under different shadow roots,
they conflict and only the last one is available. The problem is that,
currently, the HashMap mapping id's to LayoutSVGResourcesContainers are
owned/scoped to the document instead of the treeScope.
This CL moves that hash map from document to treeScope, so that
LayoutSVGResourcesContainers with the same id in different shadow roots
won't conflict.

Currently the following 2 maps (which are wrapped into the
SVGDocumentExtensions class) are owned by document instead of treeScope:

  HashMap<AtomicString, LayoutSVGResourceContainer*> m_resources;
  HeapHashMap<AtomicString, Member<SVGPendingElements>> m_pendingResources;

Thus when a new LayoutSVGResourcesContainer with the same id is created,
it is inserted into m_resources and overwrites the one with the same
key (id).

This CL separates these 2 maps from SVGDocumentExtensions and wrap them
into a new class (named SVGTreeScopeResources), and lets TreeScope have
them as a member variable (m_svgTreeScopedResources).
This CL also moves the corresponding methods accessing these 2 maps into
the new class.

To make this work together with <use>, we need to make sure to use the
TreeScope of the "original" element. Move the helper from LayoutSVGTextPath
to SVGElement::treeScopeForIdResolution and then use that for this.

Based on https://codereview.chromium.org/2107153002 by Taijin Tei.

BUG=597080

Review-Url: https://codereview.chromium.org/2633143002
Cr-Commit-Position: refs/heads/master@{#445378}
tommyt
PaymentApp: Implement invokePaymentApp for Android
This change implements the
ServiceWorkerPaymentAppBridge.invokePaymentApp() function along with the
corresponding native InvokePaymentApp() function.

The signature of PaymentInstrument.invokePaymentApp() has also been
changed to add the payment details modifiers field, and to align the
ordering and naming of the arguments with the definition of the
PaymentAppRequest dictionary in the specification:

    https://w3c.github.io/webpayments-payment-apps-api/#sec-app-request

BUG=669876

Review-Url: https://codereview.chromium.org/2640743005
Cr-Commit-Position: refs/heads/master@{#445301}
sigbjornf
Disable g++ inlining of eager-tracing mark() method.
Versions of g++ (with -Os) are over-eager about inlining the mark()
method that's used for all non-mixin Oilpan objects, resulting in
a code size increase that's unwanted (for Android official builds.)
Other compilers and g++ (with -O2/-O3) are more discriminate about
inlining the method, with no comparable code size increase delta.

Tuning the compiler's optimization option set to avoid the problem
hasn't proven successful, so bluntly address the problem by disabling
inlining for the method.

R=haraken
BUG=681991

Review-Url: https://codereview.chromium.org/2643403003
Cr-Commit-Position: refs/heads/master@{#445288}
rune
Initially load new_tab.css with a timestamp for chrome://apps.
This is what incognito_tab.html already does. Changing the url to add a
timestamp query on DOMContentLoaded caused a FoUC.

BUG=681495
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:closure_compilation

Review-Url: https://codereview.chromium.org/2647653002
Cr-Commit-Position: refs/heads/master@{#445285}
sigbjornf
Have VisitorHelper<> handle moving object registration.
As the registration of objects is only done by a compacting
GC, there isn't any need to be indirect about registering
them - remove a layer of Visitor virtual methods and have
the VisitorHelper<> do the registration directly.

R=haraken
BUG=681991

Review-Url: https://codereview.chromium.org/2642933005
Cr-Commit-Position: refs/heads/master@{#445245}
perja
Enable more unittests for BlueZ and ChromeOS.
This patch fixes an issue with the DBUS naming needed for the generic unittests.
This again made it possible to enable a couple of more tests for BlueZ and
ChromeOS.

Review-Url: https://codereview.chromium.org/2640883002
Cr-Commit-Position: refs/heads/master@{#445117}
fs
'*' is not a valid attribute selector
Per the CSS Selectors specification [1], a '*' is not allowed as the
name of an attribute.

[1] https://drafts.csswg.org/selectors-4/#typedef-attribute-selector

BUG=681814

Review-Url: https://codereview.chromium.org/2646493002
Cr-Commit-Position: refs/heads/master@{#445046}
wdzierzanowski
Stop requiring a reader in MultibufferDataSource::SetBitrateTask()
Callers of MultibufferDataSource::SetBitrate() must not be required to
be aware of whether or not there is a |reader_| available, because
that's internal MultibufferDataSource state that changes for several
reasons, some of which aren't necessarily visible to the client calling
SetBitrate(), e.g., OnBufferingHaveEnough().

Note that UpdateBufferSizes(), called from SetBitrate(), handles the
case of a null |reader_| gracefully.

Review-Url: https://codereview.chromium.org/2647483003
Cr-Commit-Position: refs/heads/master@{#444867}
fs
Add SVGResources helper for resource-bounds invalidation
Add a new helper method removeClientFromCacheAffectingObjectBounds to
SVGResources to better describe the intention of code that performs this
operation (removeFromCacheAndInvalidateDependencies.) It also makes
LayoutSVGResourceContainer not depend on its derived classes.
Also make use of it in the generic SVGResources::removeClientFromCache.

Review-Url: https://codereview.chromium.org/2647443004
Cr-Commit-Position: refs/heads/master@{#444811}
fs
Serialize type and attribute selectors as identifiers
Per [1], both the element name of a type selector and the attribute name
of an attribute selector - as well as their corresponding namespace
prefix (if any) - should be serialized as identifiers [2].

[1] https://drafts.csswg.org/cssom/#serialize-a-simple-selector
[2] https://drafts.csswg.org/cssom/#serialize-an-identifier

BUG=681814

Review-Url: https://codereview.chromium.org/2645563002
Cr-Commit-Position: refs/heads/master@{#444766}
sigbjornf
Adjust placement of non-compaction checks.
The registration of movable objects and their callbacks should be
ignored when running non-compaction GCs. Move the GC kind check one
level out.

At the same time, make these registration methods untyped -- the
Allocator interface for heap collections already provide a typed view,
so unnecessary to extend that one more level.

R=haraken
BUG=

Review-Url: https://codereview.chromium.org/2645873002
Cr-Commit-Position: refs/heads/master@{#444760}
sigbjornf
LocalFileSystem::deleteFileSystem() is no longer used.
This method stopped being used when DevTools retired
its FileSystem API support (crbug.com/588817); follow
through and remove the unused implementation.

R=nhiroki,kinuko,haraken
BUG=

Review-Url: https://codereview.chromium.org/2640963002
Cr-Commit-Position: refs/heads/master@{#444667}
mstensho
[LayoutNG] Initial support for multicol, introducing NGBlockBreakToken.
We can now lay out block-level floats and in-flow blocks inside a multicol
container. Note that painting and hit testing doesn't work too well, since
those operations are still performed on the legacy LayoutObject tree, and
there's no way to fragment a LayoutObject.

No attempt has been made at integrating this with out-of-flow positioning or
inline-level layout.

Review-Url: https://codereview.chromium.org/2632523002
Cr-Commit-Position: refs/heads/master@{#444512}
mstensho
Percent-width blocks cannot form a re-layout boundary.
A block with non-visible overflow can only form a re-layout boundary if both
width and height are fixed.

The block may be inside a shrink-to-fit container (there's no cheap and
reliable way to detect that), so that changes inside it may affect its width.

BUG=681657

Review-Url: https://codereview.chromium.org/2643703002
Cr-Commit-Position: refs/heads/master@{#444467}
fs
Split svg/dom/transform-parser.html
This CL splits the mentioned test into two to alleviate the potential
for test timeouts.
The bulk of the test is moved to a JS file, and the js-test dependency
is dropped since the only useful output of this test is the console log
generated.
The TestExpectations entry is dropped.

BUG=664849

Review-Url: https://codereview.chromium.org/2646503002
Cr-Commit-Position: refs/heads/master@{#444418}
sigbjornf
Leave out empty-valued Access-Control-Request-Headers: on preflights.
Following https://github.com/whatwg/fetch/issues/459 , the above
preflight header should not be included if the request following CORS
has no headers to enumerate in a preflight.

R=tyoshino,yhirano
BUG=633729

Review-Url: https://codereview.chromium.org/2633423003
Cr-Commit-Position: refs/heads/master@{#444303}
fs
Resolve CSS url(...) non-<image> values against the correct base
In an external stylesheet, the url(...) should resolve against the URL of
the stylesheet. We were always resolving against the document base URL,
meaning that 'filter' url(...)'s referencing external files could resolve
to the wrong URL.
Besides this, add a more generic mechanism to determine whether a CSSValue
contains a URL (and hence may need to be re-resolved if it's within an
inline style declaration, and it's context element is moved to a different
document.)
Also adjust the <canvas> 'filter' implementation to resolve against the
elements document when applicable.

BUG=405315

Review-Url: https://codereview.chromium.org/2625873010
Cr-Commit-Position: refs/heads/master@{#444179}
bratell
Split renderer.lib on Windows to avoid files larger than 2GB.
In certain configurations renderer.lib can exceed 2GB in size which is
too much for the 32 bit build tools. Splitting it avoids that problem.

BUG=679644

Review-Url: https://codereview.chromium.org/2622583005
Cr-Commit-Position: refs/heads/master@{#444143}
mstensho
Introduce LayoutObject::AncestorSkipInfo.
This replaces three optional parameters to container() and similar methods.

No behavioral changes intended.

Review-Url: https://codereview.chromium.org/2634493007
Cr-Commit-Position: refs/heads/master@{#444105}
sigbjornf
Document::shutdown(): remove unnecessary static_cast<>.
R=
BUG=

Review-Url: https://codereview.chromium.org/2638883002
Cr-Commit-Position: refs/heads/master@{#444061}
mstensho
Try to avoid working on zero-height column sets, when possible.
We may end up with an empty column set between two column spanners, if there is
zero-height column content "separating" them.

We typically have no business inside a zero-height column set, since
fragmentation is impossible there. Fragmentation requires a positive
fragmentainer block size to ensure content progression. So keep looking for a
column set that has a height, and use that one instead, as long as its flow
thread start offset is the same as the one we were requested to map to a
column set.

BUG=675100

Review-Url: https://codereview.chromium.org/2631013002
Cr-Commit-Position: refs/heads/master@{#443998}
sigbjornf
Do not initiate fetch() on a detached FetchManager.
R=
BUG=681378

Review-Url: https://codereview.chromium.org/2631153002
Cr-Commit-Position: refs/heads/master@{#443897}
fs
Provide a CSSParserContext to CSSSyntaxDescriptor
Add a CSSParserContext* argument to CSSSyntaxDescriptor::parse to allow
CSSValues to be resolve against a proper parser context, and resolve
relative URLs and other sourcing sensitive data.
Provide parser contexts as available on call-sites, or use the
strictCSSParserContext() if none is available. Move the TODO up the
callstack as needed.

BUG=618165

Review-Url: https://codereview.chromium.org/2632083002
Cr-Commit-Position: refs/heads/master@{#443882}
sigbjornf
Remove PageVisibilityObserver contextDestroyed() notifications.
PageVisibilityObserver allows a Page's lifetime states to be
observed, but none of the observers need to be notified of Page
destruction.

Adjust LifecycleNotifier<>::notifyContextDestroyed(), having it
call its corresponding LifecycleObserver's  contextDestroyed()
notification method if the observer implements it, but not require
that it does implement contextDestroyed(). With that in place,
only have the lifecycle observers that need a contextDestroyed()
notification (all but PageVisibilityObserver) declare it.

This allows the removal of all the empty
PageVisibilityObserver::contextDestroyed() overrides.

R=haraken
BUG=610176

Review-Url: https://codereview.chromium.org/2634713002
Cr-Commit-Position: refs/heads/master@{#443816}
bjornr
Fixed google::FindSymbol reading past end of a section
The symbol reading logic of google::FindSymbol was reading symbols in
blocks of N, not accounting for that a section might not have a multiple
of N symbols in it.

This makes it read in blocks of N or the number of symbols remaining,
whichever is smallest.

BUG=672481

Review-Url: https://codereview.chromium.org/2566623003
Cr-Commit-Position: refs/heads/master@{#443571}
perja
bluetooth: bluez: Fixed issue with missing notifications after reconnect.
BUG=680099

Review-Url: https://codereview.chromium.org/2625013003
Cr-Commit-Position: refs/heads/master@{#443451}
sigbjornf
Simplify visitor marking mode tracking.
Move the marking mode to VisitorHelper<>, so that
both Visitor and InlinedGlobalMarkingVisitor can access
and reuse it.

In order to do so, hoist out Visitor::MarkingMode as an
enum class.

R=
BUG=

Review-Url: https://codereview.chromium.org/2625363002
Cr-Commit-Position: refs/heads/master@{#443444}
fs
Look for favicon URLs (and similar <link>s) in SVG documents
Previously we were only looking for <link>s with icons within <head>,
and since SVG document don't have those, no icons would be found.
Instead, for SVG documents (with a root/document element of <svg>), just
collect all <link> (HTMLLinkElement) elements, regardless of position in
the document, using a pre-order traversal. This appears to match the
behavior of Gecko.

BUG=385466

Review-Url: https://codereview.chromium.org/2628873003
Cr-Commit-Position: refs/heads/master@{#443336}
sigbjornf
Revert ExtendableMessageEvent same heap verification.
Revert r440390's debug instrumentation of ExtendableMessageEvent.

R=
BUG=655926

Review-Url: https://codereview.chromium.org/2623273004
Cr-Commit-Position: refs/heads/master@{#443299}
mstensho
[LayoutNG] Make NGLayoutInputNode::AlgorithmForInputNode() more readable.
Use early returns and variables to avoid unwanted line breaks in statements.

Review-Url: https://codereview.chromium.org/2631513002
Cr-Commit-Position: refs/heads/master@{#443284}
mstensho
[LayoutNG] Put #includes in alphabetical order.
Review-Url: https://codereview.chromium.org/2623423003
Cr-Commit-Position: refs/heads/master@{#443279}
sigbjornf
Revert "Verify that FetchEvent::m_request holds same-thread reference."
Undo r440475's temporary use of SameThreadCheckedMember<>.

R=
BUG=655926

Review-Url: https://codereview.chromium.org/2629613002
Cr-Commit-Position: refs/heads/master@{#443257}
rune
Try to do less work clearing the font-cache in StyleEngine::didDetach.
Clearing the whole font-cache without considering css-connected fonts
could be cheaper. This is a speculative fix for issue 677415.

BUG=677415

Review-Url: https://codereview.chromium.org/2622673003
Cr-Commit-Position: refs/heads/master@{#443202}
tmoniuszko
Add missing url/gurl.h include
Functions declared in this file return GURL by value.

BUG=

Review-Url: https://codereview.chromium.org/2627883003
Cr-Commit-Position: refs/heads/master@{#443187}
fs
Add test for style 'transform' vs. presentation attribute 'transform'
The former should "win" over the latter.
Fixed by https://codereview.chromium.org/2478233002.

TBR=pdr@chromium.org
BUG=415950

Review-Url: https://codereview.chromium.org/2621153005
Cr-Commit-Position: refs/heads/master@{#442980}
fs
Update svg/wicd/test-rightsizing-b.xhtml Mac expectations
Less stale expectations (DRT format changes.)

TBR=schenney@chromium.org
NOTRY=true
BUG=639147

Review-Url: https://codereview.chromium.org/2628893002
Cr-Commit-Position: refs/heads/master@{#442935}
fs
Block animation of the SVGScriptElement
'href' should not be animatable for SVGScriptElements, but currently is.
This will "break" animation of 'className' on the same element.

R=mkwst@chromium.org,pdr@chromium.org
BUG=679291

Review-Url: https://codereview.chromium.org/2618323002
Cr-Commit-Position: refs/heads/master@{#442915}
sigbjornf
Remove redefinitions of ExceptionCode.
R=haraken
BUG=
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel

Review-Url: https://codereview.chromium.org/2625053002
Cr-Commit-Position: refs/heads/master@{#442878}
sigbjornf
Remove marking visitors' shouldMarkObject().
With per-thread heap handling being fully enabled, checking for any
cross-thread pointer marking (and not doing it), is no longer an issue.

Retire the should-mark predicate.

R=haraken
BUG=671856

Review-Url: https://codereview.chromium.org/2617393004
Cr-Commit-Position: refs/heads/master@{#442554}
sigbjornf
Drop MSVC pch warning avoidance.
Unable to reproduce the warning with VS2015; let's try to remove this
special case.

R=
BUG=

Review-Url: https://codereview.chromium.org/2621763002
Cr-Commit-Position: refs/heads/master@{#442368}
sigbjornf
Handle repeated and overlapping (re)starts of mock speechrecognizer.
R=tommi
BUG=678863

Review-Url: https://codereview.chromium.org/2617113002
Cr-Commit-Position: refs/heads/master@{#442337}
rune
Added trace for scheduleInvalidationsForRuleSets.
R=esprehn@chromium.org
BUG=678849

Review-Url: https://codereview.chromium.org/2620673002
Cr-Commit-Position: refs/heads/master@{#442332}
sigbjornf
Prefer ContextClient mixin over manual ExecutionContext handling.
The ContextClient mixin interface bundles up the safe handling of
references to ExecutionContexts. Prefer using it over keeping explicit
Member<ExecutionContext> references.

R=
BUG=610176

Review-Url: https://codereview.chromium.org/2622533002
Cr-Commit-Position: refs/heads/master@{#442250}
mostynb
avoid GCC content::CacheStorage::kSizeUnknown redeclaration error
Fixes:
../../content/browser/cache_storage/cache_storage.cc:62:29: error: redeclaration 'content::CacheStorage::kSizeUnknown' differs in 'constexpr'

BUG=617963

Review-Url: https://codereview.chromium.org/2607983002
Cr-Commit-Position: refs/heads/master@{#442242}
sigbjornf
CrossOriginAccessControl: separate access checks and error message generation
The checking and construction of legible error messages can with benefit
be separated, having the security access checks return an error status
which then can be used to generate a suitable error message.

Along with separating the two, switch to using StringBuilders.

R=
BUG=

Review-Url: https://codereview.chromium.org/2616323002
Cr-Commit-Position: refs/heads/master@{#442236}
tsniatowski
Add use_rtti gn arg to enable rtti globally in the build
Some sanitizer configs already enabled rtti, move the logic to the arg
default value to make experimenting easier. Can be useful when dealing
with some asan-instrumented build startup issued that may go away when
rtti is enabled globally, but don't fall into the existing enable-rtti
cases.

One example scenario I had was with a shared_library built with both rtti
and exceptions (in a downstream project) causing immediate asan failure
on startup around std::exception typeinfo alignment. Rebuilding with
rtti enabled globally made things work, so it helps if that's possible
with just a gn arg.

Note that targets that need rtti to be not disabled regardless of global
settings (e.g. third party libraries like icu that need rtti to build)
can still remove the //build/config/compiler:no_rtti config and add
//build/config/compiler:rtti in its place; this is unchanged.

BUG=webrtc:6468

Review-Url: https://codereview.chromium.org/2607903002
Cr-Commit-Position: refs/heads/master@{#442227}
rune
Use setNeedsActiveStyleUpdate instead of markTreeScopeDirty.
setNeedsActiveStyleUpdate checks if the document is active before
calling markTreeScopeDirty. This avoids marking shadow root tree scopes
dirty for non-active documents which caused a DCHECK fail in
markTreeScopeDirty.

R=esprehn@chromium.org
BUG=676441

Review-Url: https://codereview.chromium.org/2611053004
Cr-Commit-Position: refs/heads/master@{#442028}
sigbjornf
Enable type_traits fallback for all < gcc 5.0 releases.
Fixes compilation failures with various < gcc-5.0  toolchains lacking
std::is_trivially_copyable<T>. Without it, compile errors like

../../base/template_util.h:189:36: error: no type named 'is_trivially_copyable' in namespace 'std'
using is_trivially_copyable = std::is_trivially_copyable<T>;
                              ~~~~~^
../../base/template_util.h:189:57: error: expected ';' after alias declaration
using is_trivially_copyable = std::is_trivially_copyable<T>;
                                                        ^
                                                        ;
will be encountered.

R=danakj
BUG=555754

Review-Url: https://codereview.chromium.org/2612933003
Cr-Commit-Position: refs/heads/master@{#441985}
rune
Use master StyleEngine to evaluate MQ in html imports.
The StyleEngine for html import documents does not have a Frame which
means size media queries will always evaluate to true. We incorrectly
replaced a passed-in master document StyleEngine with the StyleEngine
from the DocumentStyleSheetCollection in https://crrev.com/90d4ea3d
That was wrong for evaluating media queries.

R=meade@chromium.org
BUG=677963

Review-Url: https://codereview.chromium.org/2618803002
Cr-Commit-Position: refs/heads/master@{#441899}
rune
Added layout test for issue 318468.
Check that adding a type selector rule only invalidates elements with
that type.

R=sashab@chromium.org
BUG=318468

Review-Url: https://codereview.chromium.org/2615713005
Cr-Commit-Position: refs/heads/master@{#441823}
rune
Revert of Don't post multiple task for executing blocked scripts. (patchset #2 id:20001 of https://codereview.chromium.org/2609763002/ )
Reason for revert:
Regression in test for time to first meaningful paint: https://crbug.com/678584

Original issue's description:
> Don't post multiple task for executing blocked scripts.
>
> We may post a lot of tasks for executing blocked scripts in the case
> where we insert multiple shadow trees each containing a style element.
> When we start parsing a style element, we mark it as blocking and
> unblock script execution after finishing parsing. Check if the previous
> task is active before posting.
>
> Found while measuring performance for issue 603621.
>
> BUG=603621
>
> Committed: https://crrev.com/26cb3bdcd2a353402b78b716862567226317dff0
> Cr-Commit-Position: refs/heads/master@{#441110}

TBR=pmeenan@chromium.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=603621

Review-Url: https://codereview.chromium.org/2617763002
Cr-Commit-Position: refs/heads/master@{#441783}
sigbjornf
eventTargetData(): pull (most of) this singleton off-heap.
Diagnose mutation of GCed object by pulling the collection
wrapper off heap also.

R=
BUG=678532

Review-Url: https://codereview.chromium.org/2616913002
Cr-Commit-Position: refs/heads/master@{#441668}
rune
Need to clear viewport dependent units when switching print mode.
Switching between print and screen changes the size of the initial
containing block. Viewport dependent lengths need to be recalculated
and the cache for matched properties cleared.

Normally, notifyResizeForViewportUnits() is called from
performPreLayoutTasks when the initial containing block size changes.
That does not happen when laying out for printing and going back to
screen layout. We skip setting m_lastLayoutSize in
sendResizeEventIfNeeded. We probably do that to avoid triggering resize
events going back and forth between the print (preview) size.

Make sure we clear the matched properties cache from StyleResolver when
updating the media type.

R=mstensho@opera.com
BUG=677799

Review-Url: https://codereview.chromium.org/2613733003
Cr-Commit-Position: refs/heads/master@{#441642}
sigbjornf
Tidy up XMLHttpRequest::endLoading().
R=tyoshino
BUG=

Review-Url: https://codereview.chromium.org/2610653002
Cr-Commit-Position: refs/heads/master@{#441618}
perja
bluetooth: bluez: Implement BluetoothRemoteGattCharacteristicBluez::SubscribeToNotifications and UnsubscribeFromNotifications.
BUG=636275

Review-Url: https://codereview.chromium.org/2613473002
Cr-Commit-Position: refs/heads/master@{#441456}
sigbjornf
Simplify WorkerGlobalScope::m_eventListeners.
Switch to using a 'mere' HashSet<> for these event listeners. Mainly
done to diagnose GC instability, but removing the use of an involved
abstraction like HeapListHashSet<> is something wanted regardless.

R=
BUG=677654

Review-Url: https://codereview.chromium.org/2609413002
Cr-Commit-Position: refs/heads/master@{#441364}
rune
Avoid unnecessary updateActiveStyle comparing shadow styles.
Found while checking performance for issue 603621.

Style sharing is done during style recalc at which point we know that
the active style is up-to-date. Instead of using the API for
document.styleSheets, compare active stylesheets in ScopedStyleResolver
directly.

BUG=603621

Review-Url: https://codereview.chromium.org/2610513003
Cr-Commit-Position: refs/heads/master@{#441357}
fs
Push attributeName handling down into SVGAnimateElement
SVGAnimateElement (and derived classes) is where 'attributeName' has any
meaning. Move setting/updating of the resolved 'attributeName' value
there. This allows setAttributeName to be devirtualized.
Storage is kept at the SVGSMILElement level because of how it's used at
schedule/unschedule time.

BUG=641437

Review-Url: https://codereview.chromium.org/2602423002
Cr-Commit-Position: refs/heads/master@{#441356}
sigbjornf
Enforce canCopyWithMemcpy constraint over TerminatedArray<T>.
R=
BUG=

Review-Url: https://codereview.chromium.org/2610113002
Cr-Commit-Position: refs/heads/master@{#441352}
fs
Use ShadowData in DropShadowFilterOperation
This replaces the "open-coded" (and somewhat compacted) version of a
ShadowData structure within DropShadowFilterOperation with an actual
ShadowData. While this makes the structure slightly larger, it allows
for some additional code-reuse - mostly around style resolution. It's
also a first step against more correct handling of the 'currentcolor'
value within the drop-shadow(...) filter function.
There's a slight change in behavior since ShadowData stores the relevant
values as 'float' rather than as 'int' like the "open-coded" version.

CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Review-Url: https://codereview.chromium.org/2609803002
Cr-Commit-Position: refs/heads/master@{#441351}
rune
Don't post multiple task for executing blocked scripts.
We may post a lot of tasks for executing blocked scripts in the case
where we insert multiple shadow trees each containing a style element.
When we start parsing a style element, we mark it as blocking and
unblock script execution after finishing parsing. Check if the previous
task is active before posting.

Found while measuring performance for issue 603621.

BUG=603621

Review-Url: https://codereview.chromium.org/2609763002
Cr-Commit-Position: refs/heads/master@{#441110}
sigbjornf
Always adjust container size when tracing HeapVectorBacking contents.
R=haraken
BUG=677738

Review-Url: https://codereview.chromium.org/2602363002
Cr-Commit-Position: refs/heads/master@{#441107}
sigbjornf
WindowAudioWorklet: gracefully handle detached use.
R=haraken
BUG=677612

Review-Url: https://codereview.chromium.org/2607353002
Cr-Commit-Position: refs/heads/master@{#441094}
sigbjornf
Add missing HeapCompact DCHECK().
R=
BUG=

Review-Url: https://codereview.chromium.org/2604403002
Cr-Commit-Position: refs/heads/master@{#441072}
sigbjornf
No longer clean out main thread's heap for LSan's benefit.
The extra GCing that cleanupMainThread() appears to be redundant, as
LSan will have performed leak detection prior to the main thread shutting
down.

R=
BUG=677684

Review-Url: https://codereview.chromium.org/2604413002
Cr-Commit-Position: refs/heads/master@{#441068}
sigbjornf
Retire speechrecognition-restart-onend.html leak expectation.
No longer reported as leaking.

TBR=jbroman@chromium.org
BUG=670324
NOTRY=true

Review-Url: https://codereview.chromium.org/2603273002
Cr-Commit-Position: refs/heads/master@{#441066}
sigbjornf
WorkerGlobalScope: verify same-heap event listeners.
To help narrow down failures during tracing of a WorkerGlobalScope's
event listeners, verify that the listeners added belong to the
same heap as the WorkerGlobalScope itself.

R=
BUG=677654

Review-Url: https://codereview.chromium.org/2608113002
Cr-Commit-Position: refs/heads/master@{#441058}
sigbjornf
Remove ThreadState::callThreadShutdownHooks() declaration.
No longer provided and used.

R=
BUG=

Review-Url: https://codereview.chromium.org/2608933002
Cr-Commit-Position: refs/heads/master@{#441041}
hugoh
Fix for building with ancient toolchain
At Opera we test our SDK on an old MIPS device with a
peculiar toolchain. To be able to compile ImageDocument.o,
we need to call std::round(), not just round().

BUG=none

Review-Url: https://codereview.chromium.org/2548783002
Cr-Commit-Position: refs/heads/master@{#440950}
tommyt
PaymentApp: Implement nativeGetAllAppManifests
This change connects the ServiceWorkerPaymentAppBridge to the service
worker payment app code in content/browser/payments. This allows
installed service worker payment apps to show up in the Payment Request
dialog.

I also replace "String scopeUrl" with "long registrationId" as the
identifier for service worker payment apps.

This code is protected by the kServiceWorkerPaymentApps feature flag.

BUG=661608

Review-Url: https://codereview.chromium.org/2586213002
Cr-Commit-Position: refs/heads/master@{#440746}
fs
Remove SVGAnimateElement::hasValidAttributeType
Incorporate said method into its only caller - hasValidTarget - and
override that one in SVGAnimateTransformElement instead.
Also fold animatedPropertyType() into hasValidTarget and get rid of
hasInvalidCSSAttributeType() in favor of "naked" access to the
underlying boolean flag.

BUG=641437

Review-Url: https://codereview.chromium.org/2599853003
Cr-Commit-Position: refs/heads/master@{#440716}
sigbjornf
Remove unwanted declaration of storage for NeedsAdjustAndMark<>.
This rolls back the change made in

 https://codereview.chromium.org/429793003/

We shouldn't have to do this if the class type has been fully
instantiated and "used". Traits used to direct compilation won't run
into this (as the expression will clearly have to be evaluated at
compile-time), but gtest usage of traits may end up evaluating their
predicate expressions in compiled code, thus requiring that the trait
has been instantiated in the compilation unit already. Declaring one
for all uses of NeedsAdjustAndMark<> is too strong, and isn't needed
really (now) -- retire, but avoid running into the issue for the
corresponding unit test.

R=
BUG=

Review-Url: https://codereview.chromium.org/2599643004
Cr-Commit-Position: refs/heads/master@{#440618}
fs
Fold SVGAnimatedTypeAnimator into SVGAnimateElement
This folds the functionality of SVGAnimatedTypeAnimator, mostly
verbatim, into SVGAnimateElement. Some methods are renamed, and a new
interface is defined, which allows <animateTransform> to be more
isolated from the rest of the <animate> implementation.
SVGAnimateElement::m_animatedProperty is renamed to m_animatedValue, and
SVGAnimatedTypeAnimator::m_animatedProperty is renamed to
m_targetProperty.
Dial down or remove some asserts in favor of other asserts.

BUG=641437

Review-Url: https://codereview.chromium.org/2595393002
Cr-Commit-Position: refs/heads/master@{#440613}
rune
Reschedule sibling invalidations as descendant on removal.
When removing elements we schedule sibling invalidations based on
element attributes and state as descendant invalidations when
necessary. However, that didn't work correctly if we removed an
attribute and then removed the element before the sibling invalidation
for the attribute was effectuated.

For instance, if you remove a class affecting succeeding siblings
through selectors, we schedule an invalidation set for that change, but
it will be cleared right after if we remove the element (see the added
test).

Instead we reschedule sibling invalidations on the parent node before
the invalidations for the removed element are cleared.

R=esprehn@chromium.org
BUG=674326

Review-Url: https://codereview.chromium.org/2592423002
Cr-Commit-Position: refs/heads/master@{#440598}
sigbjornf
Verify that FetchEvent::m_request holds same-thread reference.
To diagnose instability seen during GCs of FetchEvents, instrument
the m_request member, checking that we only create event object containing
references to Requests that reside in the current thread's heap.

R=
BUG=655926

Review-Url: https://codereview.chromium.org/2594423002
Cr-Commit-Position: refs/heads/master@{#440475}
sigbjornf
Make use of ContextClient in modules/speech/
Switch to reusing ContextClient rather than have SpeechSynthesis{Utterance}
explicitly hold ExecutionContext member references.

R=
BUG=610176

Review-Url: https://codereview.chromium.org/2595323002
Cr-Commit-Position: refs/heads/master@{#440432}
fs
Update TODO(s) in SVGTransform.idl
Update SVGMatrix vs. DOMMatrix{,ReadOnly} references to match
https://svgwg.org/svg2-draft/coords.html#InterfaceSVGTransform.

TBR=foolip@chromium.org

Review-Url: https://codereview.chromium.org/2599753002
Cr-Commit-Position: refs/heads/master@{#440400}
sigbjornf
Verify that ExtendableMessageEvent's message ports reside on the same heap
To potentially help diagnose a GC crash (see associated bug), verify
that ExtendableMessageEvent's MessagePortArray and MessagePorts belong
to the same thread heap as the event object.

R=haraken
BUG=655926

Review-Url: https://codereview.chromium.org/2589333005
Cr-Commit-Position: refs/heads/master@{#440390}
fs
Clamp rgba(...) alpha value in the CSS fast-path parser
The general CSS parser will clamp the alpha value to the [0, 1] range,
while the fast-path parser does not. This means that large alpha values
will result in overflow in the cast to int, yielding the wrong color
value.
Add a clamp to the [0, 1] range before converting to the [0, 256) range
and converting to int. Because negative values are handled separately,
we only need to apply the clamp for the range above zero.

BUG=675158

Review-Url: https://codereview.chromium.org/2588293004
Cr-Commit-Position: refs/heads/master@{#440374}
sigbjornf
Introduce ThreadState::isOnThreadHeap() helper predicate.
Simple helper to make testing for on-thread-heap conditions easier.

R=
BUG=

Review-Url: https://codereview.chromium.org/2599533002
Cr-Commit-Position: refs/heads/master@{#440370}
mstensho
Even empty block intervals should be associated with a fragmentainer.
We need to visit the fragmentainer that a block lives in even if said block has
zero height. If we find a column set, don't perform initial bounds checking.

BUG=675943

Review-Url: https://codereview.chromium.org/2597633002
Cr-Commit-Position: refs/heads/master@{#440361}
fs
Improve separation between "SMIL times" and timestamps
The 'elapsed' time does not need to be a SMILTime in general - it can
only be non-finite in the case where the document is not active, and
then the timeline should not be running/animations updated.
Thread the double value further from SMILTimeContainer down into
SVGSMILElement. Simplify some computations.

BUG=641437,676137

Review-Url: https://codereview.chromium.org/2592103002
Cr-Commit-Position: refs/heads/master@{#440171}
mostynb
fix mojom bindings generator exception error message
Followup to https://codereview.chromium.org/2171033002

Review-Url: https://codereview.chromium.org/2591123003
Cr-Commit-Position: refs/heads/master@{#440142}
sigbjornf
SameThreadCheckedMember<>: verify same-thread usage of heap references.
In debug builds, Member<> checks that the heap references stored resides
in a heap belonging to the same thread as the Member<> itself. The check
carries some overhead, hence it is not enabled outside of checked builds.

In order to be able to diagnose and catch code that incorrectly stores
heap pointers belonging to other threads in a Member<>, add the
SameThreadCheckedMember<> variant of Member<>. A drop-in replacement
for Member<> that can be used to selectively diagnose.

R=
BUG=

Review-Url: https://codereview.chromium.org/2592063002
Cr-Commit-Position: refs/heads/master@{#440117}
fs
Use double precision in SVGLengthContext::convertValueToUserUnits
This method does a bunch of <float> * <double> operations, which tickles
UBSANs float-overflow warning when the result is stored back into the
float (single precision) local variable.
We clamp the result to a narrow enough range already at the end (and
hence won't see any effects of the overflow, at least assuming IEEE754),
but might as well use a double precision local variable, since that
actually seems to save a few instructions while also avoiding the
overflowing conversion.

BUG=675140

Review-Url: https://codereview.chromium.org/2591663003
Cr-Commit-Position: refs/heads/master@{#440056}
rune
Clear active tree scopes on StyleEngine::didDetach().
clearResolver() is not only called on didDetach(). Make it private and
name it clearResolvers to reflect that it clears scoped resolvers as
well. The comments related to style resolver reconstructruction is
removed as that does not happen anymore.

Clearing m_treeBoundaryCrossingScopes is moved into didDetach()
which was a more natural place.

Clear active and dirty tree scopes in didDetach to not unnecessarily
hang on to any memory associated with them.

These changes were done investigating issue 675533, but won't
necessarily fix anything for that issue.

BUG=567021,675533

Review-Url: https://codereview.chromium.org/2593643002
Cr-Commit-Position: refs/heads/master@{#439973}
rune
Clear CSSGlobalRuleSet on StyleEngine::didDetach().
This could free up memory sooner. Found while investigating 675533, but
not confirmed that this fixes that issue.

BUG=675533

Review-Url: https://codereview.chromium.org/2589243002
Cr-Commit-Position: refs/heads/master@{#439935}
mstensho
Need to be inside the flow thread before converting a visual point.
Before we can convert from a visual point to a flow thread point, we need the
input point to be exactly relative to the flow thread, or we might end up
mapping it to the wrong column.

In other words, we need to add the flow thread object's location before
converting into the flow thread coordinate space. While the flow thread indeed
is at 0,0 (or at least close enough to 0,0) relatively to the multicol
container in very many cases, this isn't true when the multicol container is in
rtl writing-mode, or when it's scrollable, or even when the multicol container
has borders and/or padding.

BUG=663062

Review-Url: https://codereview.chromium.org/2593633002
Cr-Commit-Position: refs/heads/master@{#439855}
sigbjornf
Disallow heap objects containing unsafe on-heap iterators.
Do not allow BlinkGC managed objects to include unsafe iterators of
other heap objects; that is, do not allow them to keep iterator
part objects as fields.

These iterators contain untraced references, which is in general
unsafe practice and breaks the general rule that all heap references
must be known to the GC infrastructure, and be marked and traced
through.

This applies to all heap collection iterators but HeapListHashSet<>'s,
which can be safely traced. It is also the only collection iterator
which is kept as a field of an on-heap object (CSSSegmentedFontFace.)

R=haraken
BUG=672030

Review-Url: https://codereview.chromium.org/2588943002
Cr-Commit-Position: refs/heads/master@{#439784}
rune
Don't update global ruleset when active style is dirty.
CSSGlobalRuleSet should always be collected as part of the active style
update. RuleSets may have been cleared from StyleSheetContents as a
result of media query changes for instance.

For the given issue, we tried to limit to a global ruleset when lazy-
loading fullscreen UA style, but as part of going fullscreen we had
already cleared rule sets for stylesheets with media queries due to the
media feature change.

BUG=675439

Review-Url: https://codereview.chromium.org/2590793003
Cr-Commit-Position: refs/heads/master@{#439781}
mstensho
Make column snapping optional when translating to flow thread coordinates.
positionForPoint() wants this, but mapAncestorToLocal() requires that no
special behavior be applied.

While this CL doesn't fix bug 663062, it is a prerequisite for fixing it
without breaking existing tests (MulticolWithAbsPosNotContained in
MapCoordinatesTest unit test).

BUG=663062

Review-Url: https://codereview.chromium.org/2590463002
Cr-Commit-Position: refs/heads/master@{#439758}
sigbjornf
Tracing HeapListHashSet<> iterators.
The HeapListHashSet<> iterators keep a pair of heap references, which
really should be traced like any other such reference during GCs. This
isn't unsafe for the stack allocated uses of these iterators, but one
Blink object (CSSSegmentedFontFace) keeps an iterator as a field on the
heap, we really have to trace these on-heap part object iterators.

Add the needed infrastructure and use it for CSSSegmentedFontFace.

R=haraken
BUG=672030

Review-Url: https://codereview.chromium.org/2583363002
Cr-Commit-Position: refs/heads/master@{#439748}
rune
Removed expected Trusty dbg failure after fix.
R=rjkroege@chromium.org
BUG=675055

Review-Url: https://codereview.chromium.org/2586393002
Cr-Commit-Position: refs/heads/master@{#439723}
fs
Stricter float-to-int conversion in SVGIntegerOptionalInteger
SVGIntegerOptionalInteger parses values as floats but stores them as
integers. Add helpers to avoid issues with overflow and to make this
conversion the same way in all places it's needed.
The "normal" parsing code would truncate the float value while the parsing
code for animation values would round. Make them both use truncation (and the
avoid duplicating the code.)

BUG=675130

Review-Url: https://codereview.chromium.org/2590433002
Cr-Commit-Position: refs/heads/master@{#439533}
fs
Use a stricter limit for the exponent range in genericParseNumber
The exponent was being checked against numeric_limits<...>::max_exponent
which is the power-of-two limit. Use max_exponent10 instead. Also make
sure to apply any exponent sign prior to the range check so that
min_exponent10 can be used as the lower bound. This means computing the
base number before checking for/parsing the exponent part. This could
be slower in some cases, but reasonably only when an error is
encountered. Also, scientific notation should be fairly scarce to begin
with.

Also move declarations of local variables closer to their first use (and
in the inner-most scope possible.) Unravel the handling of/accumulation
into 'frac' when computing the decimal part.

BUG=675174

Review-Url: https://codereview.chromium.org/2588023002
Cr-Commit-Position: refs/heads/master@{#439522}
rune
Get rid of @font-face resource leak.
Clear the StyleEngine of css connected fonts on detach().

This used to be saved by an active stylesheet update, it seems. With
the new active stylesheet update this is done more selectively and it
might have been done when document going inactive before. Clearing the
font cache on detach fixes the leak issues in css3/fonts.

TEST=css3/fonts/
BUG=674934

Review-Url: https://codereview.chromium.org/2582413002
Cr-Commit-Position: refs/heads/master@{#439510}
rune
Fixed flaky fullscreen video test.
The media controls are (at least sometimes) painted twice. The second
time after figuring out how many buttons fit into the available width.
At least one of the fullscreen tests were flaky because the first paint
was dumped instead of the second one. Adding a layoutAndPaintAsyncThen
in the full-screen-test.js framework seems to fix the issue.

Although the issue was filed after landing changes for issue 567021,
the flakiness is also seen locally without those changes running the
test with --repeat-each=30 in debug.

R=fs@opera.com
TEST=virtual/android/fullscreen/full-screen-stacking-context.html
BUG=675055

Review-Url: https://codereview.chromium.org/2586243002
Cr-Commit-Position: refs/heads/master@{#439483}
fs
Clamp radii in FEMorphology::createImageFilter
Sk{Dilate,Erode}ImageFilter::Make take the radii as integers (int), so
make sure to convert the float FEMorphology stores avoiding overflow.

BUG=675164

Review-Url: https://codereview.chromium.org/2585233002
Cr-Commit-Position: refs/heads/master@{#439474}
fs
Fix HTML parser CDATA edge-case and sync state names with spec
When encountering a sequence of ']]]' at the end of a CDATA section, we
should only buffer one ']' (the first one) and "remember" the other two.

The states exists in the spec[1][2][3] nowadays, so sync the names and remove
the comment about the states not being in the spec.

Fixes two subtests of wpt/html/syntax/parsing/html5lib_tests21.html.

[1] https://html.spec.whatwg.org/multipage/syntax.html#cdata-section-state
[2] https://html.spec.whatwg.org/multipage/syntax.html#cdata-section-bracket-state
[3] https://html.spec.whatwg.org/multipage/syntax.html#cdata-section-end-state

BUG=674496

Review-Url: https://codereview.chromium.org/2576373002
Cr-Commit-Position: refs/heads/master@{#439396}
rune
Removed resolverChanged().
This method was now empty and has been replaced by asynchronous active
stylesheet update in updateActiveStyleSheets().

R=meade@chromium.org
BUG=567021

Review-Url: https://codereview.chromium.org/2559613002
Cr-Commit-Position: refs/heads/master@{#439142}
rune
Setting preferred stylesheet simplified.
With active stylesheets being applied asynchronously, we no longer need
to avoid the synchronous stylesheet update during link processing. We
can just mark the treeScope dirty to trigger the preferred set to be
updated as part of updateActiveStyleSheets().

R=meade@chromium.org
BUG=567021

Review-Url: https://codereview.chromium.org/2552353003
Cr-Commit-Position: refs/heads/master@{#439115}
rune
Remove unused lazyAppend from StyleResolver.
Active stylesheet update is now asynchronous and handled from
StyleEngine::updateActiveStyleSheets().

R=meade@chromium.org
BUG=567021

Review-Url: https://codereview.chromium.org/2557773004
Cr-Commit-Position: refs/heads/master@{#439102}
rune
Removed unused StyleSheetInvalidationAnalysis class.
R=meade@chromium.org
BUG=567021

Review-Url: https://codereview.chromium.org/2546343006
Cr-Commit-Position: refs/heads/master@{#439097}
rune
Remove ensureResolver before invalidation set scheduling.
ensureResolver() used to make sure the invalidation sets were up-to-
date with the currently active stylesheets. This is no longer necessary
as ruleset invalidation of changes in active stylesheets will make sure
changes are applied correctly.

R=meade@chromium.org
BUG=567021

Review-Url: https://codereview.chromium.org/2555083002
Cr-Commit-Position: refs/heads/master@{#439096}
rune
Reland: Collect active stylesheets and and apply asynchronously.
This CL enables asynchronously updating the lists of active stylesheets
applying any style changes using rule set invalidations. This means we
more often avoid full style recalcs when we add or remove stylesheets
from the document as well as when the evaluation of media queries
change.

In general, we now alway compare new and old stylesheets by comparing
their rulesets and schedule style invalidations for removed and added
rulesets.

When media queries changes, we used to give completely in and
recalculate all style once we discovered a media query changed its
evaluation. With this patch, we clear rule sets for sheets which
contain media queries which means we will invalidate rules for the sets
before and after the query change. This can be further refined by only
clearing rule sets when the sheets has a media query which actually did
change evaluation, and also just schedule invalidations for rules which
are inside @media rules.

TreeScopeStyleSheetCollectionTest.cpp is removed as it is replaced by
ActiveStyleSheetsTest.cpp which landed earlier.

updateActiveStyle() has been added a few places where
ensureStyleResolver() previously caused active stylesheets to be up-to-
date. ensureStyleResolver() is now merely a method which creates the
StyleResolver if necessary and returns it.

There are some cleanups and code removal which needs to be done after
this CL, but I have left those out to make this CL as small as
possible. For instance resolverChanged(), which synchronously updated
the active stylesheets, has an empty implementation instead of
including a lot of removals in this CL. The code for lazy-appending
stylesheets in StyleResolver is still there, but not in use.

R=meade@chromium.org
BUG=567021

Committed: https://crrev.com/9fb5b60edfb769134733009f9447bad3eaf347b0
Review-Url: https://codereview.chromium.org/2557533005
Cr-Original-Commit-Position: refs/heads/master@{#438148}
Cr-Commit-Position: refs/heads/master@{#439092}
rune
Merge setTimeout calls with same timeout for webfont tests.
Landing async stylesheet update caused a regression in font-display
tests. The values "fallback" and "optional" block display for 100ms
according to the spec. The tests had a setTimeout call to trigger font
loading and a setTimeout call to trigger notifyDone() to render before
100ms has passed with the same timeout value. However, the timer for
allowing fallback display triggers before the notifyDone triggers in
Debug builds on Mac. Calling notifyDone from the same setTimeout
callback as triggering font loading.

The intention of the test is to trigger the screen dump when 0s has
passed, so this should be OK. I have not identified what exactly changed
with the async stylesheet patch and why the timeout methods are
interleaved with the timeout for enabling fallback rendering.

Removing one of the other tests or one of the font-display values from
the test array also makes the "fallback" and "optional" start passing
without this change, so there is clearly a timing issue here.

BUG=567021

Review-Url: https://codereview.chromium.org/2584473002
Cr-Commit-Position: refs/heads/master@{#439026}
sigbjornf
ActiveScriptWrappable: GC wrappers in detached ExecutionContexts.
Blink objects that implement (Active)ScriptWrappable have the ability
to keep their corresponding v8 wrapper object alive across GCs by
overriding and implementing ScriptWrappable::hasPendingActivity().

Once an ExecutionContext has become detached, we no longer want to
retain wrappers belonging to it, as that will lead to memory leaks.
With full bi-directional tracing of references across the v8 and Blink
heaps, it is possible to make the lifetime of objects "more accurate",
but not keeping a wrapper alive once in a detached setting, has proven
to work out well in practice.

Consequently, a ScriptWrappable in a detached ExecutionContext should
not be retained, even if hasPendingActivity() return |true|. That is,
we should simply ignore hasPendingActivity()'s result, freeing the
implementations of it from having to take care of this 'detached'
detail.

This behavior is already provided by the 'standard' Blink wrapper
visitors that v8 invokes during GC, but not with wrapper tracing,
which is what this CL brings.

It does so by extending ActiveScriptWrappable with a predicate for
checking if the object's ExecutionContext has signalled destruction.

(The natural(?) way to express that is to parameterize ActiveScriptWrappable<>
over the class that implements the interface. This makes for a CL
with a larger footprint.)

R=haraken, mlippautz
BUG=468240

Review-Url: https://codereview.chromium.org/2577053002
Cr-Commit-Position: refs/heads/master@{#438967}
fs
Ignore minimum font-size for SVG text
In some circumstances, the minimum font-size would be applied to the
"scaled font", messing up rendering. Because of how the font is scaled,
this would trigger much less than one might expect.
Change the useSmartMinimumForFontSize argument to the
FontSize::getComputedSizeFromSpecifiedSize function to be about entirely
ignoring the minimum font-sizes (this function only has two callsites.)
Refactor LayoutSVGInlineText::computeNewScaledFontForStyle a bit to deal
with this new flow. Also always keep the "original" font when we compute
a scale factor of 0 - it should be invisible regardless.

BUG=232332,335725,475795,626936,664961
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Review-Url: https://codereview.chromium.org/2575863002
Cr-Commit-Position: refs/heads/master@{#438794}
sigbjornf
Signal no pending activity in destructed contexts.
Various hasPendingActivity() overrides weren't taking the state of the
ExecutionContext into account, only considering if event listeners were
registered. We're not interested in holding onto a script environment
after an execution context has been destroyed, so adjust the predicates
to return false if the ExecutionContext has been destructed.

The V8GCController wrapper visitors already check if hasPendingActivity()
implementations incorrectly return |true| when used inside of destroyed
ExecutionContexts, but that check is not handled by trace wrappers
(ActiveScriptWrappable.)

R=
BUG=

Review-Url: https://codereview.chromium.org/2571193002
Cr-Commit-Position: refs/heads/master@{#438787}
fs
Make LayoutSVGViewportContainer -> SVGSVGElement association obvious
This LayoutObject type is only used for non-outermost SVGSVGElements, so
no need to do runtime checks of the type.

Review-Url: https://codereview.chromium.org/2570293002
Cr-Commit-Position: refs/heads/master@{#438532}
fs
Remove unused SVGTextMetrics constructor
Review-Url: https://codereview.chromium.org/2565173007
Cr-Commit-Position: refs/heads/master@{#438523}
sigbjornf
Eagerly dispose of ScheduledActions (reland.)
The DOMTimer's ScheduledAction hold on to the script source and
state needed to execute the timer action. Let go of ShceduledAction's
resource early.

Apart from reducing the lifetime of script source, this is a speculative
fix for crashes reported in v8::PersistentValueVector::Clear() during
lazy sweeping of ScheduledAction objects.

R=
BUG=

Committed: https://crrev.com/11bd50343795ed1dc1977da91e9a1588687522fd
Review-Url: https://codereview.chromium.org/2552673002
Cr-Original-Commit-Position: refs/heads/master@{#436298}
Cr-Commit-Position: refs/heads/master@{#438503}
mstensho
Only the first layout pass needs to go deep when pagination state changes.
Since we now re-use the LayoutState object in multipass layout (caused by
either fragmentation or the PaintLayerScrollableArea::FreezeScrollbarsScope
mechanism), we need to notify the LayoutState object when we have performed the
necessary deep layout pass, so that not all subsequent passes also go deep
needlessly.

BUG=672088

Review-Url: https://codereview.chromium.org/2570643002
Cr-Commit-Position: refs/heads/master@{#438353}
tommyt
PaymentApp: Implement the JNI bridge
Add two native methods to ServiceWorkerPaymentAppBridge, and implement
them in service_worker_payment_app_bridge.cc. The two methods are
GetAllAppManifests and InvokePaymentApp. At the moment, they are just
stubs, although GetAllAppManifest contains a bit of code, mainly
for illustration and to avoid compile errors for unused @CalledFromNative
methods in ServiceWorkerPaymentAppBridge.

BUG=661608

Review-Url: https://codereview.chromium.org/2556753002
Cr-Commit-Position: refs/heads/master@{#438269}
sigbjornf
Remove PreFinalizer{Callback} type aliases from view.
Internal types, no good reason to expose these to the outside.

R=
BUG=673645

Review-Url: https://codereview.chromium.org/2573783002
Cr-Commit-Position: refs/heads/master@{#438170}
rune
Collect active stylesheets and and apply asynchronously.
This CL enables asynchronously updating the lists of active stylesheets
applying any style changes using rule set invalidations. This means we
more often avoid full style recalcs when we add or remove stylesheets
from the document as well as when the evaluation of media queries
change.

In general, we now alway compare new and old stylesheets by comparing
their rulesets and schedule style invalidations for removed and added
rulesets.

When media queries changes, we used to give completely in and
recalculate all style once we discovered a media query changed its
evaluation. With this patch, we clear rule sets for sheets which
contain media queries which means we will invalidate rules for the sets
before and after the query change. This can be further refined by only
clearing rule sets when the sheets has a media query which actually did
change evaluation, and also just schedule invalidations for rules which
are inside @media rules.

TreeScopeStyleSheetCollectionTest.cpp is removed as it is replaced by
ActiveStyleSheetsTest.cpp which landed earlier.

updateActiveStyle() has been added a few places where
ensureStyleResolver() previously caused active stylesheets to be up-to-
date. ensureStyleResolver() is now merely a method which creates the
StyleResolver if necessary and returns it.

There are some cleanups and code removal which needs to be done after
this CL, but I have left those out to make this CL as small as
possible. For instance resolverChanged(), which synchronously updated
the active stylesheets, has an empty implementation instead of
including a lot of removals in this CL. The code for lazy-appending
stylesheets in StyleResolver is still there, but not in use.

R=meade@chromium.org
BUG=567021

Review-Url: https://codereview.chromium.org/2557533005
Cr-Commit-Position: refs/heads/master@{#438148}
tsniatowski
Roll third_party/icu from 73e24736 to 9cd28287
http://chromium.googlesource.com/chromium/deps/icu.git/+log/73e24736..9cd28287

One change in the range: deprecation warning suppresion for non-clang.

BUG=21515,637001

Review-Url: https://codereview.chromium.org/2575433002
Cr-Commit-Position: refs/heads/master@{#438139}
sigbjornf
Retire ThreadState::registerPreFinalizer<T>()
The registration of the finalization callback now happens under-the-hood
and automatically.

R=haraken
BUG=673645

Review-Url: https://codereview.chromium.org/2570463005
Cr-Commit-Position: refs/heads/master@{#438136}
sigbjornf
Simple BlinkGC heap compaction.
This implements heap compaction for the Blink GC infrastructure
(Oilpan), compacting the arenas of the BlinkGC heap which are most
susceptible to becoming fragmented during actual use.

Fragmentation is a real problem and a growing one while browsing anything
but static pages: the amount of unused, but allocated, memory is
fluctuating higher over time.

To avoid leaving increasing amounts of unused holes in our heaps,
heap compaction will periodically squeeze out the unused portions,
packing together the live objects. The heap pages that are then
left as unused, are subsequently released and returned to the OS.

Due to a fortunate property of Blink heap collection types, providing
such compaction is within relatively easy reach. Experiments show that
the arenas which hold such collection objects ("backing stores") are
the ones that develop fragmentation the most & persistently. While not
a complete heap compactor of all Blink GC arenas, it addresses the
fragmentation problem where it is most pressing. More can be done, later.

Explainer / design document:

 https://docs.google.com/document/d/1k-vivOinomDXnScw8Ew5zpsYCXiYqj76OCOYZSvHkaU

R=haraken
BUG=672030

Review-Url: https://codereview.chromium.org/2531973002
Cr-Commit-Position: refs/heads/master@{#438125}
fs
Remove SVGCursorElement
This allows significant cleanup of CSSCursorImageValue, so do that too.

Intent-thread:

 https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/r0lnh5Rw23M

TBR=timvolodine@chromium.org
BUG=650598

Review-Url: https://codereview.chromium.org/2522443002
Cr-Commit-Position: refs/heads/master@{#438116}
sigbjornf
Implicit prefinalizer registration.
Switch to implicit registration of prefinalizers along with removing
the ability to dynamically unregister a prefinalizer; the latter
being an unused feature.

The requirement to manually register a prefinalizer has proven to be
a chore and a source of bugs. Case in point: HTMLCanvasElement
currently declares a prefinalizer, but doesn't register it. Simplify
the programming model by automatically registering prefinalizers.

R=haraken
BUG=673645

Review-Url: https://codereview.chromium.org/2565983002
Cr-Commit-Position: refs/heads/master@{#438110}
sigbjornf
Avoid conditional Animation prefinalizers.
Recast the conditionally-eager finalization of Animation objects - only
needed if the Animation object has a CompositorAnimationPlayer attached -
wrapping instead the player object inside an eagerly-finalized object.

By doing so, we remove the need to support explicit prefinalizer
registration.

R=haraken
BUG=673645

Review-Url: https://codereview.chromium.org/2570503002
Cr-Commit-Position: refs/heads/master@{#438089}
rune
Use hash set instead of vector for changed RuleSets.
That way, we don't have to consider the same RuleSet multiple times for
invalidation on active stylesheet update. This fixes a regression in
PerformanceTests/CSS/StyleSheetInsert.html which would have been
introduced by https://codereview.chromium.org/2557533005

This works because the same style element source text used multiple
times will make us use the same StyleSheetContents from the cache and
hence the same RuleSet for all 50 sheets added in that test. It's a bit
like cheating, but this will also make sure we don't invalidate for the
same RuleSet twice if we re-order stylesheets by removing/inserting a
style element where the CSSStyleSheet pointer will be different, but
the RuleSet stays the same.

R=sashab@chromium.org,esprehn@chromium.org
BUG=567021

Review-Url: https://codereview.chromium.org/2569733003
Cr-Commit-Position: refs/heads/master@{#438062}
mstensho
Disable layout optimization when column height may be non-uniform.
We have no way of telling what changes beyond the first column break, so if we
cannot guarantee that the column height *is* and *was* non-uniform, we need to
re-lay out children that may stretch into the unknown.

Review-Url: https://codereview.chromium.org/2562273003
Cr-Commit-Position: refs/heads/master@{#437928}
fs
Perform "zoom compensation" for 'transform' on <svg:text>
SVGElement::calculateTransform would not compensate for effective zoom
on 'transform' for SVG <text> elements.
Refactor the code a bit so that the different parameter configurations
are selected first, and then use the same code for both <text> and non-
<text>. This makes sure that effective zoom is factored into the
computed transform for <text> as well.

BUG=665387,369942

Review-Url: https://codereview.chromium.org/2565403002
Cr-Commit-Position: refs/heads/master@{#437927}
sigbjornf
Revert of Eagerly dispose of ScheduledActions. (patchset #2 id:20001 of https://codereview.chromium.org/2552673002/ )
Reason for revert:
Speculative revert for reported perf decrease on system_health.memory_mobile, https://crbug.com/672098

Original issue's description:
> Eagerly dispose of ScheduledActions.
>
> The DOMTimer's ScheduledAction hold on to the script source and
> state needed to execute the timer action. Let go of ShceduledAction's
> resource early.
>
> Apart from reducing the lifetime of script source, this is a speculative
> fix for crashes reported in v8::PersistentValueVector::Clear() during
> lazy sweeping of ScheduledAction objects.
>
> R=
> BUG=
>
> Committed: https://crrev.com/11bd50343795ed1dc1977da91e9a1588687522fd
> Cr-Commit-Position: refs/heads/master@{#436298}

TBR=oilpan-reviews@chromium.org,haraken@chromium.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=

Review-Url: https://codereview.chromium.org/2568103002
Cr-Commit-Position: refs/heads/master@{#437889}
tommyt
PaymentApp: Make the PaymentAppFactory asynchronous
The code for fetching and filtering payment instruments in
PaymentRequestImpl is asynchronous anyway, so this change is not too
intrusive. The main thing is to insert an extra asynchronous step to
populate the mApps list before payment instrument filtering starts.

If we want to take this further, a good next step would be to start
showing apps as they are discovered, instead of waiting until we have
received all the payment apps. It would also be a good thing to
refactor some of this functionality out of the PaymentRequestImpl, as
it is growing quite complex.

Other changes that went into this commit:

* Change the PaymentAppFactory into a singleton, rather than being a
  holder class for static functions.

* Extend the AdditionalPaymentFactory functionality, so that the
  PaymentAppFactory can have many additional factories. This lets us
  make the ServiceWorkerPaymentAppBridge an additional factory, and
  normalize the relationship between the two classes.

* Add two unit tests for testing delayed payment app creation.

BUG=661608

Review-Url: https://codereview.chromium.org/2559153002
Cr-Commit-Position: refs/heads/master@{#437843}
sigbjornf
Simple BlinkGC heap compaction.
This implements heap compaction for the Blink GC infrastructure
(Oilpan), compacting the arenas of the BlinkGC heap which are most
susceptible to becoming fragmented during actual use.

Fragmentation is a real problem and a growing one while browsing anything
but static pages: the amount of unused, but allocated, memory is
fluctuating higher over time.

To avoid leaving increasing amounts of unused holes in our heaps,
heap compaction will periodically squeeze out the unused portions,
packing together the live objects. The heap pages that are then
left as unused, are subsequently released and returned to the OS.

Due to a fortunate property of Blink heap collection types, providing
such compaction is within relatively easy reach. Experiments show that
the arenas which hold such collection objects ("backing stores") are
the ones that develop fragmentation the most & persistently. While not
a complete heap compactor of all Blink GC arenas, it addresses the
fragmentation problem where it is most pressing. More can be done, later.

Explainer / design document:

 https://docs.google.com/document/d/1k-vivOinomDXnScw8Ew5zpsYCXiYqj76OCOYZSvHkaU

R=haraken
BUG=672030

Review-Url: https://codereview.chromium.org/2531973002
Cr-Commit-Position: refs/heads/master@{#437829}
fs
Strength-reduce the "scale-factor changed" condition in LayoutSVGRoot
Spend some cycles examining the difference between the old and new
local-to-border-box transforms, and only signal scale-factor changes
if that part of the transform changed.
This also means that we now detect changes scale that we previously
didn't (like [1].)

[1] paint/invalidation/svg/absolute-sized-content-with-resources.xhtml

BUG=603956,664961

Review-Url: https://codereview.chromium.org/2559123003
Cr-Commit-Position: refs/heads/master@{#437767}
mstensho
Rebaseline paint/invalidation/resize-iframe-text.html for Mac.
BUG=672676

Review-Url: https://codereview.chromium.org/2557743008
Cr-Commit-Position: refs/heads/master@{#437567}
sigbjornf
ImageResource: remove unnecessary vector copying during iteration.
Iterations that don't update the underlying collection, can be done
in-place.

R=
BUG=

Review-Url: https://codereview.chromium.org/2555103004
Cr-Commit-Position: refs/heads/master@{#437482}
mstensho
Hopefully deflake some tests, by preloading the Ahem font.
BUG=670846

Review-Url: https://codereview.chromium.org/2560073002
Cr-Commit-Position: refs/heads/master@{#437423}
rune
Missing style invalidation for :in-range and :out-of-range.
Added pseudoStateChanged calls for those pseudos where we already did
so for :valid and :invalid.

R=tkent@chromium.org
BUG=671745

Review-Url: https://codereview.chromium.org/2556423002
Cr-Commit-Position: refs/heads/master@{#437415}
mstensho
Fix path search-replace mistakes (?) that prevented resources from being loaded.
This was introduced in https://codereview.chromium.org/2321183002

Review-Url: https://codereview.chromium.org/2558263002
Cr-Commit-Position: refs/heads/master@{#437365}
fs
Unify "contributes to" and "requires mask" for clip-path child iteration
Since contributesToClip(...) and requiresMask(...) have a lot of overlap,
refactor them into a new (set of) function(s) that return an enumeration
based on the requirements for the element in question.

Review-Url: https://codereview.chromium.org/2563613002
Cr-Commit-Position: refs/heads/master@{#437248}
mstensho
Let LayoutBlockFlow::removeFloatingObject take LayoutUnit instead of int.
Review-Url: https://codereview.chromium.org/2559443002
Cr-Commit-Position: refs/heads/master@{#437221}
mstensho
[LayoutNG] Remove unnecessary #includes
NOTRY=true
BUG=591099

Review-Url: https://codereview.chromium.org/2561553002
Cr-Commit-Position: refs/heads/master@{#437217}
rune
Make sure media query results are re-collected.
When media attributes change on style elements, we need to re-append
all sheets in the scope in order to collect the viewport and device
dependent media results correctly. This already done forced by the
FullStyleUpdate in parseAttribute, but we want to minimize the changes
here with async style update and ruleset based invalidations by marking
the treeScope dirty, and if nothing changed, invalidate no style.

However, we need to re-add global rule data, or at least the media
query results.

Example: say that we have a window width of 800px below. After the
media attribute has been changed, we don't need to recalculate any
styles, but we need to make sure we detect style changes crossing the
width of 2000px instead of 1000px.

<style media="(min-width: 1000px)"> ... </style>

<script>
  styleElement.setAttribute("media", "(min-width: 2000px");
</script>

R=meade@chromium.org
BUG=567021

Review-Url: https://codereview.chromium.org/2554193002
Cr-Commit-Position: refs/heads/master@{#437213}
rune
Make setNeedsActiveStyleUpdate mark treescope dirty only.
Pass the treeScope instead of a stylesheet pointer and remove the
synchronous resolverChanged() call. Instead add the resolveChanged()
calls where currently necessary and mark them for removal.

This makes the setNeedsActiveStyleUpdate implementation like what we
want to end up with [1]. I've done it this way to make the following
CLs easier to review.

Also, setNeedsActiveStyleUpdate calls are removed where we call
removeStyleSheetCandidateNode() since that method already marks the
tree-scope dirty.

[1] https://codereview.chromium.org/1913833002/

R=meade@chromium.org
BUG=567021

Review-Url: https://codereview.chromium.org/2546393002
Cr-Commit-Position: refs/heads/master@{#437212}
rune
Mark correct tree-scope dirty removing link in shadow.
Noticed while working on 567021, StyleElement found the correct
tree-scope in from of a shadow root when applicable while
HTMLLinkElement would just use the document. This is what kept us from
being able to use AnalyzedStyleUpdate for removedFrom() for link
elements.

R=meade@chromium.org
BUG=671596

Review-Url: https://codereview.chromium.org/2554873002
Cr-Commit-Position: refs/heads/master@{#437210}
mstensho
Better isPageLogicalHeightKnown() implementation.
Need to consult the flow thread, if we have one. We may run into situations
where fragmentainer groups in the first column set have got their height
calculated, while later column sets still haven't calculated it [1]. So
checking if flow thread offset 0 is in a fragmentainer of known height isn't
good enough.

Also moved the implementation from LayoutBlock to LayoutBox, since it's pretty
coincidental that we currently don't need this particular method outside of
LayoutBlock.

[1] LayoutMultiColumnSet::recalculateColumnHeight() may reset the column
heights if it detects that the column set has been moved since previous layout
pass.

BUG=670902

Review-Url: https://codereview.chromium.org/2553133002
Cr-Commit-Position: refs/heads/master@{#437063}
fs
Don't check 'visibility' in LayoutSVGResourceMasker
Since 'visibility' does not work in the same way as 'display', it's not
possible to "prune" subtrees based on non-'visible' values of the
property. Remove the check from the two methods that use it, and leave
to lower levels to handle it.

BUG=672055

Review-Url: https://codereview.chromium.org/2558793002
Cr-Commit-Position: refs/heads/master@{#436996}
fs
Don't allow <use> <text> references in clip-path fast-path
The fast-path can't handle <text>, but a <use> referencing <text> was
not properly checked resulting in an incorrect clip.
Make the requiresMask(...) helper handle <use> elements and check the
referenced element.

BUG=604677,604679

Review-Url: https://codereview.chromium.org/2560773002
Cr-Commit-Position: refs/heads/master@{#436941}
rune
Use correct document for notifying of inserted import.
Notify the root document to update active stylesheets. If the import
child contains stylesheets, the StyleEngine for the import document
will be notified correctly.

Added a couple of sanity DCHECKs.

R=meade@chromium.org
BUG=671322

Review-Url: https://codereview.chromium.org/2551973003
Cr-Commit-Position: refs/heads/master@{#436887}
mstensho
Never position a float after it has been placed.
When a float is marked as "placed" (which happens in
LayoutBlockFlow::placeNewFloats()), it means that it has been added to a float
interval tree. It is not allowed to move a float afterwards (unless we remove
and re-insert the floats somehow, e.g. by re-laying out its containing block).
Otherwise, the interval tree may get out of sync with reality, and we may fail
to find the reference to a FloatingObject in the interval tree when deleting a
FloatingObject, so that we end up deleting the FloatingObject, but not the
reference to it in the interval tree (which will remain there, pointing to a
now dead object).

This could happen when LayoutBlockFlow::removeFloatingObjectsBelow() was called
during pagination. We sometimes need to re-lay out a line because the line or
floats next to the line get pushed to the next fragmentainer. As part of that,
we also need to get rid of the floats that we thought would sit beside the
line, and re-position them.

BUG=670927

Review-Url: https://codereview.chromium.org/2553923003
Cr-Commit-Position: refs/heads/master@{#436776}
fs
Rework SVGViewSpec<->SVGSVGElement integration
This turns SVGViewSpec into a more independent component, by moving
parsing (case) logic into it, and changing adding an accessor interface
on SVGSVGElement that allows access to, and handles invalidation of the
SVGSVGElement's view properties.

The m_useCurrentView is done away with, and instead the code just checks
if there's an SVGViewSpec attached. Naturally this also means that care
needs to be taken to "detach" the old SVGViewSpec when needed.

Review-Url: https://codereview.chromium.org/2552513002
Cr-Commit-Position: refs/heads/master@{#436704}
fs
Unify predicates for elements "contributing" to a <clipPath>
LayoutSVGResourceClipper has four loops that iterate the child elements
that contribute to the clip path. They are however all subtly different.

To remedy this and make it more obvious that the same set of elements
are iterated, add a helper contributesToClip(...) that handles the
checking of if an element is considered to be contributing to the clip
path or not. This yields four loops with a very similar structure.

Also move path-extraction to a helper, use helpers from Traversal<...>
for basic iteration, drop LayoutObject/ComputedStyle related checks
from the SVGUseElement helper (now handled elsewhere) and hoist the
PaintInfo out of the loop in createContentPicture since it is invariant.

Review-Url: https://codereview.chromium.org/2560513002
Cr-Commit-Position: refs/heads/master@{#436703}
fs
Don't fail clip-paths with empty bounds
An empty nested clip-path should result in an empty clip-path (clipping
away everything.)

BUG=671543
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Review-Url: https://codereview.chromium.org/2555483003
Cr-Commit-Position: refs/heads/master@{#436605}
fs
Properly simulate self-closing tags when in "foreign content" mode
When background parsing, a tag that "opens" foreign content mode and had
the "self-closing" flag set (<svg/> and <math/>), would place the
simulator in foreign content mode without a chance to get out of it.
Run the "end tag" steps in this case too, to properly balance the
namespace stack.

BUG=537642

Review-Url: https://codereview.chromium.org/2546373002
Cr-Commit-Position: refs/heads/master@{#436569}
mstensho
Refactor layoutBlock() and layoutBlockFlow(). Happens to fix bugs.
Move what only needs to be done once into layoutBlock(). Rename
layoutBlockFlow() to layoutChildren(). Establish LayoutState once, and compare
with the actual previous height to properly detect height changes.

This fixes two issues with the PaintLayerScrollableArea::FreezeScrollbarsScope
mechanism. Tests added.

1. We used to push LayoutState for the same object twice when freezing
scrollbars, which confused the fragmentation machinery.

2. We failed to detect height changes when freezing scrollbars, because we were
unable to compare against the original height (we compared against the height
we had when entering the second layout pass, rather than comparing against the
one we had when entering the first layout pass). We might therefore end up
skipping necessary re-layout of absolutely positioned descendants.

BUG=669039,670660

Review-Url: https://codereview.chromium.org/2553833002
Cr-Commit-Position: refs/heads/master@{#436414}
sigbjornf
Disallow off-heap containers containing raw on-heap pointers.
R=
BUG=

Review-Url: https://codereview.chromium.org/2553673002
Cr-Commit-Position: refs/heads/master@{#436351}
sigbjornf
Eagerly dispose of ScheduledActions.
The DOMTimer's ScheduledAction hold on to the script source and
state needed to execute the timer action. Let go of ShceduledAction's
resource early.

Apart from reducing the lifetime of script source, this is a speculative
fix for crashes reported in v8::PersistentValueVector::Clear() during
lazy sweeping of ScheduledAction objects.

R=
BUG=

Review-Url: https://codereview.chromium.org/2552673002
Cr-Commit-Position: refs/heads/master@{#436298}
tommyt
PaymentApp: Add classes for supporting Web Based Payment Apps
This adds an application class, an instrument class and a skeleton
bridging class which can later be implemented to communicate with the
service worker class in C++.

The app factory class has been extended to create instances of the new
web based payment apps in addition to the existing autofill payment app.

BUG=669876

Review-Url: https://codereview.chromium.org/2526293003
Cr-Commit-Position: refs/heads/master@{#436274}
kszatan
Fix Firefox bookmarks import.
Firefox abandoned usage of the moz_bookmarks_roots table since v. 30 and
removed the table in v. 31 in favor of storing relevant info in the
'guid' column of the moz_bookmarks table.

BUG=638977

Review-Url: https://codereview.chromium.org/2296633002
Cr-Commit-Position: refs/heads/master@{#436262}
rune
Schedule layout tree update for dirty tree scopes.
In preparation for async stylesheet update, schedule a layout tree
update when marking tree scopes dirty for active style sheets. This is
necessary to trigger a beginFrame which will in turn call
updateActiveStyle as part of the lifecycle update.

R=meade@chromium.org
BUG=567021

Review-Url: https://codereview.chromium.org/2547883002
Cr-Commit-Position: refs/heads/master@{#436248}
rune
Correctly re-collect active style for html imports.
- Need to re-collect active stylesheets when inserting already cached
  import documents.

- Missing markDocumentDirty() when inserting import documents.

- Added test for missing coverage of the need for marking for re-
  collection from HTMLImportChild::ownerInserted().

The fact that we need to recollect sheets in the document scope and
recalculate style for the whole document is not a perf regression, this
is how it used to be before considering the async stylesheet update
with ruleset invalidations, but ideally we would like to do better.
It's unlikely a common use case as html imports are typically loaded in
head as script and rendering blocking.

R=meade@chromium.org
BUG=567021

Review-Url: https://codereview.chromium.org/2551473002
Cr-Commit-Position: refs/heads/master@{#436238}
mstensho
Complete layout even if a block needs relayout due to widows or column balancing.
We cannot just abort in the middle of layoutBlockFlow() when we detect that we
need another layout pass (due to new column height or because we want an
earlier break to satisfy the widows requirement). We might miss our only
opportunity to detect size changes that way, and thus skip necessary layout and
repositioning of absolutely positioned descendants.

BUG=591637

Review-Url: https://codereview.chromium.org/2471623003
Cr-Commit-Position: refs/heads/master@{#436192}
fs
Drop SVGElement::accessDocumentSVGExtensions()
This method has a single user into which it can be folded without any
issues. The comment in the method seem to no longer apply.

Also drop an unused friend declaration while at it.

Review-Url: https://codereview.chromium.org/2548573003
Cr-Commit-Position: refs/heads/master@{#436051}
rune
Returned MediaQuerySet should be const.
The MediaQuerySet is never modified outside the class. We don't have
any evidence that this fixes the mentioned issue though.

R=sigbjornf@opera.com
BUG=669757

Review-Url: https://codereview.chromium.org/2547713003
Cr-Commit-Position: refs/heads/master@{#436031}
mstensho
Don't include ComputedStyle.h where not needed.
This reduces the dependency on ComputedStyle.h from more than 2000 compilation
units to less than 1000.

Review-Url: https://codereview.chromium.org/2539363003
Cr-Commit-Position: refs/heads/master@{#435928}
mstensho
Don't include CachedUAStyle.h from StyleResolver.h
Eliminates another 40+ compilation unit dependencies on ComputedStyle.h

Review-Url: https://codereview.chromium.org/2545953003
Cr-Commit-Position: refs/heads/master@{#435925}
rune
Make updateStyleInvalidationIfNeeded() private.
It is not invoked outside of Document.

This is split out of the larger CL for 567021.

R=mstensho@opera.com
BUG=567021

Review-Url: https://codereview.chromium.org/2537863006
Cr-Commit-Position: refs/heads/master@{#435922}
rune
Remove MediaQuerySet:createOffMainThread.
The implementation is identical to MediaQuerySet::create.
Removed old cruft from the unit test from when we had two media query
parsing implementation.

R=yoav@yoav.ws,timloh@chromium.org

Review-Url: https://codereview.chromium.org/2545663005
Cr-Commit-Position: refs/heads/master@{#435920}
mstensho
Margins that start at fragmentainer boundaries should be collapsed away.
This only applies if the fragmentainer break is unforced. If it's forced, the
margin is to be preserved.
See https://drafts.csswg.org/css-break/#break-margins

Get rid of LayoutBlock::nextPageLogicalTop(), since nobody calls it anymore.

BUG=440362

Review-Url: https://codereview.chromium.org/2542723002
Cr-Commit-Position: refs/heads/master@{#435917}
fs
Avoid repeating ourselves in SVGAnimatedEnumerationBase::setBaseVal
After performing the range checks on the value, we can call our "generic"
setBaseVal and avoid repeating this code-sequence.

Review-Url: https://codereview.chromium.org/2548533003
Cr-Commit-Position: refs/heads/master@{#435715}
fs
Only communicate CSSPrimitiveValue references from SVGLength
Make asCSSPrimitiveValue() return a reference to a CSSPrimitiveValue,
rather than a pointer. The CSSPrimitiveValue contained in the SVGLength
can/should never be null.
Add a helper to SVGAnimatedLength to cut down on some boilerplate for
accessing the current CSSValue.

Review-Url: https://codereview.chromium.org/2549563002
Cr-Commit-Position: refs/heads/master@{#435688}
fs
Neuter the "screen scale factor" computation for SVG <text>
This removes the PaintLayer-factor and DSF from the "screen scale factor",
leaving only the transform to the <svg> root and the "content transform" (used
by <pattern>, <mask> and <clipPath>.)

BUG=664961

Review-Url: https://codereview.chromium.org/2492013004
Cr-Commit-Position: refs/heads/master@{#435599}
tommyt
PaymentApp: Allow multiple payment method names for one instrument.
This changes the name and signature of the
PaymentInstrument.getInstrumentMethodName method to:

    Set<String> getInstrumentMethodNames()

This is to match the "enabledMethods" field in the PaymentAppOption
dictionary in the Payment Apps specification, which is defined to be a
sequence of strings.

See: https://w3c.github.io/webpayments-payment-apps-api/#payment-app-options

I also change the name of PaymentInstrument.getInstrumentDetails to
"invokePayment" in order to convey better that this is where the payment
method specific stuff happens. For a Web Based Payment App, this method
is an appropriate point to launch the payment request event into the
service worker.

BUG=669876

Review-Url: https://codereview.chromium.org/2530793002
Cr-Commit-Position: refs/heads/master@{#435587}
fs
Cleanup after removal of the SVGViewSpec interface
With DOM requirements gone, we can turn this into something a bit simpler.
Remove the SVGFitToViewBox inheritance in favor of direct references to
the relevant objects. Similarly drop/unwrap the SVGAnimatedTransformList.

The above gets rid of the only users of SVGAnimatedProperty::setReadOnly
and associated state, as well as the corresponding state in the tear-off.

Also drop an unused methods from SVGSVGElement and rename currentView()
to ensureViewSpec(), making it private in the process.

Review-Url: https://codereview.chromium.org/2537223006
Cr-Commit-Position: refs/heads/master@{#435485}
mstensho
Introduce resetLayout(), to offload layoutBlockFlow().
Review-Url: https://codereview.chromium.org/2529423003
Cr-Commit-Position: refs/heads/master@{#435471}
mstensho
Avoid rogue line float re-layout.
We cannot just lay out an object without setting its position first. That would
confuse the fragmenation machinery. Fortunately, it's not even necessary to lay
out here. Changed the comment, as an attempt to explain why.

BUG=663942

Review-Url: https://codereview.chromium.org/2539813002
Cr-Commit-Position: refs/heads/master@{#435442}
tsniatowski
Remove android build dir nesting restriction
It appears that android builds no longer have to be nested exactly two
levels under //. A build with one level works, so the assert in gn is
no longer helpful.

BUG=412935
R=agrieve@chromium.org

Review-Url: https://codereview.chromium.org/2544493002
Cr-Commit-Position: refs/heads/master@{#435410}
sigbjornf
CSSSelectorWatch: avoid unnecessary hash table lookups.
Review-Url: https://codereview.chromium.org/2541853002
Cr-Commit-Position: refs/heads/master@{#435361}
tmoniuszko
Rename 'interface' parameter
It conflicts with define from combaseapi.h from Windows SDK.

BUG=

Review-Url: https://codereview.chromium.org/2524733003
Cr-Commit-Position: refs/heads/master@{#435169}
fs
Use the right point for marker orientation when closing a subpath
Path::apply doesn't pass a point along for the PathElementCloseSubpath
command. This would yield the wrong orientation on the last marker-mid
on the path (see crbug.com/633012#c1 for an example.)
Use m_subpathStart where needed instead.

BUG=633012

Review-Url: https://codereview.chromium.org/2539763002
Cr-Commit-Position: refs/heads/master@{#434988}
fs
Cleanup SVGMarkerData::updateFromPathElement
Make the updateFromPathElement "closure" a simple thunk-style function,
to make it a little less unwieldy. Also pass PathElement& rather than
PathElement*.

BUG=633012,450368

Review-Url: https://codereview.chromium.org/2540513005
Cr-Commit-Position: refs/heads/master@{#434987}
mstensho
[LayoutNG] Correct inline size for children of multicol containers.
This will lay out multicol containers in one single tall column, without any
support for fragmentation or column balancing.

Also had to disable creation of the anonymous LayoutMultiColumnFlowThread child
of multicol containers, since that's not going to be used in LayoutNG.

The algorithm for calculating the used values of column-width and column-count
can be found here: https://drafts.csswg.org/css-multicol-1/#pseudo-algorithm

Review-Url: https://codereview.chromium.org/2528203002
Cr-Commit-Position: refs/heads/master@{#434971}
mstensho
Position a float before laying it out.
We'll no longer perform inaccurate layout from insertFloatingObject(), but
defer all layout to positionAndLayoutFloat(). We need to do this correctly
everywhere. One crucial thing is also to pay attention to the resulting
pagination strut before the float, if any. There's only one place where we do
this, and that's in positionAndLayoutFloat().

At most call sites, insertFloatingObject() is followed by a call to
placeNewFloats(), which will call positionAndLayoutFloat(). There are
exceptions to this in line layout, though. In some cases we just insert floats
without laying them out and placing them. This happens when we need to figure
out the height of the current line before we can place floats below it. In
order to figure out if a float fits on the current line, though, we first need
to lay it out without marking it as placed.

We lacked some test coverage, so I added
float-pushed-to-next-fragmentainer-by-floats.html . This also passed prior to
this CL, but I nearly broke it while working on this.

BUG=663942

Review-Url: https://codereview.chromium.org/2532573003
Cr-Commit-Position: refs/heads/master@{#434969}
mstensho
[LayoutNG] No need to search for inline children inside a block-children block.
Also type-check that we're dealing with a LayoutBlockFlow before casting.

Review-Url: https://codereview.chromium.org/2527393002
Cr-Commit-Position: refs/heads/master@{#434968}
mstensho
No longer store page logical height in LayoutState.
That height may not be uniform throughout the entire fragmentation context
anyway, so it's not reliable to do it like this. For multicol, the value was
only used as a flag (0=unknown height, 1=known height).

Move calculation of available column height to LayoutMultiColumnFlowThread. It
no longer needs to live in LayoutBlockFlow.

Review-Url: https://codereview.chromium.org/2529073002
Cr-Commit-Position: refs/heads/master@{#434965}
fs
Update svg/wicd/test-rightsizing-b.xhtml expectations
Attempt to compensate for some recent changes to DRT output. Also try
to get some more "correct" reference images.

TBR=schenney@chromium.org
NOTRY=true
BUG=639147

Review-Url: https://codereview.chromium.org/2537083003
Cr-Commit-Position: refs/heads/master@{#434962}
rune
Introduce markAllTreeScopesDirty.
When we need to recollect active stylesheets for all scopes, have an
explicit markAllTreeScopesDirty method instead of relying on
FullStyleUpdate which will go away for async active stylesheet updates.

This CL does not contain functional changes.

R=meade@chromium.org
BUG=567021

Review-Url: https://codereview.chromium.org/2534863002
Cr-Commit-Position: refs/heads/master@{#434940}
fs
Make 'transform' a presentation attribute on SVG elements
This makes 'transform', 'gradientTransform' and 'patternTransform'
presentation attributes on SVGGraphicsElements, SVGGradientElements
and SVGPatternElements respectively.

Spec:

 http://www.w3.org/TR/css3-transforms/#svg-transform
 http://www.w3.org/TR/css3-transforms/#svg-syntax
 http://www.w3.org/TR/css3-transforms/#svg-gradient-transform-pattern-transform

Salvaged from https://codereview.chromium.org/423093014, but takes a
different approach to bridge the syntax gap and avoid crbug.com/577219.

The strategy taken here is to use the SVGTransformList to generate a
CSSValue for the presentation attribute style, and hence postponing
both support for the full transform syntax and a way around the bug
mentioned above. Essentially softening the blow. These two "features"
are expected to be implemented eventually, so this is just a "first
step".

BUG=369942
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Review-Url: https://codereview.chromium.org/2478233002
Cr-Commit-Position: refs/heads/master@{#434934}
sigbjornf
Fix speech-synthesis-speak-multiple.html flakiness.
Follow up on r420711 (crbug.com/589632) and adjust the expected lower
bound on ".elapsedTime" to also include zero for 'start' events.

TBR=dmazzoni
BUG=660448

Review-Url: https://codereview.chromium.org/2540623002
Cr-Commit-Position: refs/heads/master@{#434931}
sigbjornf
Handle overlapping uses of MockWebSpeechRecognizer.
More than one speech recognition object may exist at the same time,
all sharing a single MockWebSpeechRecognizer underneath when
running layout tests.

Overlapping uses of speech recognizer objects weren't something
the mock object was designed to gracefully handle, hence fuzzer
inputs would leave the mock object in an invalid state and crash,
when they attempted to do so.

Rather than try to ignore and prevent overlapping uses from going
ahed, we extend MockWebSpeechRecognizer with support for handling
them, queueing recognizer context switching tasks that will run
upon completion of the currently ongoing sequence of tasks that
a speech recognizer object expects.

R=
BUG=668019

Review-Url: https://codereview.chromium.org/2525933002
Cr-Commit-Position: refs/heads/master@{#434777}
fs
Rework the "rules for parsing dimension values" implementation
This CL reworks the current implementation of the "rules for parsing
dimension values" [1] (HTMLElement::addHTMLLengthToStyle) into a
separate function and moves it to HTMLDimension.{cpp,h}.
In general, behavior deviating from the specced version is kept with the
following exceptions:

 * Allow all of the "space characters" [2], rather than just U+0020.

 * Cases with multiple full stops (ex: "1.2.3") now parse the same as
   "1.2" rather than failing.

Comments are added where the implementation is known to deviate from the
spec.

This also makes it possible to avoid calling into the CSS parser for
actual parsing, which should reduce the amount of special-cases needed
there. This requires a mechanism for disallowing percentage values
though, to properly handle 'cellspacing' on <table>.

[1] https://html.spec.whatwg.org/multipage/infrastructure.html#rules-for-parsing-dimension-values
[2] https://html.spec.whatwg.org/multipage/infrastructure.html#space-character

BUG=668478

Review-Url: https://codereview.chromium.org/2528673003
Cr-Commit-Position: refs/heads/master@{#434678}
mstensho
[LayoutNG] Remove all mentions of NGBox and NGInlineBox.
It's called NGBlockNode and NGInlineNode now.

Also removed an old TODO about common base class for NGBlockNode and
NGInlineNode. They do have a common base class now.

Review-Url: https://codereview.chromium.org/2530083003
Cr-Commit-Position: refs/heads/master@{#434630}
mstensho
Remove spurious Ctrl+Y character from paint invalidation test.
This caused the test to fail for me, when run locally.

Review-Url: https://codereview.chromium.org/2529843002
Cr-Commit-Position: refs/heads/master@{#434579}
mstensho
[LayoutNG] Simplify NGBox::CanUseNewLayout().
Review-Url: https://codereview.chromium.org/2535533002
Cr-Commit-Position: refs/heads/master@{#434555}
mstensho
[LayoutNG] Typos in ComputeMinAndMaxContentSizes() documentation.
Review-Url: https://codereview.chromium.org/2526223004
Cr-Commit-Position: refs/heads/master@{#434525}
mstensho
[LayoutNG] Unit tests for MinAndMaxContentSizes::ShrinkToFit().
Also DCHECK in the implementation that max_content isn't less than min_content.

Review-Url: https://codereview.chromium.org/2528433006
Cr-Commit-Position: refs/heads/master@{#434458}
rune
Check for styleResolver() in preparation for async style update.
Currently, active stylesheets are appended to ScopedStyleResolver
through the StyleResolver. When we move to async stylesheet update with
ActiveStyleSheets being appended from StyleEngine, styleResolver() is
typically null the first time we update the active stylesheets.

Add a null check before accessing styleResolver() when adding
@font-face rules.

R=nainar@chromium.org,meade@chromium.org
BUG=567021

Review-Url: https://codereview.chromium.org/2522423002
Cr-Commit-Position: refs/heads/master@{#434437}
mstensho
Set the inline position of floats a bit later.
No need to do it so early, since nobody cares about its position at this point.
This means that there's also no need to update it after having been pushed down
by pagination. As long as we set it before positioning subsequent floats or
other types of content, we're good.

Also store margins as local variables. No huge gain, apart from prettier code
with fewer breaks.

No behavior changes intended.

Review-Url: https://codereview.chromium.org/2511283003
Cr-Commit-Position: refs/heads/master@{#434388}
rune
Move MediaQueryResults to RuleFeatureSet.
The existing code only cleared the query results on the StyleResolver
when the StyleResolver was cleared. That meant we could end up in a
situation where the result list was ever-growing. That wasn't a big
issue in practice as the StyleResolver would be cleared quite often on
stylesheet changes. However, that will change when the RuleSet based
style invalidation is enabled.

We move the media query results to RuleFeatureSet so that:

- Results for @media rules are stored in RuleFeatureSet instead of
  RuleSet.
- Results for media attributes are stored in the ScopedStyleResolver
  when added instead of appending them directly to StyleResolver.
- Accumulated results for all scopes are stored in CSSGlobalRuleSet
  on StyleEngine instead of StyleResolver and are accumulated with
  other rule features in ScopedStyleResolver::collectFeaturesTo().

This CL introduces StyleEngine::ruleSetForSheet() for evaluating the
media attribute of the stylesheet node and create the RuleSet if the
media attribute matches. That way we are able to make the
MediaQueryEvaluator private to StyleEngine. Also, this method is
required when we start using ActiveStyleSheets.

R=meade@chromium.org
BUG=567021,614026

Review-Url: https://codereview.chromium.org/2528633003
Cr-Commit-Position: refs/heads/master@{#434383}
rune
Force adding sheets and recalc for html import re-ordering.
When we remove an import link and re-insert it into the document, the
import Document and CSSStyleSheet pointers are persisted. That means the
comparison of active stylesheets is not able to figure out that the
order of the stylesheets have changed after insertion.

We fall back to re-add all sheets to the scoped resolver and recalculate
style for the whole document if we remove an import in case it is re-
inserted into the document. The assumption is that removing html imports
is very rare.

For re-ordering of link rel=stylesheet the CSSStyleSheet object is
cleared on removal and recreated on insertion. Since the active
stylesheet list keeps references to CSSStyleSheet, CSSStyleSheet
pointers will not be re-used.

R=meade@chromium.org
TEST=fast/html/imports/import-readd-*
BUG=567021

Review-Url: https://codereview.chromium.org/2519393002
Cr-Commit-Position: refs/heads/master@{#434374}
rune
Check explicitly for style invalidation/recalc in @font-face test.
needsLayoutTreeUpdate will return true for needing to update the global
ruleset for async style update. Even if the test only tries to add a
@font-face rule, we unconditionally recollect the CSSGlobalRuleSet when
stylesheets are added or removed.

Instead check that adding a @font-face rule in a shadow tree does not
cause style invalidation or recalc.

R=meade@chromium.org
BUG=567021

Review-Url: https://codereview.chromium.org/2520263002
Cr-Commit-Position: refs/heads/master@{#434367}
wdzierzanowski
Adjust VideoRendererAlgorithm for |frame_dropping_disabled_|
This makes video frame hashing in tests immune to timing variations that
are inherent in the rendering algorithm.

BUG=663709
TEST=media_unittests pass, new unit test VideoRendererAlgorithmTest.EffectiveFramesQueuedWithoutFrameDropping

Review-Url: https://codereview.chromium.org/2502093002
Cr-Commit-Position: refs/heads/master@{#434350}
mstensho
EDisplay enum class: Rename [Inline]Box to Webkit[Inline]Box.
The "box" and "inline-box" values (or rather: "-webkit-box" and
"-webkit-inline-box") for "display" are for an early-stage version of the
flexbox spec, which the web embraced before the flexbox spec got around to
going CR (which uses the values "flex" and "inline-flex" instead).

Furthermore: Having both EDisplay::InlineBox enum value and the InlineBox class
(in Source/core/layout/line/InlineBox.h) confuses the symbol lookup in gdb,
which causes a ~40 seconds freeze [1] when working on something that involves the
InlineBox class.

[1] For component builds with gdb_index set to true in gn

BUG=655961

Review-Url: https://codereview.chromium.org/2524903003
Cr-Commit-Position: refs/heads/master@{#434316}
mstensho
No need to force relayout of children when page logical height changes.
Also removed an ignored out-parameter hasSpecifiedPageLogicalHeight from
checkForPaginationLogicalHeightChange().

Review-Url: https://codereview.chromium.org/2509323005
Cr-Commit-Position: refs/heads/master@{#434290}
rune
Move MediaQueryEvaluator from StyleResolver to StyleEngine.
The plan is to move active stylesheet update and viewport/device-
dependent media query results from StyleResolver to StyleEngine which
means it makes sense to move the MediaQueryEvaluator there as well.
That means that the StyleResolver will temporarily ask the StyleEngine
for the evaluator when needed.

See https://codereview.chromium.org/1913833002/ for planned changes.

R=meade@chromium.org
BUG=567021

Review-Url: https://codereview.chromium.org/2521063005
Cr-Commit-Position: refs/heads/master@{#434144}
fs
Apply the font scale factor when generating stroke geometry for <text>
Because of the special font scale factor applied to <svg:text> to bring
it into a pseudo "host" transform, the stroke geometry would end up
being generated in/relative to the wrong coordinate space.
Apply the same scale to dash-related properties as was previously
applied to stroke-width.

BUG=667453
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Review-Url: https://codereview.chromium.org/2513343005
Cr-Commit-Position: refs/heads/master@{#434135}
mstensho
Make auto-scrollbar shrink-to-fit test more evil.
Be sure to have laid out before making style changes.

Review-Url: https://codereview.chromium.org/2521193002
Cr-Commit-Position: refs/heads/master@{#434128}
mstensho
invalidateColumnSets() doesn't need to mark anything for layout.
Review-Url: https://codereview.chromium.org/2522453003
Cr-Commit-Position: refs/heads/master@{#433952}
mstensho
Add test for line float that removes a tall unbreakable block child.
Review-Url: https://codereview.chromium.org/2521963002
Cr-Commit-Position: refs/heads/master@{#433910}
mstensho
Move stuff from layoutBlockFlow() into new method addOverhangingFloatsFromChildren().
+ some cleanup in the vicinity.

Review-Url: https://codereview.chromium.org/2515303003
Cr-Commit-Position: refs/heads/master@{#433886}
sigbjornf
Drop finalization for ElementShadows.
The empty destructor serves no purpose now, so let it go.

R=
BUG=

Review-Url: https://codereview.chromium.org/2485373003
Cr-Commit-Position: refs/heads/master@{#433844}
sigbjornf
XMLHttpRequest.abort(): follow spec wrt readyState transitions.
readyState is now only set to UNSENT if abort() is called on an object
with readyState in a DONE state.

R=tyoshino,yhirano
BUG=667294

Review-Url: https://codereview.chromium.org/2517173002
Cr-Commit-Position: refs/heads/master@{#433840}
sigbjornf
Enable precompiled headers for Blink on Windows.
One reason Blink is slow to compile is that there is a lot of code
included in every compilation unit. This is partly because everything
depends on either LayoutObject.h or Document.h and those in turn
include huge portions of the rest of Blink.

By precompiling LayoutObject.h and Document.h, the compilation of
core/ and modules/ in Blink can be considerably reduced;
some numbers:

@ r433149       config      build (mins)  size (Kb)
------------------------------------------------
master:         Debug       149:30        9410487
master:         Release     176:16        6118938

opera-pch[2]:   Debug       134:59        9337121
opera-pch[2]:   Release     160:42        6110812

opera-pch[3]:   Debug        93:06        8935714
opera-pch[3]:   Release     108:34        5029242

This for a clean build of target 'blink_tests', i.e., building
both chromium and blink parts. The gains are all local to Blink,
clearly. Host is an i7-3770 (4 phys cores); 32G + 256 SSD -
Win7 Pro.

The precompiled header file is judiciously (and forcefully) included
while compiling the core/ + web/ (and some of modules/) sources. Except
for some name disambiguation trivia when compiling the XPath grammar,
no source changes are needed to make this work out.

Note that distributed compilation system disables precompiled headers
globally so this will *not* make trybots faster. But many developers
don't have access to such super powers.

This already landed[1] in the gyp/VS2013 world some time ago but
unclear & unexplained bot failures caused a revert. Now with gn and
VS2015 the world should be a better place. This CL actually takes over
where [2] got stuck / ran out of time, extending its scope quite
considerably (i.e., 40 mins faster builds wrt the above pch numbers.)

[1] https://codereview.chromium.org/1167523007/
[2] https://codereview.chromium.org/2152783002/
[3] this CL.

Note sheriffs: should unexplained Windows build errors surface on the bots,
similar to the ones seen in crbug.com/511945, then please consider this CL a suspect.
This was with GYP and earlier MSVC toolchains; we have no reason to believe the problem
was fixed with GN and MSVC2015, we're just hoping for the best.

R=
BUG=495697
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel

Review-Url: https://codereview.chromium.org/2520863002
Cr-Commit-Position: refs/heads/master@{#433832}
fs
Repaint SVG subtree on viewport changes (resize)
When the (outermost) <svg> is sized using percentages, and an ancestor
changes size, the LayoutSVGRoot will be marked for layout (even though
the dimension/initial viewport changes.)
Since changed dimensions can imply a new scale factor (for instance from
interactions with a viewBox) or previously clipped content being
exposed, we need to issue paint invalidations for the entire SVG.

BUG=665912

Review-Url: https://codereview.chromium.org/2511353002
Cr-Commit-Position: refs/heads/master@{#433622}
sigbjornf
HashTable: bring per-table stats tracking back to life.
Recording per-hash table stats (DUMP_HASHTABLE_STATS_PER_TABLE)
broke with the introduction of Oilpan, as the feature depended
on finalizable HashTable<>s, something Oilpan heap hash tables
are not.

If the hash table resides on the Oilpan heap, arrange for the
stats object to also reside there.

While here, also unify the handling of global HashTable stats
recording and the per-table representation.

R=
BUG=

Review-Url: https://codereview.chromium.org/2511983003
Cr-Commit-Position: refs/heads/master@{#433494}
sigbjornf
DOMMatrix: add missing propagation of exceptions.
R=
BUG=659899,388780

Review-Url: https://codereview.chromium.org/2514453005
Cr-Commit-Position: refs/heads/master@{#433449}
mstensho
Force re-layout of a float when we just became unfragmented.
We need to re-lay out a float if we cease to be fragmented, in order to remove
any pagination struts that may previously have been set inside.

This is an addition to https://codereview.chromium.org/2454083002 , which fixed
something similar for regular in-flow blocks.

Review-Url: https://codereview.chromium.org/2512163002
Cr-Commit-Position: refs/heads/master@{#433221}
mstensho
If an object's containing block is in a flow thread, so is the object.
Remove harmful condition in LayoutState that the object not be out-of-flow.

Boring details:

In simplified layout of an absolutely positioned object inside a multicol
container we'd fail to realize that we were paginated, and therefore wouldn't
insert pagination struts. This was only problematic for simplified layout. In
normal non-simplified layout, we'd pass a non-zero page logical height to
LayoutState() when entering the flow thread, and, even if the LayoutState of
the absolutely positioned descendant would have no flow thread associated with
it, it would still become m_paginated, thanks to the non-zero page logical
height. Which was enough to get the machinery to insert struts.

BUG=589004

Review-Url: https://codereview.chromium.org/2516463003
Cr-Commit-Position: refs/heads/master@{#433220}
mstensho
Improve strut handling in initial column balancing pass.
Only use the pagination strut from the first object or line (in each parallel
flow [1]) that we find at a page break. When we need to break before some
content, we may end up setting the pagination strut on some ancestor of said
content, rather than on the content (layout object or line box). This happens
when there's no break opportunity (class A, B or C break point [2]) before the
content that doesn't fit in its current fragmentainer (there's no break
opportunity before the first line in a block, for instance). In such cases we
need to propagate the strut to some ancestor that comes after a valid break
opportunity. In such situations, there'll be severeal layout objects or line
boxes that start at the exact top of the next fragmentainer. Only the first
object in layout tree order will have the strut. Subsequent objects (children,
typically) or lines that also are flush with the top of the fragmentainer will
have a strut of 0. We shouldn't overwrite the actual strut with 0, or we risk
overstretching the columns. At each break we need to know the exact amount of
space that was "wasted" because of the break, and subtract it, in order to
calculate a minimal column height.

[1] https://www.w3.org/TR/css-break-3/#parallel-flows
[2] https://www.w3.org/TR/css-break-3/#possible-breaks

We also need to make sure that we associate breaks with the right column when
balancing, i.e. the former column, not the latter. This distinction matters if
the pagination strut is 0 and we're at the exact top/bottom of some column.

This CL also enables using specified column height even when balancing a
multicol container. It may be that the final column height will actually be the
same as the specified height, which means that if we set it right away, we
might be able to eliminate a subsequent layout pass [1]. Almost more importantly,
doing this will exercise code in the column balancer that was previously only
used when balancing inside nested multicol. This in turn means that it will
become less cumbersome to write tests for this code, and hopefully more
difficult for bugs to hide in there as well.

[1] LayoutTests/paint/invalidation/column-rules-fixed-height.html no longer
requires the contents of the multicol container to be relaid out when
column-rule changes.

Review-Url: https://codereview.chromium.org/2509813004
Cr-Commit-Position: refs/heads/master@{#433166}
sigbjornf
XMLHttpRequest: check if 'loadstart' handler cancelled send().
'loadstart' is dispatched to both 'download' and upload event handlers
while initiating a send() operation. Should those event handlers cause
the ongoing send operation to be aborted/stopped/cancelled, this outer
send() operation shouldn't proceed upon return.

R=yhirano
BUG=642242

Review-Url: https://codereview.chromium.org/2507773002
Cr-Commit-Position: refs/heads/master@{#433157}
mstensho
isPageLogicalHeightKnown() doesn't need a parameter.
If page logical height is (un)known, it's (un)known throughout the entire
fragmentation context, so location doesn't matter.

Review-Url: https://codereview.chromium.org/2514573002
Cr-Commit-Position: refs/heads/master@{#433145}
mstensho
Introduce adjustFloatLogicalTopForPagination(), to offload positionAndLayoutFloat().
Also renamed a variable from childBox to child in positionAndLayoutFloat().

BUG=663942

Review-Url: https://codereview.chromium.org/2513643002
Cr-Commit-Position: refs/heads/master@{#433143}
mstensho
Rename positionNewFloats() to placeNewFloats().
This will distinguish it better from the method named "positionAndLayoutFloat".

Also be explicit about the fact that we use the top margin edge when
positioning floats, as opposed to the top border edge, which is common for all
other object types. So "logicalTop" usually means the logical top of the border
edge. Therefore, use "logicalTopMarginEdge" for floats.

No behavioral changes, just cleanup.

BUG=663942

Review-Url: https://codereview.chromium.org/2505943003
Cr-Commit-Position: refs/heads/master@{#432895}
mstensho
Let lowestFloatLogicalBottom() take EClear instead of FloatingObject::Type
Review-Url: https://codereview.chromium.org/2505853004
Cr-Commit-Position: refs/heads/master@{#432801}
sigbjornf
DOMParser: handle use from contexts without an "active document".
Handle detached uses of parseFromString(), where there is no context
document to inherit the security origin from.

Relevant spec reference,

 https://w3c.github.io/DOM-Parsing/#dom-domparser-parsefromstring

R=
BUG=664399

Review-Url: https://codereview.chromium.org/2509813002
Cr-Commit-Position: refs/heads/master@{#432782}
rune
No forced active stylesheet recollect when pending sheets reach 0.
We forced a FullStyleUpdate which causes an active stylesheet update
for all tree scopes in the presence of placeholder style. What we need
to do for placeholder style is to trigger a full style recalc. For
instance, we don't need to update active stylesheets in shadow trees
if the last blocking resource that finishes loading is a document scope
stylesheet or import.

BUG=567021

Review-Url: https://codereview.chromium.org/2500923002
Cr-Commit-Position: refs/heads/master@{#432630}
mstensho
When placing a float, pay attention to its final logical top.
Subsequent floats may not be placed above this location.

BUG=665804

Review-Url: https://codereview.chromium.org/2504173002
Cr-Commit-Position: refs/heads/master@{#432503}
rune
Let querySelector(All) match (nth-)last with unclosed parent.
While parsing, we don't match :last*, :nth-last* etc until we finish
parsing children to avoid alternating between different computed styles
during loading. For querying selectors, however, we should. I couldn't
find this explicitly mentioned in w3c or whatwg specs for
querySelector(All), but Firefox and IE does this.

This could happen if you have:

<body>
  <p></p>
  <p></p>
  <script>document.querySelector("p:last-of-type")</script>
</body>

Adding expectations file for a wpt which now fails. The modifications
to the test has been upstreamed to the github repo. See PR [1].

[1] https://github.com/w3c/web-platform-tests/pull/4216

R=sashab@chromium.org
BUG=662036

Review-Url: https://codereview.chromium.org/2505543004
Cr-Commit-Position: refs/heads/master@{#432493}
hugoh
Add missing include of errno.h
This allows us to build the object file independently.

BUG=none

Review-Url: https://codereview.chromium.org/2501323002
Cr-Commit-Position: refs/heads/master@{#432459}
sigbjornf
Media element: avoid v8 allocations in hasPendingActivity().
Blink code is not allowed to allocate objects on the v8
heap while its GC calls out to hasPendingActivity();
re-entrancy is not supported.

Hence, disable 'officialPlaybackPosition' updates while
in hasPendingActivity(), as that will trigger v8
allocations by way of microtask allocations.

R=haraken
BUG=

Review-Url: https://codereview.chromium.org/2498033002
Cr-Commit-Position: refs/heads/master@{#432453}
fs
Use an SVGElementProxy in ReferenceClipPathOperation
This transforms ReferenceClipPathOperation into using the SVGElementProxy
mechanism. Currently only for PaintLayer clients.

PaintLayerFilterInfo is generalized to PaintLayerResourceInfo and used as
the proxy/resource client for the 'clip-path' property. This enables change
notifications to flow back to the PaintLayer from the <clipPath> subtree.

The SVGElementProxySet is made a little bit generic by moving it to
SVGElementRareData, however it's still only made available for the few element
types that are used with it.

BUG=391604
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Review-Url: https://codereview.chromium.org/2484153003
Cr-Commit-Position: refs/heads/master@{#432193}
rune
Make updateStyleAndLayoutTree ready for async stylesheet update.
Introduce Document::updateActiveStyle() and corresponding
updateActiveStyle()/updateActiveStyleSheets() methods in StyleEngine to
prepare for doing active stylesheet updates as part of
updateStyleAndLayoutTree.

We move updateViewport() to updateActiveStyle() as the first step. This
is done by removing the synchronous calls to ViewportStyleResolver::
updateViewport() and instead schedule a layout tree update. In order to
trigger actual work to be done when the layout tree update happens, we
need to return true from Document::needsFullLayoutTreeUpdate() when we
need an active style update (for viewport atm).

BUG=567021

Review-Url: https://codereview.chromium.org/2484863003
Cr-Commit-Position: refs/heads/master@{#432182}
sigbjornf
Tidy up ScriptLoader (MIME) type matching.
MIME is case-insensitively handled within Blink, so remove some
unnecessary normalization of MIME type (and "language=") strings
in ScriptLoader.

R=
BUG=

Review-Url: https://codereview.chromium.org/2497873002
Cr-Commit-Position: refs/heads/master@{#432162}
sigbjornf
XMLHttpRequest: implement "send() flag" tracking and updating per spec.
The implementation has until now tracked/approximated the spec's
"send() flag"[1] by checking if the XMLHttpRequest object had an active
loader. That object does not have lifetime equal to what the spec
requires for the "send() flag", nor is the loader set for sync XHR
send()s.

There's no good reason to hold out on tracking this flag per spec,
so introduce it here.

[1] - https://xhr.spec.whatwg.org/#send-flag

R=yhirano
BUG=649516

Review-Url: https://codereview.chromium.org/2496933002
Cr-Commit-Position: refs/heads/master@{#432148}
sigbjornf
ContentSecurityPolicy: avoid defining static String singletons.
As CSP is used by multiple threads, we cannot define string literals
in terms of DEFINE_STATIC_LOCAL(). Follow what is done elsewhere
for ContentSecurityPolicy and resort to using plain string literals.

R=
BUG=

Review-Url: https://codereview.chromium.org/2497543003
Cr-Commit-Position: refs/heads/master@{#431956}
fs
Refactor CSS property mapping for SMIL Animation
Currently the SMIL code relies on 'attributeName' mapping 1:1 to the
CSS property name. This would not work with for instance with
'gradientTransform', which is supposed to map to the 'transform'
property.

To support this, store a CSS property id in SVGAnimatedTypeAnimator, and
use the CSS property id stored in SVGAnimatedProperty to populate it when
possible (using the current method in other cases.)

While doing this, also remove the stored 'context element' from
SVGAnimatedTypeAnimator, since it's only used in the reset(...) method,
and hence can simply be passed as an argument.

Also cleanup the uses of a CSSPropertyID in SVGAnimateElement (the sole
user of SVGAnimatedTypeAnimator) by using the stored CSS property id.

Make SVGAnimateElement::shouldApplyAnimation return bool, and use the
data from the SVGAnimatedTypeAnimator instead to determine which
animation code-path to use.

BUG=369942,641437

Review-Url: https://codereview.chromium.org/2496583002
Cr-Commit-Position: refs/heads/master@{#431862}
pmajewski
gn: Include source files outside the source root for Xcode workspace
This change unifies Xcode workspaces with projects for other IDEs.

BUG=n/a

Review-Url: https://codereview.chromium.org/2489673004
Cr-Commit-Position: refs/heads/master@{#431856}
sigbjornf
Remove Deque<>::findIf<>().
This function template is unused, and any future uses are
better served by using <algorithm>'s std::find_if().

R=
BUG=

Review-Url: https://codereview.chromium.org/2500763002
Cr-Commit-Position: refs/heads/master@{#431855}
sigbjornf
Internals.setValueForUser(): add argument type check.
R=tkent
BUG=642066

Review-Url: https://codereview.chromium.org/2500793002
Cr-Commit-Position: refs/heads/master@{#431845}
mstensho
InitialColumnHeightFinder needs to take all expected rows into account.
When a balanced multicol is nested inside another balanced multicol, it will
not be able to create any fragmentainer groups in the first layout pass, since
the height of the outer columns is still unknown.

We need to detect this situation, so that we don't limit the number of content
runs (content portions without explicit breaks) to the used value of
column-count. We are going to need ALL content runs, and group them into
imaginary rows, to figure out a minimal height of the entire inner multicol
container in the first balancing pass.

This will help set a better initial outer column height, and, more importantly,
set some sensible height on the inner multicol container right away, so that
we're not going to believe that it's super-short, which might prevent us from
marking it for re-layout when the outer coulmns have been sized.
childNeedsRelayoutForPagination() would simply fail to see that it's actually
going to cross outer column boundaries, and just bail.

We also treat tallestUnbreakableLogicalHeight() somewhat differently in such
situations. We require that the last "row" alone (rather than the entire
multicol container) be at least as tall as this.

Broke a newFragmentainerGroupsAllowed() out of
appendNewFragmentainerGroupIfNeeded(), since the column balancer code now also
needs to know when we're nested but are not allowed to create fragmentainer
groups.

Some, but not all, new tests used to fail before the code changes in this CL.
The passing ones are there to point out regressions that I nearly introduced
while working on this CL.

This is a patch in preparation for removing the relayoutChildren = true thing
in LayoutBlockFlow::layoutBlockFlow() when page logical height changes.

Review-Url: https://codereview.chromium.org/2493833004
Cr-Commit-Position: refs/heads/master@{#431844}
sigbjornf
Make FileReader.abort() (synchronously) follow the spec.
It is problematic to cancel a ThreadableLoader (by way of FileReaderLoader)
while it is on the stack, which is one of the steps involved when
abort()ing a reader (as part of the "terminate" step.) To avoid such
potential trouble, the loader termination is done asynchronously.

However, there's no good reason to delay performing the other (user
visible) abort() steps, so arrange for that to happen and align with
the spec & others.

R=jsbell
BUG=288349

Review-Url: https://codereview.chromium.org/2491363003
Cr-Commit-Position: refs/heads/master@{#431639}
rune
Match camelCased SVG attributes selectors in html documents.
Attribute names are stored lower-case in stylesheets in HTML documents.
SVG attribute names are normalized to the camelCase form in HTML
documents. That meant SVG attributes with camelCase like viewBox never
matched in HTML documents.

We had the same issue for camelCased element names in [1]. In that CL
we decided to allow insensitive matching for non-html elements in order
to avoid having to store the tag names twice in CSSSelector, even if
that is wrong according to the HTML spec. This CL does exactly the same
for attribute selectors.

[1] https://crrev.com/bab4aa7b9

R=sashab@chromium.org,esprehn@chromium.org
BUG=663798

Review-Url: https://codereview.chromium.org/2490393002
Cr-Commit-Position: refs/heads/master@{#431544}
sigbjornf
Support fetching attribute listeners from outside v8 context scopes.
A number of the <body> element's event handler attributes represent
and expose event handlers on the window object, hence the parser
will update & replace attribute event listeners while parsing the
attributes. This may well happen while executing outside any v8
context; adjust the lookup of attribute event listeners
to support such usage.

R=haraken
BUG=659911

Review-Url: https://codereview.chromium.org/2492793002
Cr-Commit-Position: refs/heads/master@{#431509}
rune
Skip independent inherited property propagation to pseudo elements.
UpdatePseudoElements and IndependentInherit conflict in the following
way. If we both have an independent inherit change on the actual dom
element, and we detect that we need to update the style for the pseudo
element we need to signal the inheritance propagation to the real dom
children and signal the pseudo element recalc to the pseudo element
children. If we return IndependentInherit, we lose the information
about the need for a pseudo element recalc, and if we return
UpdatePseudoElement, we lose the inheritance propagation for the actual
dom children.

We could introduce a new IndependentInheritAndUpdatePseudoElements, but
if there exists pseudo element, we would always return this constant,
so instead just force recalc on pseudo elements on IndependentInherit.

R=sashab@chromium.org
BUG=660735,660089,657283

Review-Url: https://codereview.chromium.org/2492783002
Cr-Commit-Position: refs/heads/master@{#431430}
mstensho
Split positionAndLayoutFloat() off positionNewFloats().
Float layout is somewhat broken when it comes to fragmentation (multicol,
printing). We're going to have to make sure that we always position the
float before laying it out, and, after layout, insert a break before it if
needed. This is a preparatory CL for that.

We currently lay out a float e.g. in insertFloatingObject() without
worrying about setting the position first.

No behavior changes intended.

BUG=663942

Review-Url: https://codereview.chromium.org/2486413002
Cr-Commit-Position: refs/heads/master@{#431422}
sigbjornf
IDBObserver does not need to be GC finalizable.
R=haraken
BUG=

Review-Url: https://codereview.chromium.org/2493713002
Cr-Commit-Position: refs/heads/master@{#431268}
fs
Reland of "Tracking reference filter mutation via SVGElementProxy"
This introduces SVGElementProxy - a new piece with the functionality of
DocumentResourceReference and the ReferenceFilterBuilder merged. It
provides the means to track clients of a certain element (only
SVGFilterElements for now, but will likely be extended to other types if
it ends up sticking.) An SVGElementProxy is created, and primarily
owned, by CSSURIValue. The proxy also handles loading of a resource
document, if requested.

Clients are SVGResourceClients, like before, with methods/callbacks
renamed. Some of the old functionality of SVGResourceClient has either
been moved to clients, to the proxy or been replaced with different
solutions.

Mutations to the element/subtree is signaled separately from any
potential changes to the actual reference (anything that might
invalidate the element reference.)

Fixed an issue from [1] where an observer would be removed too early if
there was several clients sharing it, causing crashes.

[1] https://codereview.chromium.org/2401343002

BUG=439970
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Review-Url: https://codereview.chromium.org/2490163002
Cr-Commit-Position: refs/heads/master@{#431235}
fs
Store CSSPropertyID in SVGAnimatedPropertyBase
With an increasing amount of SVG attributes being "promoted" to
presentation attributes, it makes sense to try to keep the property
mapping with the other attribute related data.
To make room for these additional bits in SVGAnimatedPropertyBase, pack
some of its fields into a bitfield:

 * m_isReadOnly only needs a single bit.
 * m_type only need room for 21 different values, so 5 bits should
   suffice.

With this new field in place, plumb it through for SVG element
attributes, then, as a start, use the SVG property map to simplify the
implementations of isPresentationAttributeWithSVGDOM and
isPresentationAttribute.

This could also be used to provide storage for attribute initial values
in the future (crbug.com/225807.)

BUG=225807,369942

Review-Url: https://codereview.chromium.org/2485663002
Cr-Commit-Position: refs/heads/master@{#431229}
rune
Moved applyRuleSetChanges functions to StyleEngine.
A lot of the side effects were calls to StyleEngine, so moved the
method there instead. Also fixed the TODO for adding the call to make
CSSGlobalRuleSet dirty.

BUG=567021

Review-Url: https://codereview.chromium.org/2487653002
Cr-Commit-Position: refs/heads/master@{#431227}
mstensho
Let positionNewFloats() take a logicalTop parameter.
It seemed ugly to temporarily change the logical height before calling
positionNewFloats(), just to make the method behave.

Review-Url: https://codereview.chromium.org/2483023002
Cr-Commit-Position: refs/heads/master@{#431115}
tsniatowski
Fix a subtle proguard incremental build error
Prevent a confusing incremental build failure where proguard would
read and write to the same file accidentally, failing hard. Can
happen after switching the build from not using proguard, where the
output jar is a gn-copy hardlink to the input jar, to using proguard,
where the output is written to by a script reading from the input jar.

Fix by checking if the output is not a hardlink to the input in the
wrapper script.

NB. The build normally uses proguard on an apk, but makes it possible
to try and only proguard a single jar, and the bug potentially only
happens in this case.

Review-Url: https://codereview.chromium.org/2485663003
Cr-Commit-Position: refs/heads/master@{#430890}
mstensho
Before turning objects into spanners, check that they are not already spanners.
During style recalculation, we may end up in a situation where we think that we
go from a state where an object couldn't contain spanners, to being able to
contain them, while in reality, the object was able to contain spanners all
along.

This happens when changing the writing mode on the multicol container and all
objects in the parent chain between the spanner and the multicol container (and
there is nothing that prevents the descendant from being a spanner). The
problem is that when determining whether an object is a writing mode root, we
compare the object's writing mode to that of its parent. If they are different,
we decide that it's a writing mode root. However, if we're in styleWillChange()
for said object, and its writing mode is actually about to change to the same
value as that of the parent, there'll be no writing mode root in the end.
Still, we're going to think that we used to be a writing mode root (i.e. not be
able to contain spanners).

It would be possible to fix it for writing mode roots, to provide a reliable
implementation of isWritingModeRoot(), by using a bit in LayoutObject to
specify whether it's a writing mode root, rather than using current computed
style to determine that. Using computed style during style recalculation is
risky. That said, it's probably better to be fault-tolerant for such situations
in toggleSpannersInSubtree() instead, especially since may be other (unknown,
at the time being) scenarios where this situation may occur.

BUG=662754

Review-Url: https://codereview.chromium.org/2485173002
Cr-Commit-Position: refs/heads/master@{#430887}
rogerj
Build v8 snapshot with correct default float configuration on Linux ARM
V8 currently defaults to arm_float_abi="hard" and arm_use_neon=true but
the V8 snapshot defaults to arm_float_abi="softfp" and arm_use_neon=false
on Linux ARM builds.

This patch makes both targets default to hard + neon by changing the
"is simulator build" check from comparing current_cpu with v8_current_cpu
to comparing target_cpu with v8_target_cpu instead. Similarly to how it is
checked in v8/BUILD.gn.

BUG=662856

Review-Url: https://codereview.chromium.org/2483153004
Cr-Commit-Position: refs/heads/master@{#430776}
fs
Tracking reference filter mutation via SVGElementProxy
This introduces SVGElementProxy - a new piece with the functionality of
DocumentResourceReference and the ReferenceFilterBuilder merged. It
provides the means to track clients of a certain element (only
SVGFilterElements for now, but will likely be extended to other types if
it ends up sticking.) An SVGElementProxy is created, and primarily owned,
by CSSURIValue. The proxy also handles loading of a resource document, if
requested.

Clients are SVGResourceClients, like before, with methods/callbacks
renamed. Some of the old functionality of SVGResourceClient has either
been moved to clients, to the proxy or been replaced with different
solutions.

Mutations to the element/subtree is signaled separately from any
potential changes to the actual reference (anything that might invalidate
the element reference.)

BUG=439970
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Review-Url: https://codereview.chromium.org/2401343002
Cr-Commit-Position: refs/heads/master@{#430550}
mstensho
There should never be unplaced floats from other blocks.
When positioning new floats in a block, all unplaced floats should belong to
said block. If we find unplaced floats from other blocks, someone somewhere
must have forgotten to place them on their own.

No need for code to skip such floats. DCHECK instead.

Review-Url: https://codereview.chromium.org/2479173002
Cr-Commit-Position: refs/heads/master@{#430544}
fs
Use range-based for in toCompositorTransformOperations
Avoids the awkward-looking indexing expressions. Make casted operations
const while at it.

Review-Url: https://codereview.chromium.org/2473013002
Cr-Commit-Position: refs/heads/master@{#430247}
rune
Don't use url from ImageResource for computed style.
ImageResource objects are shared between urls which only differ in
fragment identifier. The fragment identifier of the first requested url
is stored on ImageResource. That gave incorrect results when requesting
computed style values of backgroundImage for pseudo elements.

Use the url which is stored on StyleFetchedImage instead.

R=timloh@chromium.org
BUG=661998

Review-Url: https://codereview.chromium.org/2474093003
Cr-Commit-Position: refs/heads/master@{#430246}
mstensho
Don't include LayoutObject-derived headers where not needed.
Or, if a LayoutObject-derived header is still required, pick the most generic
one possible.
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Review-Url: https://codereview.chromium.org/2474603002
Cr-Commit-Position: refs/heads/master@{#430165}
mstensho
Descendants may become or cease to be spanners when an ancestor changes style.
When building the tree, when inserting something that looks like a
column spanner, we first examine all the parents all the way up to the
multicol container, to make sure that they are all valid spanner
containers. This already works fine.

In our implementation, a valid column spanner container is, roughly, a
"regular" in-flow block. Among other things, it may not establish a
new block formatting context. Nor transforms. And a few other
things.

If the style of a valid column spanner container changes, it may end
up as no longer being a valid spanner container, and vice versa: an
invalid spanner container may become a valid spanner container, all of
a sudden.

Detect this during style change. If a block ceases to be a valid
spanner container, we need to check its subtree for spanners, and turn
them into regular column content. And, vice versa, if a block is
turned into a valid spanner container, we need to check its subtree
for column-span:all objects, which may have to be changed from regular
column content into spanners.

BUG=661761

Review-Url: https://codereview.chromium.org/2479873002
Cr-Commit-Position: refs/heads/master@{#430005}
rune
Link stylesheets in shadow trees do not belong to document scope.
We have incorrectly kept DCHECKs checking that stylesheets in shadow
trees come from style elements. That is no longer true, and modifying
link elements in shadow trees would trigger some of these DCHECKs.

Also, we simply used Document as the TreeScope handling link elements.
Always use the treeScope() from the associated node instead. Using the
wrong TreeScope in these cases would cause missing updates of active
stylesheets in ShadowTreeStyleSheetCollections for AnalyzedStyleUpdate.
I have not been able to find a triggering test case for this.

R=hayato@chromium.org,kochi@chromium.org
BUG=661914

Review-Url: https://codereview.chromium.org/2472973002
Cr-Commit-Position: refs/heads/master@{#429877}
tmoniuszko
Add missing web_contents.h include
BUG=

Review-Url: https://codereview.chromium.org/2473793002
Cr-Commit-Position: refs/heads/master@{#429853}
fs
Mark TranslateTransformOperation final
Nothing derives from it. This also allows devirtualization of the call
to apply() for the 'translate' (independent) property.

BUG=369942

Review-Url: https://codereview.chromium.org/2468303005
Cr-Commit-Position: refs/heads/master@{#429840}
rune
Remove ShadowRoot::numberOfStyles().
This probably used to be an optimization which made sense when we had
<style scoped> implemented. Now, it should be equally cheap to just
check the ScopedStyleResolver member. The ScopedStyleResolver is null
when there are no active stylesheets in the tree-scope.

This also caused issue 659596 because we only registered style elements
and not link elements, which lead the code to believe there were no
rules to match from the scope when there were only link stylesheets
present.

R=kochi@chromium.org,hayato@chromium.org
BUG=659596

Review-Url: https://codereview.chromium.org/2472613004
Cr-Commit-Position: refs/heads/master@{#429824}
mstensho
Properly avoid breaking inside a float's top margin.
We used to depend on stumbling upon unbreakable content (such as lines) at
column boundaries for this to work, but we failed in the really simple cases
(where there was no content at all, for instance).

Move the logic for this to float-specific code, so that we don't have to be
aware of it at several other locations in the code.

Doing this correctly during layout also helps the balancer find the right
column height. Added a test for something that used to fail in this area.

Review-Url: https://codereview.chromium.org/2479483002
Cr-Commit-Position: refs/heads/master@{#429641}
mstensho
Don't let a column spanner affect the self-margin-collapsing state of the parent.
When a spanner is removed from the tree, we mark the container chain for
layout, just like we do when removing any other kind of object. The container
of a spanner is the multicol container, though, so the direct parent of the
spanner may not be marked for layout. And that should not be necessary either,
since the spanner is essentially taken out of normal flow.

We get some marking for layout for free in layoutBlockFlow(), if
pageLogicalHeightChanged, but that only goes one level deep. Eliminate the need
for layout in situations like this.

Prior to this change, we'd fail on an assert that required that the cached
state of self-collapsing be in sync with reality.

Review-Url: https://codereview.chromium.org/2473953003
Cr-Commit-Position: refs/heads/master@{#429638}
mstensho
logicalHeightWithVisibleOverflow() needs to include overhanging floats.
Otherwise we might end up skipping layout of blocks that contain floats
that really need to be relaid out.

We get some marking for layout for free in layoutBlockFlow(), if
pageLogicalHeightChanged, but that only goes one level deep.

Review-Url: https://codereview.chromium.org/2474883002
Cr-Commit-Position: refs/heads/master@{#429611}
fs
Tidy up ComputedStyle::applyTransform
Use range-based for-loops when iterating transform operations (also in
ComputedStyle::requireTransformOrigin), since it's both tidier and
avoids unnecessary index-checks (in operator[].)
Move computation of offsetX/offsetY closer to their point of usage.
Extract the size of the bounding box once, and also drop some unneeded
qualifications of enumeration values.

BUG=369942

Review-Url: https://codereview.chromium.org/2474043002
Cr-Commit-Position: refs/heads/master@{#429598}
karlo
Make offsetTop/Left handle a relative positioned inline offsetParent correctly.
offsetTop and offsetLeft happily ignored the fact that offsetParent could
be a relative positioned inline.

I used the opportunity to change some variable names in
LayoutBoxModelObject::adjustedPositionRelativeTo() in order to hopefully
make it clearer what's going on.

BUG=638184

Review-Url: https://codereview.chromium.org/2414683002
Cr-Commit-Position: refs/heads/master@{#429571}
tsniatowski
Fix a bunch of generated file build flakes in //extensions
Several files in //extensions could randomly fail to build due to
missing dependencies on header generator targets, mostly mojo
and grit. Add the dependencies so builds are not flaky.

BUG=655123

Review-Url: https://codereview.chromium.org/2452943003
Cr-Commit-Position: refs/heads/master@{#429543}
karlo
adjustedPositionRelativeTo() couldn't find offsetParent.
LayoutBoxModelObject::adjustedPositionRelativeTo() could get confused
by inline continuations, and could fail if offsetParent itself was a split
continuation.  If the child belongs to the second part of the continuation,
we'll instead race to the root of the tree.  By comparing with the node instead,
we correctly identify the offsetParent and stop the search.

BUG=638187

Review-Url: https://codereview.chromium.org/2454693003
Cr-Commit-Position: refs/heads/master@{#429541}
fs
Simplify SVG pending resource (re)validation
The contents of the m_pendingResourcesForRemoval map has a lifespan that
does not extend beyond the scope of SVGElement's
buildPendingResourcesIfNeeded() method.
So instead of passing through the map in SVGDocumentExtensions, just
take the corresponding set for the pending 'id' and iterate that
directly, avoiding indirection and complicated removal sequence.
This also allow SVGDocumentExtensions::removeElementFromPendingResources
to be simplified, so do that, and then remove the
m_pendingResourcesForRemoval map from SVGDocumentExtensions.

BUG=661598

Review-Url: https://codereview.chromium.org/2473483004
Cr-Commit-Position: refs/heads/master@{#429539}
mstensho
Remove pageLogicalHeightChanged() from LayoutState.
It was only used from insertFloatingObject(), and in a bogus manner at that.
Added a TODO instead. We haven't even positioned the float at this point, so
attempting layout for pagination here is essentially bad.

We make sure to relayout correctly for pagination when we get to
positionNewFloats() later, anyway.

Review-Url: https://codereview.chromium.org/2467353003
Cr-Commit-Position: refs/heads/master@{#429533}
mstensho
Reland of Improve how the column balancer handles top margins on floats. (patchset #1 id:1 of https://codereview.chromium.org/2468193002/ )
Reason for revert:
csspaint/invalidation-background-image.html was also failing (flaky) before landing this CL.

Original issue's description:
> Revert of Improve how the column balancer handles top margins on floats. (patchset #3 id:40001 of https://codereview.chromium.org/2465363003/ )
>
> Reason for revert:
> Speculative revert to fix csspaint/invalidation-background-image.html failure on "WebKit Win7 (dbg)" bot.
>
> Failed build:
> https://build.chromium.org/p/chromium.webkit/builders/WebKit%20Win7%20%28dbg%29/builds/7961
>
> Original issue's description:
> > Improve how the column balancer handles top margins on floats.
> >
> > Float margins do not collapse with column boundaries, so we should make room
> > for them after the break, if the border box of the float starts in the next
> > column.
> >
> > Let the balancer work on the margin box of the float (and the border box for
> > all other objects). For floats, we want to insert breaks before the
> > margin-before edge, not the border-before edge. This lets us remove
> > some special-code for unbreakable floats in InitialColumnHeightFinder, which
> > was the only place that previously bothered about this.
> >
> > Changed how we determine which objects to process. We used to include the
> > overflow both before and after the border box, but we really don't have to
> > bother with content preceding it, since that shouldn't undergo fragmentation
> > anyway.
> >
> > Discovered (one test regressed) that logicalHeightIncludingOverflow() also
> > included clipped overflow, which certainly wasn't the intention. This didn't
> > make much of a difference as long as the method was only called to check if we
> > could skip re-layout. But now we also use it to determine the column height.
> > Fixed it to only include visible overflow and renamed it to
> > logicalHeightWithVisibleOverflow().
> >
> > Committed: https://crrev.com/7c82da727f64121aa34aa1decf82452c37ef7a2d
> > Cr-Commit-Position: refs/heads/master@{#429245}
>
> TBR=eae@chromium.org,mstensho@opera.com
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
>
> Committed: https://crrev.com/58f81484437d367285de9f0fc1fdd4034eb5c333
> Cr-Commit-Position: refs/heads/master@{#429265}

TBR=eae@chromium.org,rouslan@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review-Url: https://codereview.chromium.org/2471933002
Cr-Commit-Position: refs/heads/master@{#429415}
mstensho
Move LayerHitTestRects to a separate file.
This way, ScrollingCoordinator.h doesn't need to include LayoutObject.h
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Review-Url: https://codereview.chromium.org/2468073002
Cr-Commit-Position: refs/heads/master@{#429311}
mstensho
Move MapCoordinatesMode and MapCoordinatesFlags to a separate header.
This way, LayoutGeometryMap.h doesn't need to include LayoutObject.h

Review-Url: https://codereview.chromium.org/2472573002
Cr-Commit-Position: refs/heads/master@{#429294}
mstensho
Improve how the column balancer handles top margins on floats.
Float margins do not collapse with column boundaries, so we should make room
for them after the break, if the border box of the float starts in the next
column.

Let the balancer work on the margin box of the float (and the border box for
all other objects). For floats, we want to insert breaks before the
margin-before edge, not the border-before edge. This lets us remove
some special-code for unbreakable floats in InitialColumnHeightFinder, which
was the only place that previously bothered about this.

Changed how we determine which objects to process. We used to include the
overflow both before and after the border box, but we really don't have to
bother with content preceding it, since that shouldn't undergo fragmentation
anyway.

Discovered (one test regressed) that logicalHeightIncludingOverflow() also
included clipped overflow, which certainly wasn't the intention. This didn't
make much of a difference as long as the method was only called to check if we
could skip re-layout. But now we also use it to determine the column height.
Fixed it to only include visible overflow and renamed it to
logicalHeightWithVisibleOverflow().

Review-Url: https://codereview.chromium.org/2465363003
Cr-Commit-Position: refs/heads/master@{#429245}
rune
Make siblingRules and uncommonAttributeRules private.
These vectors only need to be modified inside the RuleFeatureSet class.
Added methods for const access.

R=meade@chromium.org

Review-Url: https://codereview.chromium.org/2469143002
Cr-Commit-Position: refs/heads/master@{#429220}
mstensho
Don't always have to relayout a child when fragmentainer height is unknown.
Fragmentainer height is unknown in the first multicol layout pass, before
the initial balancing attempt. It also happens when we have to restart the
column balancing algorithm (due to dynamic content change, containing block
logical width change, etc.). In this case we only need to relayout if the child
did previously break (because then there may be pagination stuts inside that we
need to clear).

Review-Url: https://codereview.chromium.org/2473433002
Cr-Commit-Position: refs/heads/master@{#429135}
mstensho
Avoid unnecessary relayout of floats when not paginated.
Made a mistake when excluding floats from being considered for pagination
relayout skipping, by ALWAYS marking them for layout, EVEN WHEN NOT PAGINATED.
Make sure that we check that we're paginated first. No need to slow down layout
when not paginated.

Broke the logic for determining whether we need layout or not into a separate
method, so that we don't need a quarter of a dozen calls to
setChildNeedsLayout(). The logic is now reversed; rather than checking if we
don't need layout, we check if we DO need layout. Tried to make the code a bit
clearer, and document what goes on at each step.

Review-Url: https://codereview.chromium.org/2459293004
Cr-Commit-Position: refs/heads/master@{#429051}
rune
Reduce CSSStyleSheet size by moving bool member.
Grouping bool members together saved 8 bytes from 120 to 112 on 64 bit
Linux.

Also started using class initializers, removed unnecessary nullptr
initialization of Member<>, and a 0 -> nullptr.

R=mstensho@opera.com

Review-Url: https://codereview.chromium.org/2469693002
Cr-Commit-Position: refs/heads/master@{#428977}
fs
Rewrite css3/filters/effect-reference-delete.html
Make sure we get a layout+paint before removing the <svg> (w/ descendant
filter) so that we test a proper transition.

Review-Url: https://codereview.chromium.org/2453403002
Cr-Commit-Position: refs/heads/master@{#428706}
fs
Make sure to always reset the cached filter in ReferenceFilterOperation
BUG=658305
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Review-Url: https://codereview.chromium.org/2453033004
Cr-Commit-Position: refs/heads/master@{#428678}
mstensho
Be more restrictive about forcing relayout of children for pagination.
Avoid full subtree re-layouts that could especially occur in tables. This could
slow down printing and multicol by a lot.

This change makes PerformanceTests/Layout/multicol/deeply-nested-tables.html
about 1300 times faster (from 5.1 runs/s to 6813 runs/s when tested
locally). The test in bug 487026 will now show print preview instantly, rather
than taking a couple of minutes to finish.

Store the amount of space used (including the trailing strut) before the first
break (if any) instead of the offset from the top of the first fragmentainer.
We'll use this information in markChildForPaginationRelayoutIfNeeded() to
determine if we really need to force re-layout of some child. We really only
need to force re-layout of a child if there's a chance that it needs to
recalculate its pagination struts. It won't need to recalculate anything if we
know that there were no fragmentainer breaks AND that there won't be any if
we re-lay out. Even if there ARE fragmentainer breaks in there, we can still
skip layout if we know that the breaks will remain at the exact same locations
relative to the child. Store this information after layout by calling
updateFragmentationInfoForChild(). We need to include the overflow portion
after the bottom border edge of the child, since overflow also gets fragmented.

The old implementation of markChildForPaginationRelayoutIfNeeded() re-laid out
everything as long as LayoutState's pageLogicalHeightChanged() was true.
However, this flag is only set when entering layout of some fragmentation
context. Some objects, such as tables, requires multi-pass layout. If the flag
was true the first time the object was laid out, it's going to be true in all
subsequent re-layouts as well, potentially resulting in numerous deep layouts.

BUG=487026

Review-Url: https://codereview.chromium.org/2462643002
Cr-Commit-Position: refs/heads/master@{#428626}
tsniatowski
Add missing generator dependencies in content/renderer/mus
Building //content/renderer/mus could fail due to transitive
dependencies on header generators pulled in via render_frame_impl.h
and render_thread_impl.h (building render_widget_mus_connection.cc
or compositor_mus_connection.cc could fail).

Unfortunately //content/renderer deps on //content/renderer/mus,
so there's no easy way to get these deps for free (cyclic dep).

BUG=655123

Review-Url: https://codereview.chromium.org/2461643002
Cr-Commit-Position: refs/heads/master@{#428428}
tsniatowski
Add a //chrome/common dep to //chrome/browser/devtools
Devtools include chrome/common headers which include the generated
features header, so without the dep the build is flaky.

BUG=655123

Review-Url: https://codereview.chromium.org/2454943004
Cr-Commit-Position: refs/heads/master@{#428413}
rune
Move Document global rule data to CSSGlobalRuleSet.
This CL is split out from [1] with some modifications.

Instead of storing these data in the StyleResolver, create a new class
to store them in StyleEngine instead. See the design document linked
from issue 401359 which talks about moving this content off of
StyleResolver. Also made a note that we should further try to contain
as much of this data as possible per TreeScope to avoid the need for
constantly having to update these meta data for shadow tree
modifications.

We get rid of some of the duplicate storing of some of these features.
See what was previously set on StyleEngine (resetCSSFeatureFlags()).

This is also in preparation for async stylesheet update (issue 567021).
There are few places where we synchronously update this new rule set
directly after marking it as dirty which will happen later when all
parts of [1] lands.

Another synchronous update we will be able to remove later is making
the RuleFeatureSet up-to-date when scheduling style invalidations
(marked as TODOs for sync calls to ensureResolver()). The need for
these calls is supported by the added invalidation tests which would
otherwise fail.

[1] https://codereview.chromium.org/1913833002/

BUG=401359,567021

Review-Url: https://codereview.chromium.org/2451893003
Cr-Commit-Position: refs/heads/master@{#428327}
rune
Missing document null pointer check in Internals.
updateLayoutIgnorePendingStylesheetsAndRunPostLayoutTasks did not check
if the document was null before using it.

R=nainar@chromium.org
BUG=657443

Review-Url: https://codereview.chromium.org/2461633002
Cr-Commit-Position: refs/heads/master@{#428312}
rune
Use StyleEngine::resetAuthorStyle instead of clearScopedStyleResolver.
The former will make sure the shadow root is removed from
treeBoundaryCrossingScopes appropriately.

This code is not in production yet, so there were no observable bug.

R=meade@chromium.org

Review-Url: https://codereview.chromium.org/2456753003
Cr-Commit-Position: refs/heads/master@{#428275}
mstensho
Provide a dedicated getter for the offset to a repeatable THEAD.
pageLogicalOffset() is otherwise only used as an optimization during layout,
and the way we're optimizing for fragmenting is soon going to change.
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Review-Url: https://codereview.chromium.org/2455733003
Cr-Commit-Position: refs/heads/master@{#428203}
mstensho
Don't establish LayoutState for LayoutTableRow objects.
Table rows are not the containing block of anything. The real containing block
of a table cell is their table section, not the table row.

With this change, we no longer need to pass the object's location to
LayoutState(). Just call locationOffset() on the object in the constructor
instead, rather than doing it at all call sites.

Review-Url: https://codereview.chromium.org/2458823002
Cr-Commit-Position: refs/heads/master@{#428190}
mstensho
Need to remove line pagination struts when no longer fragmented.
We only used to recalculate pagination struts on lines when we were inside a
fragmentation context, but if said fragmentation context ceases to be one, we
need one final strut recalculation pass, to get rid of them all.

BUG=658019

Review-Url: https://codereview.chromium.org/2460673002
Cr-Commit-Position: refs/heads/master@{#428161}
mstensho
Add a couple of regression tests for float fragmentation.
These tests change the fragmentainer heights, so that the float will fit in the
first fragmentainer afterwards, rather than in the second one.

Review-Url: https://codereview.chromium.org/2445193007
Cr-Commit-Position: refs/heads/master@{#428160}
mstensho
Need a deep layout pass when becoming (un)fragmented.
When an object ceases to be fragmented (e.g. when leaving print preview), there
may be pagination struts that need to be removed. Therefore, we need to lay out
all descendants of a block that ceased to establish a fragmentation context.

Similarly, when becoming fragmented (e.g. when entering print preview), we need
to go through every descendant. There may both be implicit and forced breaks to
insert.

BUG=658019

Review-Url: https://codereview.chromium.org/2454083002
Cr-Commit-Position: refs/heads/master@{#428062}
mstensho
Allow pagination struts to push objects below the exact top of the next column.
The top margin of a float may push its border box below the top of the next
column.

Similarly, a repeated table header may do the same to the first row in the next
column, to make room for itself above it.

The column balancer had assertions to boom at such situations, but it's pretty
clear now that it's an unreasonable requirements that sturts take us to the
exact top of the next column.

Added visual tests that crashed before (in debug). No behavioral changes here,
apart from the fact that the tests no longer crash.

Review-Url: https://codereview.chromium.org/2456003002
Cr-Commit-Position: refs/heads/master@{#428047}
rune
Removed unused StyleEngine::didRemoveShadowRoot().
Also tried to figure out and document why we are clearing
ScopedStyleResolvers for shadow trees in clearResolver().

R=meade@chromium.org

Review-Url: https://codereview.chromium.org/2454903002
Cr-Commit-Position: refs/heads/master@{#427950}
rune
Removed unnecessary rule feature reset when no ScopedStyleResolver.
Resetting rule features when a shadow tree did not contain any
stylesheets, and hence didn't have a ScopedStyleResolver, caused a
performance regression in the select-single-remove performance test.

UA shadow trees typically don't have any stylesheets.

This is a regression from [1].

[1] https://codereview.chromium.org/2443933002

R=meade@chromium.org
BUG=659535
TEST=PerformanceTests/DOM/select-single-remove.html

Review-Url: https://codereview.chromium.org/2452733004
Cr-Commit-Position: refs/heads/master@{#427949}
mstensho
LayoutState doesn't need to store both layout and pagination offset.
We only ever used those two in combination to figure out how far away we were
from the start of the pagination context. So, let's just store that directly instead.
This allows us to clean up quite a bit. Also changed LayoutState() to do more
early returns, when we have no more work left to do.

Also consolidated two sections that disabled pagination for unsupported content
(one for SVG and one for other unbreakable content).

Review-Url: https://codereview.chromium.org/2444193009
Cr-Commit-Position: refs/heads/master@{#427945}
rune
Clear m_treeBoundaryCrossingScopes when reconstructing StyleResolver.
When m_treeBoundaryCrossingScopes were part of StyleResolver, they were
cleared when the StyleResolver was cleared. Now that they outlive the
StyleResolver, they need to be cleared separately.

R=meade@chromium.org
BUG=659653

Review-Url: https://codereview.chromium.org/2450353002
Cr-Commit-Position: refs/heads/master@{#427912}
tsniatowski
Fix a large number of missing dependencies in the blink gn build
Make all blink_core_sources targets public_dep on all the code
generators in core to ensure required headers are always generated first
and a successful build does not depend on lucky ordering. Manually fix
similar dep issues in core/inspector.

There are now more dependencies than strictly necessary, but they will
only trigger the generators with no effect on build commands (tested by
checking that the patch doesn't trigger a rebuild of any c++ code).

The end result is that the total number of targets that don't have proper
deps in the 'chrome' target build goes down from over 1800 to about 40,
and no missing dependencies on gen/blink files exist.

BUG=655123
R=dpranke@chromium.org

Review-Url: https://codereview.chromium.org/2452473004
Cr-Commit-Position: refs/heads/master@{#427856}
mstensho
The column balancer needs to look inside inlines.
There may be floats there.

Split traverseSubtree() into traverseLines() and traverseChildren(), so that
traverseChildren() can easily be called directly when at inlines.

BUG=586956

Review-Url: https://codereview.chromium.org/2453743002
Cr-Commit-Position: refs/heads/master@{#427724}
tsniatowski
Fix some mojo dependencies in blink
Several places in blink were using mojo headers without a dependency on
mojo targets that generate said headers, causing build flakiness.

BUG=655123

Review-Url: https://codereview.chromium.org/2453653003
Cr-Commit-Position: refs/heads/master@{#427659}
mstensho
No longer mark two tests in ietestcenter/css3/multicolumn as failing.
They pass now, probably because of the fix for bug 291616.

BUG=396940

Review-Url: https://codereview.chromium.org/2446023003
Cr-Commit-Position: refs/heads/master@{#427370}
wdzierzanowski
Call willInsertBody() in MediaDocument::createDocumentStructure()
Follow up on https://codereview.chromium.org/1343493002 and add the same
willInsertBody() call that ImageDocument has.

Review-Url: https://codereview.chromium.org/2427563002
Cr-Commit-Position: refs/heads/master@{#427312}
wonko
Don't assume python is in /usr/bin in js_minify.py
BUG=658218

Review-Url: https://codereview.chromium.org/2438293002
Cr-Commit-Position: refs/heads/master@{#427304}
jb
Deal with canceled requests when flushing deferred messages.
Flushing deferred messages might lead to a request being canceled
(e.g. when an ImageResource loads a corrupt image). The code didn't
fully take this into account which would cause crashes (and resource
leaks if it would have survived).

BUG=

Review-Url: https://codereview.chromium.org/2425173003
Cr-Commit-Position: refs/heads/master@{#427298}
rune
Move TreeBoundaryCrossingScopes to StyleEngine.
This is split out of the work for async stylesheet updates [1], but is
also part of the work on componentized style resolving in general.

The moved resetAuthorStyle method on StyleEngine may soon be gone
altogether as it does so in [1].

The plan is that TreeBoundaryCrossingScopes will also be completely
gone when we remove support for Shadow DOM v0. For Shadow DOM v1 we can
look up the scoped resolvers for the affecting scopes directly like we
already do in StyleResolver::matchScopedRules for the pure v1 case.

The documentation of the special casing of VTT and custom pseudo
elements is updated to not suggest that these rules are handled as part
of boundary crossing scopes as the current solution is better once v0
shadows go away.

[1] https://codereview.chromium.org/1913833002

R=meade@chromium.org
BUG=567021,401359

Review-Url: https://codereview.chromium.org/2443933002
Cr-Commit-Position: refs/heads/master@{#427284}
fs
Fix more null-checks in SVGLengthContext::convertValueFrom*
The following methods in SVGLengthContext:

 convertValueFromUserUnitsToCHS
 convertValueFromUserUnitsToEXS
 convertValueFromEXSToUserUnits

needs the same treatment as convertValueFromCHSToUserUnits got in
https://chromiumcodereview.appspot.com/2445463002.

R=pdr@chromium.org,eae@chromium.org
BUG=657438,658585,658613

Review-Url: https://codereview.chromium.org/2449433002
Cr-Commit-Position: refs/heads/master@{#427080}
mstensho
Remove unused hasPendingResourceUpdate bit from LayoutObject.
Also recounted, updated and corrected total bit count.

Review-Url: https://codereview.chromium.org/2442283002
Cr-Commit-Position: refs/heads/master@{#427050}
rune
Rename collectTreeBoundaryCrossingRules.
Include V0Cascade order to reflect that this is the legacy code for
Shadow DOM V0 cascading order in pure V0 documents.

R=kochi@chromium.org

Review-Url: https://codereview.chromium.org/2445673002
Cr-Commit-Position: refs/heads/master@{#427042}
fs
Use a converter for building style value for 'transform'
Also change TransformBuilder::createTransformOperations to return the
TransformOperations rather than use an out argument.

Review-Url: https://codereview.chromium.org/2435413002
Cr-Commit-Position: refs/heads/master@{#427036}
fs
Avoid copying value in ComputedStyle CoW comparions (compareEqual)
Because of the cast of the RHS, |u|, a copy would be generated, with
code and cycle bloat as the result. In some cases this can even have
prevented inlining. Particularly nasty examples:

 bool compareEqual(const Vector<LengthPoint>&, const Vector<LengthPoint>&) [210 bytes]
 bool compareEqual(const Vector<CSSPropertyID>&, const Vector<CSSPropertyID>&) [274 bytes]
 bool compareEqual(const Vector<GridTrackSize>&, const Vector<GridTrackSize>&) [182 bytes]
 bool compareEqual(const HashMap<String, GridArea>&, const HashMap<String, GridArea>&) [308 bytes]
 bool compareEqual(const TransformOperations&, const TransformOperations&) [441 bytes]
 bool compareEqual(const LengthBox&, const LengthBox&) [249 bytes]

Remove the U->T cast in compareEqual to avoid the copies. Nothing seems
to require this coercion (anymore?) This eliminates the above symbols
entirely. A total binary size reduction of >30k (x86-64; non-official) also
indicates even the simpler cases/types may have benefited.

Review-Url: https://chromiumcodereview.appspot.com/2438353002
Cr-Commit-Position: refs/heads/master@{#426990}
rune
Always evaluate media features to true without MediaValues.
Having a constructor taking bool made it possible to construct a
MediaQueryEvaluator passing a pointer to an object of an arbitrary
type as the pointer was converted to a bool without a warning.

By closer inspection, the use of the m_expectedResult value had two
purposes. One was to return true for matching media type ignoring the
rest of the media query. The other cases were for testing purposes
where there was no media rules to match, so the result didn't matter.

Since there are no useful applications for returning false for media
queries containing expressions in addition to type, we can safely
return true for all query expression when no MediaValues object is
present.

There is one place we change the behavior. The StyleResolver
constructor has a fallback evaluator when we have no FrameView. That
should never happen, though, and it would yield incorrect results
regardless of whether we would always return true or false for media
query expressions.

R=timloh@chromium.org,meade@chromium.org

Review-Url: https://chromiumcodereview.appspot.com/2432153005
Cr-Commit-Position: refs/heads/master@{#426752}
jb
Fix NULL pointer dereference in FinishedAsyncCopyRequest()
Due to undefined (favorably right to left) argument evaluation order,
the tracker might have been passed and set to NULL before the window
is looked up which results in a NULL pointer dereference.

BUG=

Review-Url: https://chromiumcodereview.appspot.com/2435033002
Cr-Commit-Position: refs/heads/master@{#426748}
rune
MediaValuesInitialViewport passed to MediaQueryEvaluator as bool.
The test coverage for [1] was not good enough. We tried to pass a
MediaValues pointer into the MediaQueryEvaluator constructor, but since
none of the constructors took such a type, it was converted into a bool
for which there was a constructor.

I'm planning to change the bool parameter to an enum in a follow-up CL
to avoid such mistakes in the future.

[1] https://codereview.chromium.org/2414343002/

R=timloh@chromium.org
BUG=332763

Review-Url: https://chromiumcodereview.appspot.com/2430923005
Cr-Commit-Position: refs/heads/master@{#426747}
mstensho
Pay attention to tall rowspanned cells in the first layout pass.
If a rowspanned cell gets fragmented, and this cell needs to stretch the table
rows in order to fit, only stretch the last row (i.e. the one we're currently
laying out). That's the only thing we can do if we don't want mess up
fragmentation (pagination struts) of earlier content.

Furthermore, to leave those rows completely alone, don't let a subsequent
rowspanned cell that shares at least one row with the previous rowspanned cell
stretch those rows, either, as that would lead to unfair height distribution
anyway (since the last row has already got all the extra space).
table-overlapping-rowspan.html tests this.

BUG=534751

Review-Url: https://chromiumcodereview.appspot.com/2433403002
Cr-Commit-Position: refs/heads/master@{#426590}
mstensho
Clean up LayoutTableSection::calcRowLogicalHeight() a bit.
Since nobody apparently wants to deal with a rowspanned cell unless we're at
its first row, just skip that cell for subsequent rows, instead of having
checks for this everywhere.

Also removed a debug hashmap that was just used to assert that we didn't add
duplicate cells to a vector. Check the vector directly instead.

Review-Url: https://chromiumcodereview.appspot.com/2434033003
Cr-Commit-Position: refs/heads/master@{#426555}
mstensho
Remove last-minute row height stretching for pagination.
This code no longer has any effect, since we now fragment and set the correct
row heights way BEFORE cell alignment and flexing. It was also buggy, in that
it didn't recalculate intrinsic padding after resizing the row.

BUG=534751

Review-Url: https://chromiumcodereview.appspot.com/2433413002
Cr-Commit-Position: refs/heads/master@{#426512}
mstensho
Performance test for deeply nested tables inside multicol.
This is similar to printing deeply nested tables, and we have serious
performance issues with this.

Landing the performance test separately from the actual fix, so that we can
observe the improvement when the fix eventually lands.

BUG=487026

Review-Url: https://chromiumcodereview.appspot.com/1695193006
Cr-Commit-Position: refs/heads/master@{#426461}
mstensho
Specified row height should be applied during initial section layout.
BUG=534751

Review-Url: https://chromiumcodereview.appspot.com/2434543004
Cr-Commit-Position: refs/heads/master@{#426441}
mstensho
Remove first-line-in-cell strut subtraction workaround.
This is no longer needed. In fact, it was causing some trouble.

BUG=534751

Review-Url: https://chromiumcodereview.appspot.com/2438613004
Cr-Commit-Position: refs/heads/master@{#426435}
fs
Simplify SVGAnimated* initialization
In several cases, all initial values are the same, so callers of
SVGAnimated<TYPE>::create can be relieved of the duty of calling
SVG<TYPE>::create() explicitly.

This affects:

  SVGAnimatedBoolean,
  SVGAnimatedNumberList,
  SVGAnimatedPreserveAspectRatio,
  SVGAnimatedString and
  SVGAnimatedTransformList

These should hopefully also all reset to the correct value when
encountering an invalid (string) value.

BUG=225807

Review-Url: https://chromiumcodereview.appspot.com/2436793002
Cr-Commit-Position: refs/heads/master@{#426429}
rune
Collect @viewport before constructing RuleSets.
- Move ViewportStyleResolver to StyleEngine.

- Only create a ViewportStyleResolver for top level documents.

- Collect @viewport rules via the DocumentStyleSheetCollection.

- Use the initial viewport size for resolving viewport relative
  lengths.

- Introduce initialViewportChanged() and viewportRulesChanged() in
  StyleEngine to trigger re-collection and resolution of the actual
  viewport. These currently trigger an immediate call to updateViewport
  which will later be a part of the document lifecycle phase for
  updating active stylesheets.

This finally fixes issues 332763, 455136, and 463098.

R=timloh@chromium.org
BUG=567021,463098,455136,332763

Review-Url: https://chromiumcodereview.appspot.com/2420413005
Cr-Commit-Position: refs/heads/master@{#426427}
rune
Initial viewport is not the same as FrameView rect.
FrameView rect is also changed by the visual viewport.

Set the initial viewport size on FrameView whenever it changes in
WebViewImpl and use it for matching media queries when collecting
@viewport rules. See [2] for spec reference.

This is fixing what was introduced in [1].

[1] https://codereview.chromium.org/2414343002/
[2] https://www.w3.org/TR/css-device-adapt-1/#media-queries

R=bokan@chromium.org,timloh@chromium.org
BUG=332763

Review-Url: https://chromiumcodereview.appspot.com/2431613002
Cr-Commit-Position: refs/heads/master@{#426424}
mstensho
Move table row pagination strut insertion to the first layout pass.
Pagination struts are inserted before a table row, when we should avoid
breaking inside it, and it doesn't fit as a whole in its current fragmentainer.
We should avoid breaking inside rows when their break-inside is "avoid", or
when there are repeating table headers (which turns on break-inside:avoid for
all rows in the table).

This CL also includes the code that deals with repeating headers, since it
proved hard to separate it from the rest.

We need to make sure to subtract the struts from previous rows' height now;
just like we don't include border spacing in the rows, we should also omit the
pagination strut of the next row. In order to be consistent about this,
layoutRows() in LayoutTableSection now uses the rows' logical heighs more
extensively than before (rather than using the m_rowPos array to calculate
heights). This has an implication for rowspanned cells. We now need to wait
until we are at their last row before processing them, since we calculate row
heights on the fly. There's a small fix here. Previously, the strut wasn't
baked into the logical top of a table row, unlike all other layout objects.
This resulted in wrong offsets for table rows after fragmentainer breaks,
but the cells in there still had correct offsets, so it wasn't possible
to observe this bug in any visual test. It does affect a couple of
dump-render-tree printing tests, though. Added a couple of tests for this
on my own, which use offsetTop and offsetHeight.

table-disable-fragmentation.html is just a regression test. We need to be
careful to ignore struts when not fragmented. It passed before and it passes
now, but I nearly broke it while working on this.

BUG=534751

Review-Url: https://chromiumcodereview.appspot.com/2433473002
Cr-Commit-Position: refs/heads/master@{#426265}
mstensho
Clean up break-inside restriction propagation from table headers.
If a table header has break-inside:avoid, our implementation currently
propagates that to all table rows in the table. Make this more obvious (and
consistent) with a getPaginationBreakability() override in LayoutTableRow,
rather than checking it at only one place (paginationStrutForRow()), although
that may very well have been the only place that needed to care.

No behavioral changes expected.

Review-Url: https://chromiumcodereview.appspot.com/2426553004
Cr-Commit-Position: refs/heads/master@{#426020}
mstensho
Set logical top and height of table rows and cells in the first layout pass.
This gives the fragmentation machinery an opportunity to insert breaks at the
right places. We previously assumed that all cells were at the top of their
table section, so break insertion was completely bogus. While we'd get a second
chance to break correctly in the second layout pass, this doesn't always work
too well. There's currently some code in layoutRows() in LayoutTableSection
that attempts to adjust the row height when we change where we break inside a
table cell, but it doesn't re-align cells vertically after this adjustment.
That code must die, and this CL is a preparatory step.

BUG=534751

Review-Url: https://chromiumcodereview.appspot.com/2423403002
Cr-Commit-Position: refs/heads/master@{#426015}
rune
Removed unused includes from Internals.cpp.
R=mstensho@opera.com

Review-Url: https://codereview.chromium.org/2428543004
Cr-Commit-Position: refs/heads/master@{#425945}
rune
Implement collection of @viewport rules from DocumentStyleCollection.
The @viewport rules will be recollected and re-resolved from a new
updateViewport() method. Rule will need to be re-collected when
stylesheets are added, or when media queries change. Re-resolution
needs to happen when the viewport descriptors contain vh/vw units, or
after a re-collection of rules.

Store the viewport and device dependent mq results on the
ViewportStyleResolver as these may be different from the results
collected when constructing the rulesets because of the initial/actual
viewport difference. The device dependent will not be different, but
nested media queries may cause some media queries to be skipped for
ruleset construction which would not be skipped for @viewport rule
collection.

We also change the existing code to lazily reset() in preparation for
the re-collect/re-resolve distinction.

R=timloh@chromium.org
BUG=567021

Review-Url: https://codereview.chromium.org/2424823002
Cr-Commit-Position: refs/heads/master@{#425942}
mstensho
Separate method for calculating logical height based on CSS properties.
Move it out of LayoutTable::layout(), since that method is more than crowded
enough as it is.

Had to make convertStyleLogicalHeightToComputedHeight() a const method, since I
decided to make the new method const. Constified
convertStyleLogicalWidthToComputedWidth() as well, for the sake of consistency.

Review-Url: https://codereview.chromium.org/2422103003
Cr-Commit-Position: refs/heads/master@{#425757}
mstensho
Disable row stretching for tables crossing fragmentainer boundaries.
Edge also does this.

Allowing rows to be stretched and thus moved after fragmentation would require
us to re-fragment (since the fragmentainer boundaries would be elsewhere, due
to row stretching), then re-stretch, the re-re-fragment, and so on (cyclic
dependencies).

BUG=534751

Review-Url: https://codereview.chromium.org/2421133002
Cr-Commit-Position: refs/heads/master@{#425705}
tmoniuszko
Add missing exclusive_access_manager.h includes
BUG=

Review-Url: https://codereview.chromium.org/2424773002
Cr-Commit-Position: refs/heads/master@{#425670}
rune
Spell-checking and proof-reading WhitespaceLayoutObjects.md.
R=nainar@chromium.org,bugsnash@chromium.org

Review-Url: https://codereview.chromium.org/2423963002
Cr-Commit-Position: refs/heads/master@{#425663}
rune
Removed incorrect comment about raw pointer.
LocalFrame now traced as Member of MediaValuesDynamic.

R=meade@chromium.org

Review-Url: https://codereview.chromium.org/2417973002
Cr-Commit-Position: refs/heads/master@{#425629}
rune
Implement MediaValues for initial viewport.
Viewport-dependent media queries evaluate in the context of the initial
viewport when collecting @viewport rules as specified in [1]. Implement
a MediaValuesInitialViewport which returns the initial viewport
dimensions instead of the actual viewport. This change doesn't fix
issue 332763 until we start collecting author @viewport rules before
creating RuleSets.

[1] https://www.w3.org/TR/css-device-adapt-1/#media-queries

R=timloh@chromium.org
BUG=332763

Review-Url: https://codereview.chromium.org/2414343002
Cr-Commit-Position: refs/heads/master@{#425628}
mstensho
Lay out table children in visual order, and set position and size.
Set caption and section positions before the first layout pass, and set the
logical height right after. This will help the fragmentation code break at the
right places.

By doing it in visual order right away we can also get rid of some code that
dealt with sections being moved after layout.

BUG=534751

Review-Url: https://codereview.chromium.org/2421613002
Cr-Commit-Position: refs/heads/master@{#425425}
mstensho
Correctly check if we have a valid page height before checking remaining space.
LayoutState::pageLogicalHeight() is bogus, and the sooner we convince it to
take a long walk on the short pier, the better. :(

Additionally, bail out earlier from fragmentation-specific code. No need to
waste time on calling crossesPageBoundary() when not fragmented.

BUG=655911

Review-Url: https://codereview.chromium.org/2413413003
Cr-Commit-Position: refs/heads/master@{#425420}
rune
Simpler viewportAndroid.css setup for WebFrameTests.
Enable use of viewportAndroid.css by setting WebViewportStyle::Mobile
instead of explicitly parsing the sheet as part of the tests.

Also corrected some typos.

R=bokan@chromium.org

Review-Url: https://codereview.chromium.org/2423463002
Cr-Commit-Position: refs/heads/master@{#425355}
fs
Clean up SVGViewSpec::parseViewSpecInternal
Make this function slightly more readable by partitioning it as:
  1) Parse outer function ("svgView")
  2) For all functions:
  2.1) Match/parse "function name"
  2.2) Parse arguments to said function

This gets rid of a lot of the parameter list boilerplate that every case
shares. (I.e handling '(' and ')'.)

Also change to use skipExactly and skipUntil from ParsingUtilities.h.

Review-Url: https://codereview.chromium.org/2421863002
Cr-Commit-Position: refs/heads/master@{#425315}
rune
Don't generate RuleSets for viewport UA sheets.
Start collecting UA @viewport rules from the StyleSheetContents instead
of the RuleSet. The reason is that we need to collect viewport rules
before creating the RuleSet in order to use the correct actual viewport
for evaluating media queries. This is split out from [1].

Also introducing a separate MediaQueryEvaluator in the
ViewportStyleResolver which should eventually be based on the initial
viewport and not the actual viewport as described in the CSS Device
Adaptation spec.

[1] https://codereview.chromium.org/2405143003

R=timloh@chromium.org
BUG=463098

Review-Url: https://codereview.chromium.org/2410283005
Cr-Commit-Position: refs/heads/master@{#425284}
rune
Add hasViewportRule() flag to StyleSheetContents.
This is a pre-requisite for collecting viewport rules before generating
the RuleSet. The RuleSet contents depends on media query evaluation,
which in turn depends on viewport size resolution, which means we are
currently may generate the RuleSet, and recalculate style, twice in the
presence of both @media and @viewport.

This CL is split out from [1] which in turn is split out from [2].

[1] https://codereview.chromium.org/2405143003/
[2] https://codereview.chromium.org/1913833002/

R=timloh@chromium.org
BUG=463098

Review-Url: https://codereview.chromium.org/2408353003
Cr-Commit-Position: refs/heads/master@{#425273}
karlo
Support margin-top for legend in fieldset.
The implementation aligns with Edge, Gecko centers the legend+margins, which
looks undesirable to me.  The specs say nothing about this.

The new behaviour causes two tests to change, both have been rebaselined. One
was additionally modified to not trigger the scrollbar, which in turn would
render differently on various platforms.

BUG=554077
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Review-Url: https://codereview.chromium.org/2396813002
Cr-Commit-Position: refs/heads/master@{#425127}
mstensho
Top-align table cells in rows that cross fragmentainer boundaries.
Ignore whatever vertical-align says and force everything to be top aligned in
those cases. Edge also behaves like this.

Doing both fragmentation and vertical alignment for table parts could cause
unresolvable situations (cyclic dependencies).

Two tests that depended on vertical alignment working under such circumstances
are now invalid, and were therefore removed.

BUG=534751

Review-Url: https://codereview.chromium.org/2412923002
Cr-Commit-Position: refs/heads/master@{#425112}
jb
Make HarfBuzzFace release SimpleFontData.
HarfBuzzFace did a retained look up of SimpleFontData from the
FontDataCache but never released the SimpleFontData. This caused the
SimpleFontData to remain in the cache, indefinitely holding on to
SkFontFaces and all associated data. This fix makes HarfBuzzFace
release the SimpleFontData when deleted.

BUG=617568

Review-Url: https://codereview.chromium.org/2411643002
Cr-Commit-Position: refs/heads/master@{#424993}
mostynb
Add the Ahem font license
Review-Url: https://codereview.chromium.org/2397303003
Cr-Commit-Position: refs/heads/master@{#424769}
rune
documentStyleSheetCollection() is always non-null.
Return a reference instead of a pointer to make that clear.

R=meade@chromium.org

Review-Url: https://codereview.chromium.org/2405793002
Cr-Commit-Position: refs/heads/master@{#424706}
fs
Push hasValidAttributeName/Type down into SVGAnimateElement
Introduce a new "validator" method for SVGSMILElements - hasValidTarget.
With this new method in place, the hasValidAttributeType and
hasValidAttributeName methods can be pushed down the hierarchy to where
they belong, namely SVGAnimateElement.
As a bonus, some conditions and assertions can be simplified.

BUG=641437

Review-Url: https://codereview.chromium.org/2408913002
Cr-Commit-Position: refs/heads/master@{#424389}
fs
Consolidate FilterOperation and FilterEffect mapRect implementations
The FilterOperations and FilterEffects for drop-shadow and gaussian blur
has very similar but slightly different implementations.
Restructure the code a bit so that the entire thing can be shared/reused
between the two different code-paths. The new canonical location is the
corresponding FilterEffect (FEGaussianBlur and FEDropShadow.)

Review-Url: https://codereview.chromium.org/2393993004
Cr-Commit-Position: refs/heads/master@{#424263}
davve
Remove davve@ from OWNERS files
Recently I haven't had, and don't expect to get, much time to
contribute to Blink.

NOTRY=true
BUG=none

Review-Url: https://codereview.chromium.org/2406823002
Cr-Commit-Position: refs/heads/master@{#424130}
rune
Document LayoutObject generation for whitespace nodes.
R=eae@chromium.org,esprehn@chromium.org,mstensho@opera.com

Review-Url: https://codereview.chromium.org/2402653002
Cr-Commit-Position: refs/heads/master@{#423947}
mstensho
Don't break before a first in-flow block container.
There's no break opportunity there, but break-inside:avoid used to trick us
into inserting a break there anyway in some cases.

As part of this work, we need allowsPaginationStrut() to check better if a
strut is allowed, or it might just end up getting eaten and forgotten about by
a first in-flow block further up in the tree. This matters for monolithic
content [1], such as lines and image blocks. We should never break inside
those, so allow breaking before them, even if they are the first piece of
content inside some block (just like we did before this change).
break-before-first-line-in-first-child.html and image-block-as-first-child.html
test that we don't regress in this regard.

Also removed a FIXME about checking for sufficient height. This would be
incorrect to fix. If there's no break point here, we have to propagate the
strut, if we're allowed to.

Had to update some tests, and even rename one, because they relied on the old
buggy behavior.

[1] https://drafts.csswg.org/css-break-3/#possible-breaks

BUG=653690

Review-Url: https://codereview.chromium.org/2400083003
Cr-Commit-Position: refs/heads/master@{#423926}
mstensho
A forced break inside a break-inside:avoid object may make it fit where it is.
If an object with break-inside:avoid is taller than what fits in the current
fragmentainer, but it has a forced break before we get to the end of the
fragmentainer, we don't have to push the object to the next one, since what's
before the forced break fits fine where it is.

BUG=533736

Review-Url: https://codereview.chromium.org/2401753002
Cr-Commit-Position: refs/heads/master@{#423884}
fs
Move isTargetAttributeCSSProperty to SVGAnimateElement
SVGAnimateElement is the only user. Move it and make it a free function.

BUG=641437

Review-Url: https://codereview.chromium.org/2395793004
Cr-Commit-Position: refs/heads/master@{#423817}
rune
Apply RuleSet changes for active stylesheet changes.
Introduce an applyRuleSetChanges method which will take the old and new
ActiveStyleSheetVector use the existing comparison method and apply the
RuleSet diff to invalidate style for the document.

The normal mode for style rules is to schedule RuleSet invalidations
which will decide what to recalculate based on the invalidation sets.
Universal selectors, the presence of Shadow DOM v0 combinators, or
@font-face rules for the document scope, will cause a subtree recalc
for the TreeScope.

@keyframes rules utilizes the existing functionality for invalidating
style in the TreeScope and the host TreeScope for running and
unresolved animations.

This CL introduces appendActiveStyleSheets which will eventually
replace the combination of the lazy appending of sheets in
StyleResolver and appending pending sheets into the ScopedStyleResolver
through appendCSSStyleSheet.

This CL is split out of https://codereview.chromium.org/1913833002 and
re-worked a bit.

The functionality is not yet in use.

R=meade@chromium.org
BUG=567021

Review-Url: https://codereview.chromium.org/2394353003
Cr-Commit-Position: refs/heads/master@{#423810}
rune
Allow active sheets to have nullptr for RuleSet.
CSSStyleSheets which have a non-matching media attribute may have a
nullptr for RuleSet since it's not needed. Handle that in active style-
sheet diffing. That means adding a sheet with non-matching media should
not cause any style recalculations.

R=meade@chromium.org
BUG=567021

Review-Url: https://codereview.chromium.org/2401573002
Cr-Commit-Position: refs/heads/master@{#423804}
rune
Skip reflowed comments css/parser for git-blame.
R=thakis@chromium.org
BUG=563793

Review-Url: https://codereview.chromium.org/2396433006
Cr-Commit-Position: refs/heads/master@{#423712}
fs
Adjust some includes around SVGResourceClient and FilterOperation
Also drop an unused include of ReferenceFilterBuilder.h.

BUG=439970
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Review-Url: https://codereview.chromium.org/2400663002
Cr-Commit-Position: refs/heads/master@{#423708}
mstensho
Store physical location in LayoutTableRow, just like in all other objects.
BUG=652496

Review-Url: https://codereview.chromium.org/2399633002
Cr-Commit-Position: refs/heads/master@{#423701}
ckulakowski
Add missing dependencies to extensions BUILD.gns
Some files from guest_view include (not directly) file
extensions/common/api/events.h which is generated by target
//extensions/common/api. This dependency is missing and
sometimes it causes compilation errors. Build will fail if
no target which depends on //extensions/common/api is built
before guest_view. It happens quite rarely: it failed once
on ~10 rebuilds on my mac.

BUG=

Review-Url: https://codereview.chromium.org/2402453002
Cr-Commit-Position: refs/heads/master@{#423613}
rune
Skip reflowed comments css/invalidation for git-blame.
R=meade@chromium.org
BUG=563793

Review-Url: https://codereview.chromium.org/2393393002
Cr-Commit-Position: refs/heads/master@{#423503}
rune
Reflow comments in core/css/parser
R=timloh@chromium.org
BUG=563793

Review-Url: https://codereview.chromium.org/2398013002
Cr-Commit-Position: refs/heads/master@{#423482}
fs
Move handling of 'attributeType' to SVGAnimateElement
Another animation property that applies only to the SVGAnimateElement
part/subtree of the element hierarchy. Move it down for continued
"unlocking" of the structure.

BUG=641437

Review-Url: https://codereview.chromium.org/2391993006
Cr-Commit-Position: refs/heads/master@{#423467}
rune
Reflow comments in core/css/invalidation.
R=meade@chromium.org
BUG=563793

Review-Url: https://codereview.chromium.org/2398833004
Cr-Commit-Position: refs/heads/master@{#423441}
mstensho
Move table cell height flexing into a separate method.
TableSection::layoutRows() is long enough as it is. :)

Review-Url: https://codereview.chromium.org/2392353002
Cr-Commit-Position: refs/heads/master@{#423248}
fs
Move shouldApplyAnimation to SVGAnimateElement
Only used by SVGAnimateElement.

BUG=641437

Review-Url: https://codereview.chromium.org/2394583002
Cr-Commit-Position: refs/heads/master@{#422935}
fs
Hoist target element null-checks out of SVGAnimateElement::calculate*
The calculateFromAndToValues, calculateFromAndByValues and
calculateDistance share a common entrypoint (startedActiveInterval), so
we can tighten this code-path a bit checking for a target element up
front. (No target element makes for pretty useless animations anyway...)
calculateAnimatedValue gets similar treatment in its updateAnimation
(sole) entrypoint.

Also refill comments to 80 columns in SVGAnimateMotionElement.cpp.

BUG=641437

Review-Url: https://codereview.chromium.org/2386013002
Cr-Commit-Position: refs/heads/master@{#422484}
fs
Push animation value 'inherit' handling into SVGAnimateElement
Handling of 'inherit' doesn't need to live on SVGAnimationElement,
because only SVGAnimateElement makes use of it. Move it down the
class structure and simplify.

Also refill/wrap comments in the files touched to 80 columns.

BUG=641437

Review-Url: https://codereview.chromium.org/2384013002
Cr-Commit-Position: refs/heads/master@{#422446}
mostynb
remove obsolete(?) git attributes from old top-level WebKit settings
It is a little surprising (for automated scripts, mostly) for files to
be export-ignore'd from subdirectories.  This patch removes some old WebKit
export-ignore attributes that I suspect are no longer useful.

This was the original patch that added the attributes, I have not been able
to locate details of the review or why it was originally required:
https://chromium.googlesource.com/chromium/src.git/+/20706fd0c00d214a264439277e0bc8e90ccba203

Review-Url: https://codereview.chromium.org/2387033002
Cr-Commit-Position: refs/heads/master@{#422412}
mharanczyk
Add WebRange test for explicit empty ranges creation.
This is followup of https://codereview.chromium.org/2373613005/.

Review-Url: https://codereview.chromium.org/2385643002
Cr-Commit-Position: refs/heads/master@{#422405}
mstensho
Use ceil() when integerizing pagination struts before table rows.
Subpixel rendering is not supported in table parts, so everything needs to be
integers. However, instead of rounding the pagination strut down to the nearest
integer, round it up. This way we at least make sure that we manage to push all
the content over to the designated fragmentainer, rather than leaving one tiny
strip behind in the previous fragmentainer. There'll still be off-by-one
errors, but at least all the content is in the right fragmentainer.

Updated some tests to not use subpixel multicol heights, since what they
required cannot really be satisfied without adding full subpixel support to
tables.

Also added a new test that *does* use subpixel multicol height. This test
merely makes sure that nothing is left behind in the previous fragmentainer at
breaks, without worrying about the exact top position of the objects.

This problem was discovered while working on bug 487026, which is about
reducing the amount of forced re-layouts that we do for fragmentation, and it
turns out that table layout in general, and perhaps strut calculation there in
particular, tends to need more layout passes it explicitly asks for (so it
depends on other parts of the system dealing out layout passes for free). Added
body { overflow:hidden; } declarations to some tests, to reduce the number of
layout passes you get for free, i.e. make the tests more evil.

BUG=487026

Review-Url: https://codereview.chromium.org/2382043003
Cr-Commit-Position: refs/heads/master@{#422312}
fs
Fold bits of SVGAnimatedTypeAnimator into SVGAnimateElement
This folds non-property-construction methods from
SVGAnimatedTypeAnimator into SVGAnimateElement and gets rid of simple
forwarding methods. This leaves SVGAnimatedTypeAnimator as a property-
value factory.

BUG=641437

Review-Url: https://codereview.chromium.org/2387513002
Cr-Commit-Position: refs/heads/master@{#422188}
fs
Don't allow form-feed (U+000C) as a WebVTT signature separator
Per the WebVTT parser algorithm [1], only space, tab or newline (after
normalization) are allowed to follow the "WEBVTT" signature.

[1] https://w3c.github.io/webvtt/#webvtt-parser-algorithm

BUG=651777

Review-Url: https://codereview.chromium.org/2382173002
Cr-Commit-Position: refs/heads/master@{#422093}
fs
Don't use absolute bounding boxes in LayoutVTTCue
LayoutVTTCue was using absoluteContentBox()/absoluteBoundingBoxRect()
during overlap resolution. This would mean that boxes were computed
relative to the containing frame. The former also doesn't take
transforms into account, which would mean that the basic overlap check
against the title area would fail if a transform was present.

Instead compute the various bounding boxes relative to a common
ancestor, namely the text track container (which is also the containing
block of the cues.) Adjust the controls rect similarly to get it into the
same coordinate space.

BUG=647253

Review-Url: https://codereview.chromium.org/2377193003
Cr-Commit-Position: refs/heads/master@{#422072}
mstensho
Introduce markChildForPaginationRelayoutIfNeeded().
No behavioral changes intended.

This replaces markForPaginationRelayoutIfNeeded(). Since the method was always
called when it was the container that was being laid out, this is more
"correct", and in the same spirit as e.g.
updateBlockChildDirtyBitsBeforeLayout(), adjustBlockChildForPagination(), and
so on.

This is a preparatory patch to allow for calling
offsetFromLogicalTopOfFirstPage(), which uses LayoutState more heavily.
When using LayoutState, you generally need to be laying out the very same
object as the one LayoutState points to.

BUG=487026

Review-Url: https://codereview.chromium.org/2382733002
Cr-Commit-Position: refs/heads/master@{#421815}
fs
Move FilterOperation*.{cpp,h} to core/style/
Move the FilterOperation(s) structures to core/style to make them a
"style type". This is in preparation for an improved mechanism for
signaling mutations to "reference" filters.

This is essentially a pure move, with only minor modifications to fix
some presubmit issues and to facilitate (fix) building.
(ASSERT -> DCHECK; PLATFORM_EXPORT -> CORE_EXPORT)

BUG=439970
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Review-Url: https://codereview.chromium.org/2375453002
Cr-Commit-Position: refs/heads/master@{#421796}
rune
Avoid creating consecutive whitespace renderers.
In textLayoutObjectIsNeeded(), return false if we are a whitespace-only
text node, and our previous LayoutObject sibling is a whitespace
renderer. This avoids for instance creating a consecutive list of
whitespace renderers when we have multiple display:none sibling
elements.

This change makes [1] take ~900ms instead of ~2600ms on my computer.

[1] https://bugs.chromium.org/p/chromium/issues/attachmentText?aid=8037

BUG=399816

Review-Url: https://codereview.chromium.org/2369963005
Cr-Commit-Position: refs/heads/master@{#421794}
rune
Adding @keyframes rules only affects TreeScope plus host.
@keyframes rules may apply to animations in the same TreeScope as the
rule and the host element if the TreeScope is a shadow tree. Instead of
invalidating all keyframe animations or recalculating every element in
the document, limit such changes to the relevant TreeScopes.

Currently, this doesn't have an effect since analyzed style update only
happens in the document TreeScope, but that will change with RuleSet
invalidation for crbug.com/567021

R=alancutter@chromium.org,suzyh@chromium.org
BUG=567021

Review-Url: https://codereview.chromium.org/2361733004
Cr-Commit-Position: refs/heads/master@{#421781}
mstensho
Support for multiple block fragments in getClientRects().
Objects crossing column boundaries, for instance, should create one rectangle
for each column they live in.

Two old tests had to be updated, because they depended on the old and incorrect
behavior (pick the bigger / center column and create one huge rectangle there).

Add fragmentainerInFlowThread() to FragmentainerIterator. Removed the
updateOutput() thing. Instead, have the getters compute what they need on the
fly. This makes more sense now, since none of the (2) FragmentainerIterator
users need to calculate everything. Also don't require a clip rectangle.

Some extra attention is required when processing objects with a zero-height
bounding box now. Previously, we didn't need to worry about those, since no
bounding box means no painting, hit-testing, etc. But now, with
getBoundingClientRect(), life is different.

BUG=362232

Review-Url: https://codereview.chromium.org/2360913004
Cr-Commit-Position: refs/heads/master@{#421643}
fs
Add use counters for SVGCursorElement
This adds one counter for presence of an SVGCursorElement, and one for
if any ComputedStyle references the element (==the SVGCursorElement has
a client.)

BUG=650598

Review-Url: https://codereview.chromium.org/2376613004
Cr-Commit-Position: refs/heads/master@{#421630}
rune
Speculative fix for SelectorFilter crash.
It looks from the crash log that the string impl() is nullptr. Found no
possible way for a null string to be added to the SpaceSplitString, but
let's add a null check to see if it helps.

R=eae@chromium.org,timloh@chromium.org
BUG=646026

Review-Url: https://codereview.chromium.org/2376703002
Cr-Commit-Position: refs/heads/master@{#421492}
mharanczyk
Update DCHECK in WebRange constructor.
Currently creating empty range (0,0) triggers it, judging by
the comment it was intende to check null range only.

Review-Url: https://codereview.chromium.org/2373613005
Cr-Commit-Position: refs/heads/master@{#421252}
tmoniuszko
Reland of Force U.S. English keyboard layout for TextfieldTest.KeysWithModifiersTest
Reverted in
https://codereview.chromium.org/2349253002

Reason for revert:
Tests are failing on Mac ASAN builder. See details here:
https://uberchromegw.corp.google.com/i/chromium.memory/builders/Mac%20ASan%2064%20Tests%20(1)

BUG=633136

Review-Url: https://codereview.chromium.org/2353333002
Cr-Commit-Position: refs/heads/master@{#421191}
rchlodnicki
Fix GDI leak in NativeThemeWin::PaintIndirect
There was a GDI leak when hovering input elements. Reaching 10000 GDI objects
would cause process to crash.

Fixed by deleting HBITMAP that was selected onto the HDC. Deleting HDC does not
take care of that.

The skia utility function was removed and replaced with a custom scoped object
at call site as it was used only in one place and making it safe to use for
others would be a bit tricky as bitmap needs to be deleted before HDC and there
is no easy access to the bitmap after utility function returns HDC.

R=pkasting@chromium.org,fmalita@chromium.org,tomhudson@google.com

BUG=649712

Review-Url: https://codereview.chromium.org/2365903002
Cr-Commit-Position: refs/heads/master@{#421142}
rune
Missing sibling invalidation across removed element.
When removing B from siblings A B C, we scheduled invalidations for
features of A requiring two adjacent combinators to schedule an
invalidation at all. That is fine for rules already affecting C, but
for rules kicking in after B is removed, a single combinator is enough.
For instance ".a + .c".

R=ericwilligers@chromium.org
BUG=647780

Review-Url: https://codereview.chromium.org/2362463004
Cr-Commit-Position: refs/heads/master@{#421124}
fs
Make SVGAnimatedBoolean.h less popular
SVGAnimatedBoolean is only used by/for SVGFEConvolveMatrix, but was
being included in a lot of places. Remove the unnecessary includes of
SVGAnimatedBoolean.h, and also remove some other obvious unnecessary
includes in the vicinity.

Review-Url: https://codereview.chromium.org/2371593002
Cr-Commit-Position: refs/heads/master@{#420993}
fs
Reduce includes of some SVG*TearOff types
SVG*TearOff types are only of real interest to the bindings, so don't
need to be included in something that isn't direclty interacting with
bindings. Shuffle declarations and definitions to reduce the impact of
SVGPointTearOff and SVGRectTearOff.

Review-Url: https://codereview.chromium.org/2361973003
Cr-Commit-Position: refs/heads/master@{#420920}
fs
Move buildFilterOperations to FilterEffectBuilder
This puts all FilterOperations conversions (to FilterEffect and
CompositorFilterOperations) in one spot - FilterEffectBuilder.
This allows folding the functionality of resolveReferenceFilters into
FilterEffectBuilder, and hence get rid of the explicit extra step to
update the "cached" Filter chain in ReferenceFilterOperation.

This is one step on the way to turning FilterOperations into a core
style type, to allow for more straight-forward interaction with other
parts of the style system.

BUG=439970
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Review-Url: https://codereview.chromium.org/2357633003
Cr-Commit-Position: refs/heads/master@{#420844}
mostynb
unbreak builds with webrtc disabled
https://codereview.chromium.org/2123863004 broke non-webrtc non-android
builds.  Let's fix that.

BUG=487935

Review-Url: https://codereview.chromium.org/2370583002
Cr-Commit-Position: refs/heads/master@{#420832}
fs
Make SVG*StringList and SVGStringListTearOff scarcer
(Primarily) because of their inclusion in the SVGTests interface, these
two make their way into a lot more compilation units than has use for
them. The principal access to this data is the SVGTests::isValid()
method, so only the actual bindings should need any deeper insight into
these. Shuffle declarations and definitions to make their inclusion more
scarce. (From ~194 -> ~13 total dependencies for the latter, based on
"ninja -t deps".)

Review-Url: https://codereview.chromium.org/2360383003
Cr-Commit-Position: refs/heads/master@{#420614}
fs
Fold DisplayItem creation into paintFilteredContent in SVGFilterPainter
Brings uses of any form of "filter bounds" closer together.
Rename |filterRegion| and |boundaries| to |filterBounds|.

BUG=109224
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Review-Url: https://codereview.chromium.org/2367463002
Cr-Commit-Position: refs/heads/master@{#420397}
fs
Fix effect mapping computation for displacement-map w/ negative scale
When scale is negative, the displacement will be in the opposite
direction. Hence we need to only use the magnitude of the scale when
computing the effect of the filter.

BUG=641854

Review-Url: https://codereview.chromium.org/2359133003
Cr-Commit-Position: refs/heads/master@{#420396}
mstensho
Content that starts before the first fragmentainer should stay where it is.
It should not undergo pagination, but rather remain in the underflow area of
the first fragmentainer. There's no reason to pull everything into the content
area of the first fragmentainer.

BUG=591694

Review-Url: https://codereview.chromium.org/2360253002
Cr-Commit-Position: refs/heads/master@{#420353}
rune
Document* -> Document& for loadSubimages and friends.
Document* should never be nullptr in these places. Also made them const
and propagated the const-ness where necessary.

R=sashab@chromium.org

Review-Url: https://codereview.chromium.org/2352193004
Cr-Commit-Position: refs/heads/master@{#420319}
fs
Harmonize FilterEffect::mapRect and mapPaintRect
This CL terminates the FilterEffect::determineAbsolutePaintRect codepath,
replacing the last user (SVGFilterPainter) with mapRect().
A new structure for FilterEffect::mapRect is introduced (taking some
hints from the SkImageFilter implementation), where mapRect is the entry-
point (replacing mapRectRecursive), which in turn calls: 1) mapInputs,
2) mapEffect and 3) applyBounds. The last simply applies any clip bounds
set on the effect, while also adjusting for affectsTransparentPixels().
mapInputs() computes the contribution from inputs to the current effect,
while mapEffect() applies the contribution from the current effect
itself. The notion of forward/reverse is not retained since only forward
mapping is used.

BUG=642035, 640264, 611674, 600430
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Review-Url: https://codereview.chromium.org/2341923002
Cr-Commit-Position: refs/heads/master@{#420293}
fs
Remove SVGSVGElement dependency from SVGTransformListTearOff
Rather than having the latter depend on the former for code-sharing,
have them both depend on the underlying primitive (SVGTransformTearOff.)

Review-Url: https://codereview.chromium.org/2360083002
Cr-Commit-Position: refs/heads/master@{#420278}
rune
Implemented scoped invalidation for added/removed RuleSets.
Async stylesheet update will schedule invalidation sets based on the
RuleFeatureSets for added/removed stylesheets. Implement the
functionality in StyleEngine for scheduling invalidations in the
stylesheet's TreeScope, including host and slotted elements if
applicable.

R=ericwilligers@chromium.org
BUG=567021

Review-Url: https://codereview.chromium.org/2333693002
Cr-Commit-Position: refs/heads/master@{#420192}
fs
Drop the SVGLengthType enumeration
After the transition to using CSSPrimitiveValue, this enumeration is
not used by anything but the DOM-side of SVGLength (SVGLengthTearOff),
and for that we might as well use the interface constants directly.

The LengthTypeREMS and LengthTypeCHS values are dropped entirely because
they are not referenced by anything.

Review-Url: https://codereview.chromium.org/2354283002
Cr-Commit-Position: refs/heads/master@{#420150}
mstensho
Stay put at the top of the current page when inserting a forced break.
If we attempt to insert a forced break, and we're already at the top of a page
or column, we should stay right there, instead of leaving an entire page or
column blank. We used to ensure this by calling nextPageLogicalTop() with
AssociateWithFormerPage.

But it was broken, because AssociateWithFormerPage could take us to a column
set preceding a column spanner that we had actually moved past. This would
confuse various parts of the machinery, and could, among other things, find
unused space in the last column preceding a spanner, and use this as a
pagination strut on an object *following* the spanner.

Remove PageBoundaryRule from nextPageLogicalTop(), and let the forced break
insertion code handle this on its own instead, and do it correctly, without
looking back at preceding columns.

BUG=647475

Review-Url: https://codereview.chromium.org/2356183002
Cr-Commit-Position: refs/heads/master@{#420072}
mstensho
Need to consider the need for a soft break even when inserting a forced break.
A forced break will just take us to the next fragmentainer. However, the next
fragmentainer may not be tall enough to fit any part of the block we're laying
out, which means that we may have to skip to a fragmentainer further ahead -
one that is tall enough. This situation may arise in nested multicol, because
then we may get inner fragmentainers of variable height.

Another reason why we need this is that a forced break on an object is inserted
before we apply clearance. After we have applied clearance, we may have ended
up at a position where there's not enough space left to fit any part of the
block we're laying out. So, again, we may need to skip to the next
fragmentainer.

BUG=647475

Review-Url: https://codereview.chromium.org/2359733002
Cr-Commit-Position: refs/heads/master@{#420041}
fs
Widen Mac expectations for move_backward_line_import_crash.html
editing/selection/modify_move/move_backward_line_import_crash.html
appears to also Crash on Mac Debug.

https://build.chromium.org/p/chromium.webkit/builders/WebKit%20Mac10.11%20%28dbg%29/builds/4772

TBR=xiaochengh@chromium.org
BUG=648547,646323
NOTRY=true

Review-Url: https://codereview.chromium.org/2360593002
Cr-Commit-Position: refs/heads/master@{#420040}
rune
Make stylesheet owner node a reference instead of pointer.
The CSSStyleSheet owner node is always non-null when passed in on
sheet creation. Make it a reference in various APIs.

The real change here that triggered this was the realization that
StyleEngine::createSheet is always called with an owner node which
belongs to the very same Document/StyleEngine. So we can turn:

  e->document().styleEngine().addPendingSheet(context);

into:

  addPendingSheet(context);

Also made parseSheet non-static as it needed the StyleEngine pointer
anyway.

R=sashab@chromium.org
BUG=567021

Review-Url: https://codereview.chromium.org/2354773003
Cr-Commit-Position: refs/heads/master@{#420018}
fs
Consolidate read-only exception throwing for SVG*TearOffs
Where possible, use the "standard" message for read-only objects from
ExceptionMessages. Move the setup of the ExceptionState with this
message to SVGPropertyTearOffBase and reuse. It also saves a small chunk
of code-space.

Also drop a bunch of vspace, reorder checks in
SVGPreserveAspectRatioTearOff to check for immutability first and do
less work on error in SVGMatrixTearOff.

Review-Url: https://codereview.chromium.org/2357463002
Cr-Commit-Position: refs/heads/master@{#419875}
mstensho
Don't include LayoutObject.h from FrameView.h
This reduces the LayoutObject.h dependency by about 50 compilation units.

Needed to move data of DepthOrderedLayoutObjectList into a forward-declared
struct, since HashSet members need their T defined, even if it's a pointer.
This due to oilpan. See https://codereview.chromium.org/1999343002 for details.

CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Review-Url: https://codereview.chromium.org/2348993002
Cr-Commit-Position: refs/heads/master@{#419728}
rune
Prepare to use invalidation set for adding/removing RuleSets.
Currently, we sometimes use StyleSheetInvalidationAnalysis to be smart
about recalculating affected element when adding/removing a stylesheet.

The plan is to start using the StyleInvalidator to trigger style
recalculations When adding/removing stylesheets. We will then use the
invalidation sets from the stylesheet RuleSet and schedule them on
elements in the stylesheet's document or shadow tree.

We fall back to a full recalc for the document / shadow tree for if we
find selectors which don't have simple selectors for which we have an
invalidation set we can use. This is similar to what we do with the
universalSiblingInvalidationSet for DOM mutations.

This first implementation supports id, class, attribute, and type
selectors in the rightmost compound[1]. We could later support to use
invalidation sets for universal pseudo class rules like ":hover".

The invalidations are to be scheduled for elements in the same
TreeScope as the stylesheet, including the host element.

Rules which are boundary crossing have their features collected in
ScopedStyleResolver::addTreeBoundaryCrossingRules() and not in their
respective stylesheet's RuleSet. We fall back to full style recalc
for rules containing ::content, ::shadow, and /deep/. ::slotted rules
are currently also collected on the ScopedStyleResolver, but in order
to avoid full recalcs, we do LocalStyleChange on slot-distributed
elements for RuleSet invalidations when there are ::slotted rules in
the RuleSet.

As mentioned earlier we will schedule invalidations on the host element
as well, which means we will schedule the invalidation set for ".a" for
":host(.a)". :host-context() do also support RuleSet invalidation as
long as there are features in addition to the ones inside the
:host-context() pseudo.

As for sibling invalidations on DOM mutations, negated selectors like
":not(.a)" are considered universal.

This CL is split out of [2]. The next step is to land the invalidation
code in StyleEngine from the same CL.

[1] Even though we don't have invalidation sets for tag names, we can
check the presence of rules in the tag name hash map for the RuleSet.
This means "body *" will cause a full recalc, but "body" won't. Also
note that "div.enabled" will cause every div element to be invalidated
because the rule would end up in the class rule hashmap.

[2] https://codereview.chromium.org/1913833002/

R=ericwilligers@chromium.org
BUG=567021

Review-Url: https://codereview.chromium.org/2326033002
Cr-Commit-Position: refs/heads/master@{#419704}
fs
Replace FilterData::filter with lastEffect
This brings the FilterData+SVGFilterPainter (etc)  "complex" closer to
the PaintLayer+PaintLayerFilterInfo structure by keep the last effect
in the chain and accessing the Filter through that when needed.
In general we want these two "complexes" to closely resemble each other
as possible - because they are supposed to implement the same thing, with
only a difference in the parametrization (like which bounding-box to use.)
This also brings one tiny (tiny tiny) step closer to being able to get
shorthand filters working in the SVG code-path.

Also try to reduce dependencies a bit in the surrounding code.

BUG=439970,109224
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Review-Url: https://codereview.chromium.org/2350063002
Cr-Commit-Position: refs/heads/master@{#419700}
mstensho
Don't include LayoutBlock.h from MediaControlElementTypes.h
Reduces the dependencies on LayoutBlock.h by 5 compilation units.

CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Review-Url: https://codereview.chromium.org/2341423002
Cr-Commit-Position: refs/heads/master@{#419699}
fs
Turn FilterEffectBuilder into a stack-allocated helper
This moves the FilterEffect reference out of FilterEffectBuilder and
into the owner (PaintLayerFilterInfo), and then turns
FilterEffectBuilder into a more proper builder-style object that is
configured by the client and then has build...() called upon it to
construct the filter.
Rename the old build() method to buildFilterEffect().
Fix up PaintLayer to remove the indirection, and similarly adjust the
other users (CanvasRenderingContext2DState, SVGFilterPainter).

BUG=439970
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Review-Url: https://codereview.chromium.org/2349183002
Cr-Commit-Position: refs/heads/master@{#419697}
rune
Remove unused StyleElement::clearDocumentData().
Review-Url: https://codereview.chromium.org/2350743002
Cr-Commit-Position: refs/heads/master@{#419556}
tmoniuszko
Force U.S. English keyboard layout for TextfieldTest.KeysWithModifiersTest
BUG=633136

Review-Url: https://codereview.chromium.org/2197113002
Cr-Commit-Position: refs/heads/master@{#419454}
fs
Reland of Evacuate ComputedStyle references from the CSS*Value hierarchy
Fold uses of:

  CSSPrimitiveValue::create(..., const ComputedStyle&)
  CSSValuePair::create(..., const ComputedStyle&)

into the (few) users. Handle the fall-out.

Review-Url: https://codereview.chromium.org/2345893004
Cr-Commit-Position: refs/heads/master@{#419390}
fs
ConvolverOptions.buffer should be nullable
TBR=rtoy@chromium.org,foolip@chromium.org
BUG=626449,647693

Review-Url: https://codereview.chromium.org/2352463002
Cr-Commit-Position: refs/heads/master@{#419388}
fs
Slim includes in CSSValue.h
This drops includes from CSSValue.h that are not directly used by it.
Downstream dependents are fixed up as needed. Also strip some includes
from StyleImage.h and other places that includes CSSValue.h while
there.

Review-Url: https://codereview.chromium.org/2345223002
Cr-Commit-Position: refs/heads/master@{#419384}
fs
Evacuate ComputedStyle references from the CSS*Value hierarchy
Fold uses of:

  CSSPrimitiveValue::create(..., const ComputedStyle&)
  CSSValuePair::create(..., const ComputedStyle&)

into the (few) users. Handle the fall-out.

Review-Url: https://codereview.chromium.org/2345893004
Cr-Commit-Position: refs/heads/master@{#419382}
fs
Revert of Show ancestor hierarchy in accessibility panel (patchset #10 id:180001 of https://codereview.chromium.org/2322413003/ )
Reason for revert:
Fails the compile step on Linux ChromiumOS GN (headless_unittests)

Original issue's description:
> Show ancestor hierarchy in accessibility panel
>
> BUG=560525
>
> Committed: https://crrev.com/3558706c1b2a630557929b61fefc74e28975f3a6
> Cr-Commit-Position: refs/heads/master@{#419369}

TBR=dmazzoni@chromium.org,dgozman@chromium.org,pfeldman@chromium.org,aboxhall@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=560525

Review-Url: https://codereview.chromium.org/2351443003
Cr-Commit-Position: refs/heads/master@{#419371}
fs
Let clients of FilterEffectBuilder compute/provide the reference-box
Rather than having code to compute the reference box for the various
clients that use FilterEffectBuilder in the class itself, let clients
compute the desired reference box themselves and pass it along.
This separates concerns, and makes code for computing the reference box
less defensive. It also eliminates the need to add even more cases in
the future (like for SVG shorthand support.)

Also push calls to resolveReferenceFilters() in PaintLayer closer to the
filter-building calls, and rename computeFilterOperations to
addReflectionToFilterOperations. This allows us to eliminate a redundant
call to resolveReferenceFilters() in the mapRectForFilter() code-path.

BUG=439970
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Review-Url: https://codereview.chromium.org/2343173002
Cr-Commit-Position: refs/heads/master@{#419290}
mstensho
Don't include LineLayoutItem.h from SVGTextContentElement.h.
Review-Url: https://codereview.chromium.org/2342203004
Cr-Commit-Position: refs/heads/master@{#419274}
fs
Don't treat shorthand filters as errors on SVG content
We don't support filter shorthands yet, so we shouldn't treat them as
errors. Fix up the hasFilter() condition to also check if it's a filter
that we pretend we can handle.

Also straighten out the code-flow in applyFilterIfNecessary.

BUG=645995
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Review-Url: https://codereview.chromium.org/2349743003
Cr-Commit-Position: refs/heads/master@{#419267}
mstensho
Don't include LayoutViewItem.h from StyleResolverState.h
This reduces the number of compilation units that depend on files like
LayoutBlock.h by more than 200 (from around 500 to around 280).

Review-Url: https://codereview.chromium.org/2348853003
Cr-Commit-Position: refs/heads/master@{#419202}
fs
Clean up includes in SVGFE*Element and thereabouts
Drop inclusion of SVGParserUtilities.h in a number of places since it's
no longer used. Push FE*.h inclusion into the implementation where
possible, and don't include FilterEffect.h in those cases.
Also simplify a loop in SVGFEMergeElement::build.

Review-Url: https://codereview.chromium.org/2342353002
Cr-Commit-Position: refs/heads/master@{#419187}
rune
Setting the link title may change the preferred set.
Make sure we set the preferred style sheet set when setting the title
attribute as long as the preferred set name is not already set.

This used to somehow work if the title was set during loading of a
stylesheet since the preferred set name was set during active
stylesheet collection. In other cases, it didn't work until another
stylesheet operation caused a re-collection of active stylesheets.

When setting the preferred name was moved into the LinkStyle::process()
code, it didn't work at all to set the title after the stylesheet
starts loading.

Make sure we set the preferred set name and trigger an active
stylesheet update when the title is changed.

BUG=645699

Review-Url: https://codereview.chromium.org/2337193004
Cr-Commit-Position: refs/heads/master@{#419107}
fs
Push CompositorFilterOperations creation out of GraphicsLayer
Push knowledge of FilterOperations out of GraphicsLayer and into
PaintLayer. This eliminates one dependency from platform/ code to the
FilterOperations structure. The motivation is to try and make
FilterOperation(s) a core (style) type, to make interaction with the
style system and other parts of core easier. It will also aid in
enabling a more layered structure on the various filter-related data
structures.

Also change the various generator functions to return a
CompositorFilterOperations by-value rather than through a out-variable.

BUG=439970
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Review-Url: https://codereview.chromium.org/2335253002
Cr-Commit-Position: refs/heads/master@{#419029}
mstensho
Add PageBoundaryRule parameter to fragmentainerGroupAtFlowThreadOffset().
If it's an exclusive end offset, we need to know this, so that we map to the
former fragmentainer group, rather than the latter, if the offset is at a
column row boundary.

Review-Url: https://codereview.chromium.org/2345583004
Cr-Commit-Position: refs/heads/master@{#418958}
mstensho
Correct flowThreadTranslationAtOffset() for vertical-rl writing mode.
The problem was that a rectangle was shifted by offsetFromColumnSet() after
having been made physical. However, offsetFromColumnSet() is semi-logical
(flipped block direction coordinate, like e.g. LayoutBox::m_frameRect), so we
need to add it in before flipping the rectangle.

This caused all fragmentainer groups but the first one to be translated
incorrectly.

Review-Url: https://codereview.chromium.org/2344813003
Cr-Commit-Position: refs/heads/master@{#418870}
mstensho
Add PageBoundaryRule parameter to columnSetAtBlockOffset().
If it's an exclusive end offset, we need to know this, so that we map to the
former column set, rather than the latter, if the offset is at a column set
boundary.

Review-Url: https://codereview.chromium.org/2340213003
Cr-Commit-Position: refs/heads/master@{#418839}
fs
Unprefix -webkit-clip-path
This CL renames '-webkit-clip-path' to 'clip-path', and makes the former
an alias of the latter.
For LayoutSVGRoot, clip-path is now applied only by the PaintLayer and
not by SVGPaintContext.

Intent-to-ship:

https://groups.google.com/a/chromium.org/d/topic/blink-dev/FBE05hzCmPo

BUG=633028
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Review-Url: https://codereview.chromium.org/2312713002
Cr-Commit-Position: refs/heads/master@{#418827}
mstensho
Handle exclusive end offsets when translating from flow thread coordinates.
If we're in flipped blocks writing mode (i.e. vertical-rl), the flow thread
block offset we're dealing with may be a logical end point, and end points are
exclusive. This means that we need to pick the previous column, not the next,
if the offset is exactly at a column boundary.

Let flowThreadTranslationAtOffset() and columnIndexAtOffset() take a
PageBoundaryRule argument to handle this.

This makes offsetLeft and offsetTop work properly in vertical-rl writing mode
for elements that end at column boundaries. Added a test for that, and threw in
a vertical-lr test too, for good measure.

Remove ColumnIndexCalculationMode from columnIndexAtOffset(). It was partially
and inaccurately used to make sure we didn't escape the valid column range in
case an exclusive end offset was passed. Have the call sites that really need
to clamp the column index do it themselves. It's up to the callers to decide
how to treat offsets outside the range of columns anyway.

Review-Url: https://codereview.chromium.org/2339973002
Cr-Commit-Position: refs/heads/master@{#418800}
mostynb
//device/media_transfer_protocol depends on dbus
The build should fail early if //device/media_transfer_protocol is included with dbus explicitly disabled.

BUG=632297

Review-Url: https://codereview.chromium.org/2333573003
Cr-Commit-Position: refs/heads/master@{#418744}
fs
Add support for <basic-shape> to 'clip-path' on SVG elements
Use ClipPathOperation as storage for the property in SVGComputedStyle,
and add support for <basic-shape>s where needed. This also means that
nesting a <clipPath> with a <basic-shape> is added.
Since SVGPaintContext::applyClipIfNecessary can't fail in a useful way,
just drop the returned bool (test added.) An invalid clip-path will
just be ignored (per spec.)

BUG=633028
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Review-Url: https://codereview.chromium.org/2322343003
Cr-Commit-Position: refs/heads/master@{#418387}
fs
Fix baselines for media/video-zoom-controls.html
Attempt to tidy up after mid-flight collision.

TBR=mlamouri@chromium.org,kdsilva@google.com
BUG=601247

Review-Url: https://codereview.chromium.org/2328353002
Cr-Commit-Position: refs/heads/master@{#417973}
rune
Simplified compound feature extraction.
Started to return the last simple selector in the compound instead of
the pointer to the next compound from
extractInvalidationSetFeaturesFromCompound. That means we can update
feature flags for the combinator from updateInvalidationSets, which
also means we can get rid of the duplicated code for updating the
nthInvalidationSet(). Additionally, we can use the siblingFeatures as
initialized by updateFeaturesFromCombinator().

Removed unused UseFeatureTypes.

There should be no functional changes.

R=ericwilligers@chromium.org

Review-Url: https://codereview.chromium.org/2326783002
Cr-Commit-Position: refs/heads/master@{#417915}
mstensho
[LayoutNG] Remove unnecessary #inclusions of LayoutObject and derived class definitions.
That reduces the number of compilation units that depend on LayoutObject.h by 9
when building content_shell.

R=eae@chromium.org

Review-Url: https://codereview.chromium.org/2328243002
Cr-Commit-Position: refs/heads/master@{#417909}
fs
Drop FilterEffect::m_absolutePaintRect
This rect is a remnant of the old ImageBuffer-based implementation of
FilterEffect, and is likely doing more harm than good at this point in
time. If we want to cache the result of a call to
determineAbsolutePaintRect(), that can be done equally well by the
client code.

Since removing this state removes the last side-effect from the
determineAbsolutePaintRect() methods we can mark it and related methods
(affectsTransparentPixels) as const.

BUG=642035

Review-Url: https://codereview.chromium.org/2329803002
Cr-Commit-Position: refs/heads/master@{#417908}
mstensho
A container of out-of-flow positioned descendants should be an offsetParent.
This reflects a recent spec change [1]. Previously, the condition was that the
position property be different from 'static', but it's unreasonable that we
shouldn't also include other objects that serve as containing blocks for fixed
and absolutely positioned descendants, such as "transform". Gecko and Edge
already have this behavior.

[1] https://github.com/w3c/csswg-drafts/commit/180b348a1ac0931043cd195651fc5164463d2bce

BUG=645397

Review-Url: https://codereview.chromium.org/2328633003
Cr-Commit-Position: refs/heads/master@{#417903}
mstensho
Walk the entire offsetParent chain in fast/forms/resources/common.js utility functions.
They used to assume that the only offsetParent was the root node, but that's no
longer going to be true when https://codereview.chromium.org/2328633003/ lands.
One test that calls searchCancelButtonPosition() is inside a transformed
element, which will become an offsetParent.

R=tkent@chromium.org

Review-Url: https://codereview.chromium.org/2332553002
Cr-Commit-Position: refs/heads/master@{#417893}
fs
Revert of Make canceling Timers fast. (patchset #10 id:180001 of https://codereview.chromium.org/2319053004/ )
Reason for revert:
Wreaks havoc on the ASAN bots:

https://build.chromium.org/p/chromium.webkit/builders/WebKit%20Linux%20ASAN

STDERR: =================================================================
STDERR: ==4==ERROR: AddressSanitizer: use-after-poison on address 0x7ed9a5616190 at pc 0x00000768b0da bp 0x7fff4bbca630 sp 0x7fff4bbca628
STDERR: READ of size 8 at 0x7ed9a5616190 thread T0 (content_shell)
STDERR:     #0 0x768b0d9 in operator-> third_party/WebKit/Source/wtf/RefPtr.h:68:50
STDERR:     #1 0x768b0d9 in revokeAll third_party/WebKit/Source/wtf/WeakPtr.h:146:0
STDERR:     #2 0x768b344 in ?? third_party/WebKit/Source/platform/Timer.cpp:124:22
STDERR:     #3 0x47a4461 in Run base/callback.h:56:12
STDERR:     #4 0x47a4461 in RunTask base/debug/task_annotator.cc:54:0
STDERR:     #5 0x79e2381 in ProcessTaskFromWorkQueue third_party/WebKit/Source/platform/scheduler/base/task_queue_manager.cc:316:19
...
STDERR: AddressSanitizer can not describe address in more detail (wild memory access suspected).
STDERR: SUMMARY: AddressSanitizer: use-after-poison

Appears to be accessing a "user-poison" area, so maybe a timer in something that was swept? (Wild guess.)

Original issue's description:
> Make canceling Timers fast.
>
> base::Closure recently got an IsCancelled method. Taking advantage of
> that the scheduler can short circuit a bunch of logic for cancelled
> tasks and avoid running them and the rest of the task selection
> machinery.
>
> On the new TimerPerfTest benchmark this makes running 10000 cancelled
> tasks aprox 50x - 60x faster (measured on Android and Linux).
>
> Note this patch reverts many of the changes made in
> https://codereview.chromium.org/2258713004 in favor of
> WeakPtr based cancellation as favored by the base owners.
>
> BUG=605718, 638542
>
> Committed: https://crrev.com/e4e5868c5f32b015bf0d07a6eeace892d6a789a1
> Cr-Commit-Position: refs/heads/master@{#417621}

TBR=jochen@chromium.org,haraken@chromium.org,skyostil@chromium.org,alexclarke@chromium.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=605718, 638542

Review-Url: https://codereview.chromium.org/2326313003
Cr-Commit-Position: refs/heads/master@{#417846}
fs
Mark */fast/canvas/canvas-hit-regions-*-test.html are timing out on Win
Timing out on win_chromium_rel_ng. Maybe just Slow?

BUG=645389
TBR=junov@chromium.org
NOTRY=true

Review-Url: https://codereview.chromium.org/2324333003
Cr-Commit-Position: refs/heads/master@{#417840}
fs
Update leak expectations after https://codereview.chromium.org/2321183002
Moved to paint/invalidation/japanese-rl-selection-clear.html from
fast/repaint/.

TBR=wangxianzhu@chromium.org
NOTRY=true

Review-Url: https://codereview.chromium.org/2331723002
Cr-Commit-Position: refs/heads/master@{#417839}
mstensho
[LayoutNG] Handle border and padding when sizing a block and when placing its children.
BUG=635619

Review-Url: https://codereview.chromium.org/2325073002
Cr-Commit-Position: refs/heads/master@{#417827}
mstensho
Translate the clip rect correctly when iterating over fragmentainers.
The clip rect is visual, so we need to shift each fragmentainer group by its
visual translation. This matters for nested multicol.

BUG=642325

Review-Url: https://codereview.chromium.org/2321333002
Cr-Commit-Position: refs/heads/master@{#417563}
mstensho
Let LayoutNG handle childless block flows.
The fact that they are marked with childrenInline() doesn't matter if they have
no children.

BUG=635619

Review-Url: https://codereview.chromium.org/2320393002
Cr-Commit-Position: refs/heads/master@{#417543}
fs
Replace FilterEffect::maxEffectRect() with absoluteBounds()
This removes maxEffectRect(), determineMaximumEffectRect() and the
associated state (m_maxEffectRect) from FilterEffect. The replacement is
the new method absoluteBounds() that computes bounds for the node in
question using the filter primitive (sub)region and the filter region.
This should match what determineMaximumEffectRect() was computing for
use from SVGFilterPainter.

BUG=642035
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Review-Url: https://codereview.chromium.org/2319293004
Cr-Commit-Position: refs/heads/master@{#417530}
rune
Corrected variable name to not contain "Tag".
Incorrectly named. We don't include type selectors.

R=ericwilligers@chromium.org

Review-Url: https://codereview.chromium.org/2321013002
Cr-Commit-Position: refs/heads/master@{#417456}
ddyndo
Fixed access to `constraint_flags` array in ParseHEVCCodecId function.
This patch adds necessary offset when accessing this array.
`constraint_flags` is an array of 6 elements, however in
`for` loop it can be accessed with indices from 4 to 9
instead of indices from 0 to 5.

Review-Url: https://codereview.chromium.org/2320063002
Cr-Commit-Position: refs/heads/master@{#417351}
rune
Removed m_isSettingStyleSheetText from InspectorCSSAgent.
The variable supressed an unnecessary re-collection of inspector
stylesheets when the stylesheet text is modified from the inspector. If
the text added contains an @import rule with a data: uri, it also
suppresses the collection of that sheet, which is wrong.

R=pfeldman@chromium.org,lushnikov@chromium.org
BUG=644719

Review-Url: https://codereview.chromium.org/2319533004
Cr-Commit-Position: refs/heads/master@{#417290}
mstensho
Replace collectLayerFragments() with FragmentainerIterator.
No functional changes intended.

The way collectLayerFragments() and PaintLayer::collectFragments() cooperated
to populate the PaintLayerFragments was rather messy. collectLayerFragments()
set two members, and then, later on, PaintLayer::collectFragments() would set
the remaining members, translate and clip. With this change, the layout code no
longer uses PaintLayerFragments.

It should also be mentioned that collectLayerFragments() was a bad name,
because this functionality shouldn't be strictly for layers. We're soon going
to need it for getClientRects() as well.

CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Review-Url: https://codereview.chromium.org/2314763002
Cr-Commit-Position: refs/heads/master@{#417271}
mstensho
Don't include headers from the layout API from other headers needlessly.
Including layout API headers involves including some LayoutObject derivate,
which takes a lot of time to compile.

R=bashi@chromium.org,dsinclair@chromium.org,haraken@chromium.org,bokan@chromium.org,pilgrim@chromium.org
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Review-Url: https://codereview.chromium.org/2316533004
Cr-Commit-Position: refs/heads/master@{#417265}
rune
Store a single inspector stylesheet hidden from CSSOM.
Custom style rules can be added via the inspector. These were stored in
a stylesheet appended to <head>. That meant it was visible to the
document via CSSOM. Also, enabling/disabling the inspector would not
remember that a stylesheet was added, so the inspector started out with
a new blank stylesheet for editing, yet the existing rules still
applied.

This CL introduces a single inspector stylesheet in the StyleEngine
which takes part in the document collection to apply the rules, but it
is not appended to the document.styleSheets list. Neither is it
accessible through a <style> element in the DOM.

The stylesheet ends up after the author stylesheets in the order of
appearance. That is similar to how it was, but previously, sheets in
<body> would appear after the inspector sheet while sheets in <head>
would appear before.

The inspector sheet source is stored in a resource container like
changes for author stylesheets. This means the inspector sheet source
will persist across inspector enable/disable.

R=pfeldman@chromium.org,lushnikov@chromium.org
BUG=624139
TEST=http/tests/inspector-enabled/reattach-after-editing-styles.html

Review-Url: https://codereview.chromium.org/2312953002
Cr-Commit-Position: refs/heads/master@{#417021}
mstensho
Fix typo in enable-blink-features command line switch.
This one doesn't disable features, it *enables* them.

R=jochen@chromium.org

Review-Url: https://codereview.chromium.org/2319503002
Cr-Commit-Position: refs/heads/master@{#416968}
rune
Refactored invalidation set extraction.
Refactor into smaller more descriptive methods.

Implemented InvalidationSetFeatures::add() and hasFeatures() to add
features conditionally for selector lists like in :-webkit-any() instead
of tracking non-feature compounds using a foundFeatures variable.

Review-Url: https://codereview.chromium.org/2305593002
Cr-Commit-Position: refs/heads/master@{#416912}
fs
Remove dead uses of FilterEffect::determineMaximumEffectRect
Said method only computes m_maxEffectRect. The only users of this data
is SVGFilterPainter, directly and via determineAbsolutePaintRect (which
in turn uses mapPaintRect which uses maxEffectRect in one case.) Hence
all other callsites are calling determineMaximumEffectRect() without
making use of the side-effect is has. Remove those uses.
This also mean that we can tailor the method for the one remaining
user by cleaning up, and removing, the flags argument.

TBR=senorblanco@chromium.org
BUG=642035
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Review-Url: https://codereview.chromium.org/2307343002
Cr-Commit-Position: refs/heads/master@{#416888}
mstensho
Correct multicol dirty rect for scrolled and flipped blocks writing mode.
Calling LayoutBox::location() to make a physical rectangle relative to the
multicol container instead of the flowthread isn't going to work if writing
mode is with flipped blocks direction (vertical-rl), because location() returns
a semi-logical offset. It would have worked with topLeftLocation(), though.
But since we'd still have issues with scrolling, make the dirty rectangle
relative to the multicol container right away on the PaintLayer side instead,
since layers know how they have been scrolled. This also happens to be in line
with the comment there, so now we're actually doing what we say that we're
doing. :)

This makes fast/repaint/paged-with-overflowing-block-rl.html pass.
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Review-Url: https://codereview.chromium.org/2310233002
Cr-Commit-Position: refs/heads/master@{#416859}
fs
Update expectations for css3/filters/effect-reference-hw.html
TBR=pdr@chromium.org
BUG=642035

Review-Url: https://codereview.chromium.org/2310993002
Cr-Commit-Position: refs/heads/master@{#416563}
fs
New Win10 baselines for css3/filters/effect-reference-hw.html
TBR=pdr@chromium.org
BUG=642035

Review-Url: https://codereview.chromium.org/2311933002
Cr-Commit-Position: refs/heads/master@{#416555}
fs
Win10 needs new baselines for css3/filters/effect-reference-hw.html
TBR=pdr@chromium.org
NOTRY=true
BUG=642035

Review-Url: https://codereview.chromium.org/2311943002
Cr-Commit-Position: refs/heads/master@{#416546}
fs
Reland of Revamp filter primitive region calculations for Filter Effects
This moves the filter primitive region calculation to
SVGFilterPrimitiveStandardAttributes::setStandardAttributes, folding in
FilterEffect::applyEffectBoundaries and getting rid of
FilterEffect::m_effectBoundaries and related flags.
What's left of FilterEffect::determineFilterPrimitiveSubregion() is
renamed to determineMaximumEffectRect(), and callsites updated.

BUG=642035
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Review-Url: https://codereview.chromium.org/2303703002
Cr-Commit-Position: refs/heads/master@{#416537}
rune
Implemented RuleSet diff for active stylesheets.
This is an implementation of the diffing of active stylesheets outlined
in [1] to replace the current compareStyleSheets method in
TreeScopeStyleSheetCollection which currently cause a "Reconstruct" if
you both have insertions and removals. With async stylesheet update we
will more likely end up in those situations as changes to the list can
happen in a batches.

An important new aspect here is that together with each stylesheet keep
a traced pointer to the RuleSet it had reference last time the active
stylesheet list was updated. That way we can figure out what changed on
media query and CSSOM changes.

The comparison algorithm works like this:

INPUTS: The new and old active stylesheet vectors
OUTPUTS: A vector of added and removed RuleSets.
         Also a return value saying if we only appended stylesheets at
         the end. Given that sheets were only appended we can do certain
         optimizations updating rule data.

* First linearly walk the old and new active list as long as the
  stylesheet pointers are the same. If the ruleset changed for the
  given sheet, add the old and new rulesets to the list of changed
  rulesets.

* If we are finished walking any of the active lists, we have either
  appended a set of sheets to the end, or we have removed a set from
  the tail. Add the added/removed rulesets to the changed list and we
  are finished.

* If we have remaining sheets in both the old and new active list,
  merge the remaining items from both lists and sort the merged vector
  on stylesheet pointers. For stylesheet pointers occuring in pairs, if
  the rulesets are different for the two entries, the ruleset changed
  so we add them to the changed list. For stylesheets which do not occur
  in pairs, they are either added or removed and we add the ruleset to
  the changed list.

The time complexity for the algorithm is O(k) for the common prefix
and the complexity for std::sort for the m + n remaining sheets in the
new and old active lists. Note that each scope has its active list, so
the larger n's will be for the document scope as shadow trees most
often have a single stylesheet (I measured a max of three running some
Polymer apps).

An assumption here is that we will do ensureRuleSet() including media
query evaluation for the media attribute as we collect active
stylesheets. Currently, the analysis of which elements needs a style
recalc happens synchronously while updating the active sheets while the
rulesets are (re-)created asynchronously/on-demand via
lazyAppendAuthorStyleSheets in StyleResolver. The idea is that since
the active stylesheet update will be async, we can drop the lazyAppend
things from StyleResolver and add the stylesheets directly to the
ScopedStyleResolvers during the active stylesheet update.

Creating the RuleSets as we collect active stylesheets means we have
invalidation sets readily available to use style invalidation to
trigger style recalcs only on elements affected by the added/removed
stylesheets.

[1] http://bit.ly/25uxtnU

R=esprehn@chromium.org,timloh@chromium.org
BUG=567021

Review-Url: https://codereview.chromium.org/1889993002
Cr-Commit-Position: refs/heads/master@{#416520}
fs
Revamp filter primitive region calculations for Filter Effects
This moves the filter primitive region calculation to
SVGFilterPrimitiveStandardAttributes::setStandardAttributes, folding in
FilterEffect::applyEffectBoundaries and getting rid of
FilterEffect::m_effectBoundaries and related flags.
What's left of FilterEffect::determineFilterPrimitiveSubregion() is
renamed to determineMaximumEffectRect(), and callsites updated.

BUG=642035
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Review-Url: https://codereview.chromium.org/2303703002
Cr-Commit-Position: refs/heads/master@{#416472}
fs
Compute better reference/visual boxes for clip-path in columns
clip-path's are applied before fragmentation, which means that we need
to adjust the coordinate space for the clip-path and its reference box
"manually" to get the correct visual coordinate space.

Also fix the origin used for clip-path to be the top-left corner of the
reference box. This only applies when SVG <clipPath> elements with
clipPathUnits='userSpaceOnUse' is referenced.

BUG=626097
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Review-Url: https://codereview.chromium.org/2300383002
Cr-Commit-Position: refs/heads/master@{#416451}
fs
css3/masking/clip-path-reference-userSpaceOnUse.html no longer fails
TBR=schenney@chromium.org
NOTRY=true
BUG=397255

Review-Url: https://codereview.chromium.org/2307063002
Cr-Commit-Position: refs/heads/master@{#416308}
fs
Tweak css3/masking/clip-path-reference-userSpaceOnUse.html
Turn the <svg> into a block to avoid having to compensate for the
baseline of an inline.

BUG=397255

Review-Url: https://codereview.chromium.org/2303043003
Cr-Commit-Position: refs/heads/master@{#416271}
fs
Align reference box computation for inline boxes with Gecko
For inline boxes, the reference box should be computed per-fragment, and
be subject to box-decoration-break. We're not quite there yet though, so
go for "local compat" for now and align with Gecko. This way we're
slightly closer to "correct" (the "single line" case ought to be fairly
correct for instance), and hopefully avoid getting sucked into a compat
"sinkhole".
Adjust css3/masking/clip-path-reference-box-inline.html to match.

BUG=641907
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Review-Url: https://codereview.chromium.org/2303773002
Cr-Commit-Position: refs/heads/master@{#416264}
davve
Simplify contain constraint calculation
We're selecting between two rectangles given by the intrinsic aspect ratio:
(defaultWidth / aspect ratio, defaultHeight) or (defaultWidth, defaultHeight x
aspect ratio). One rectangle is 'contained' and the other one 'covers'. Select
the 'contained' rectangle by trying out the first to see if its width fit, and
if so we're done. Otherwise compute and select the other rectangle.

Due to how floating point math works, it's possible that both computed
rectangles, or neither computed rectangle, will fit the case when the two ratios
are equal. See https://bugs.chromium.org/p/chromium/issues/detail?id=641221 for
one example. However, in this case it doesn't matter much which rectangle we
choose, the contained and and cover rectangle would be the same rectangle and
the floating point discrepancy has no known practical implication.

BUG=641221

Review-Url: https://codereview.chromium.org/2294683002
Cr-Commit-Position: refs/heads/master@{#416238}
rune
Don't cache matched properties for elements without a flat-tree parent.
When there's not flat tree parent for the element we are computing
style for, setHasExplicitlyInheritedProperties will not be set on the
ComputedStyle during property application. Without that flag set
correctly we allowed to add to the matched properties cache even though
we shouldn't.

There are some open questions here:

* How should body -> html propagation work when html has a shadow tree?
* Do children of a shadow host have a computed style at all when not
  distributed/slotted?

It should be noted that attachShadow is not allowed on the <html>
element. That is why the test case uses a v0 shadow tree.

R=andersr@opera.com,esprehn@chromium.org,hayato@chromium.org
BUG=636500

Review-Url: https://codereview.chromium.org/2283933003
Cr-Commit-Position: refs/heads/master@{#416200}
fs
Use LayoutSVGResourceClipper::resourceBoundingBox() in ClipPathClipper
Use the reference box to compute the clip-path bounds in ClipPathClipper,
using the resourceBoundingBox() method from LayoutSVGResourceClipper. This
should give reasonably tight-fitting bounds for the clip-as-mask code-path
which uses these bounds. It also means one less item to pass around.

This means that the clip-path code in PaintLayerPainter no longer needs
the |rootRelativeBounds| and associated bool, so that code can be pushed
down into FilterPainter with additional plumbing simplifications.

Also straighten out the code-flow in ClipPathClipper for less indented,
and hopefully easier to follow, code.

BUG=633028, 626097
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Review-Url: https://codereview.chromium.org/2279823002
Cr-Commit-Position: refs/heads/master@{#416073}
fs
Synthesize preserveAspectRatio='none' for non-viewBoxed <img>
For SVGs embedded in an image context, we will synthesize a viewBox that
matches the intrinsic dimensions of the SVGs, if no viewBox is
specified. This would result in an image where the aspect ratio
expressed by the intrinsic dimensions would be preserved.
This does not appear to match author expectations - they rather see that
the behavior in these cases match that of a "regular" raster-based
image. To achieve this, also synthesize a preserveAspectRatio-value of
"none" in these cases. This will result in the original image being
stretched in the most common cases. Any percentage dimensions will be
resolved against the computed dimensions (replaced size), and can hence
also produce a useful viewBox.

The implemented behavior is not currently specced (neither was the old
synthesizing of a viewBox), but matches Gecko.

BUG=110195

Review-Url: https://codereview.chromium.org/2290173005
Cr-Commit-Position: refs/heads/master@{#416059}
tommyt
We will not update the cached characteristic value when writing, nor will we call the observers' GattCharacteristicValueChanged method.
Update the documentation for WriteRemoteCharacteristic and change the name of the "new_value" parameter to "value".

See http://crbug.com/614534

BUG=551634

Review-Url: https://codereview.chromium.org/2287273002
Cr-Commit-Position: refs/heads/master@{#416028}
tmoniuszko
Clear HTTP auth data on clearing cache
BUG=108291

Review-Url: https://codereview.chromium.org/2097043002
Cr-Commit-Position: refs/heads/master@{#415919}
fs
Resolve percentage in <use> against the instance's viewport element
In LayoutSVGTransformableContainer::calculateLocalTransform, 'x' and 'y'
were resolved against the original (corresponding) element. For a <use>
nested within a <symbol>, this would mean that when were going to look
up the viewport element, we'd return the outer <symbol> element and thus
fail to get a viewport.
Use the instance element to setup the SVGLengthContext instead.

BUG=642524

Review-Url: https://codereview.chromium.org/2298783002
Cr-Commit-Position: refs/heads/master@{#415910}
fs
Move SVGAnimateElement::findElementInstances to SVGElement.cpp
There's now only a single user of this function, so fold the function
into that one.

BUG=640676

Review-Url: https://codereview.chromium.org/2293173003
Cr-Commit-Position: refs/heads/master@{#415901}
mstensho
Fragment blocks with non-visible overflow as normally when printing.
Splitting scrollbars into multiple fragmentainers is only problematic in
interactive media. We don't need to impose any such pagination restrictions
when printing, since printing is non-interactive,

BUG=641983

Review-Url: https://codereview.chromium.org/2298193002
Cr-Commit-Position: refs/heads/master@{#415645}
perja
bluetooth: Added script for converting the Web Bluetooth blacklist.
BUG=570121

Review-Url: https://codereview.chromium.org/2285663002
Cr-Commit-Position: refs/heads/master@{#415594}
fs
Don't add redundant references to animated target element
SVGSMILElement adds a reference to its target, and any instances of the
target should never be mutated, so the registration of reference to the
extended target element set in SVGAnimateElement::resetAnimatedType does
not add any value.

BUG=640676

Review-Url: https://codereview.chromium.org/2292983002
Cr-Commit-Position: refs/heads/master@{#415393}
fs
Stricter treatment of SVGSVGElement::m_useCurrentView
m_useCurrentView being true implies that m_viewSpec is non-null. Perhaps
defensively, most code that checks it is written in a way such that it
expects that m_viewSpec can be null if m_useCurrentView is true - which
is not the case, and adds unnecessary code.
Instead change the code to adhere to the rule above, and assert that in
the various places instead.
Also add some checks of the invariant in methods that set the flag and
m_viewSpec. Refactor SVGSVGElement::setupInitialView to avoid the need
to sprinkle invariant checks "all over" it.

BUG=110195

Review-Url: https://codereview.chromium.org/2290293003
Cr-Commit-Position: refs/heads/master@{#415346}
fs
Simplify SVGAnimatedTypeAnimator interface
The two methods startAnimValAnimation and resetAnimValToBaseVal share
the same implementation, but are called in two different branches of the
same if-statement. Fold the two and add a new method
createAnimatedValue() to provide the animated value, to make this appear
as straight-forward as it is. Also fold the stopAnimValAnimation()
method since it's only used once, and because this makes the start/stop
action somewhat symmetric.
Rename the constructFromString(...) method to
createAnimatedValueFromString() to illustrate its relation to the newly
minted method and make it a bit more clear what it does.

BUG=640676

Review-Url: https://codereview.chromium.org/2284263002
Cr-Commit-Position: refs/heads/master@{#415271}
fs
Don't use substring() for a simple prefix match
The language code match in SVGTests::isValid() uses String::substring()
to limit the match to the primary language subtag. In the case where the
defaultLanguage() only contains the/a primary language subtag, this will
not require a copy, but otherwise it would.

Using startsWith() and a length-check guarantees that no copies will be
made. (A valid primary language subtag is always 2 letter long, so
checking only for length == 2 should be enough, although previously the
code could theoretically match a 1 letter, or even a zero-length tag.)

Review-Url: https://codereview.chromium.org/2284273002
Cr-Commit-Position: refs/heads/master@{#415255}
fs
Tighten SVGAnimationElement::shouldApplyAnimation
Fold the targetIsUsable(...) helper from SVGAnimateElement into said
method, and then replace the uses of the former with the corresponding
'should apply' predicate.

BUG=640676

Review-Url: https://codereview.chromium.org/2287983002
Cr-Commit-Position: refs/heads/master@{#415253}
rune
Removed unused parentStyle in StyleAdjuster.
Parent style not used for HTML element adjustment.

Review-Url: https://codereview.chromium.org/2290623002
Cr-Commit-Position: refs/heads/master@{#415235}
fs
Tidy up some loops in SMILTimeContainer::updateAnimations
Use for-range style loops and get rid of the local 'size' variable.
Also move the sort() call down after the early-out when there are no
animations to apply.

BUG=641437

Review-Url: https://codereview.chromium.org/2287973002
Cr-Commit-Position: refs/heads/master@{#415165}
fs
Reorder the AnimatedPropertyType enumeration
By moving AnimatedUnknown first (giving it the ordinal value 0), we can
simplify SVGElement::animatedPropertyTypeForCSSAttribute by removing
the contains() call (avoiding a double hash/lookup for the common case.)

Review-Url: https://codereview.chromium.org/2288583002
Cr-Commit-Position: refs/heads/master@{#415069}
fs
Hoist updateAnimation() calls from SVGSMILElement::progress
The updateAnimation() calls in SVGSMILElement::progress() corresponds
to the timed element contributing to the animation "sandwich", so it's
trivial to hoist it out into the caller. Well there, the |resultElement|
logic can be replaced with a vector onto contributing timed elements are
appended. When all contributing timed elements are collected the value
is computed.

BUG=641437

Review-Url: https://codereview.chromium.org/2283843002
Cr-Commit-Position: refs/heads/master@{#414937}
rune
Allow multiple type and id selectors in invalidation set features.
:-webkit-any allows for more than one type selector in a compound
selector. Likewise, it may also allow for disjunct id selectors. Make
them vectors in InvalidationSetFeatures like we do for classes and
attributes to make style invalidation work for multiple id and type
selectors in :-webkit-any.

R=ericwilligers@chromium.org,sashab@chromium.org
BUG=641296

Review-Url: https://codereview.chromium.org/2284633002
Cr-Commit-Position: refs/heads/master@{#414933}
fs
Reduce 'iterate self and instances' helper-count in SVGElement.cpp
Generalizing updateInstancesAnimatedAttribute{,NoInvalidate} to one
higher-level helper to get rid of the subtle differences brought on
by the differences in invalidation semantics.

BUG=640676

Review-Url: https://codereview.chromium.org/2280923002
Cr-Commit-Position: refs/heads/master@{#414845}
fs
Fold SMIL animation value application helpers and simplify
Folds the following helper functions:

  applyCSSPropertyToTargetAndInstances
  removeCSSPropertyFromTargetAndInstances
  notifyTargetAndInstancesAboutAnimValChange

into their users, hoisting common predicates and simplifies
accordingly.

BUG=640676

Review-Url: https://codereview.chromium.org/2285473002
Cr-Commit-Position: refs/heads/master@{#414808}
fs
svg/animations/use-animate-width-and-height.html no longer time out
TBR=schenney@chromium.org
NOTRY=true
BUG=641398

Review-Url: https://codereview.chromium.org/2279263003
Cr-Commit-Position: refs/heads/master@{#414801}
fs
Move onclick handler in svg/animations/use-animate-width-and-height.html
We can no longer listen after events on something that is an instance in
a <use>. Move the executeTest() call to the <use> element instead.

Since the mentioned file is almost a stub, the actual change is in
svg/animations/script-tests/use-animate-width-and-height.js.

BUG=641398

Review-Url: https://codereview.chromium.org/2283893002
Cr-Commit-Position: refs/heads/master@{#414776}
fs
Fix clip-path reference box/coordinate space setup for hit-testing
Synchronize hit-testing code with rendering code with regards to how the
coordinate space is handled (for userSpaceOnUse <clipPath>s), and how
the reference boxes is computed.

Also "straighten" out code-flow a bit while here.

BUG=418484
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Review-Url: https://codereview.chromium.org/2280963002
Cr-Commit-Position: refs/heads/master@{#414730}
wdzierzanowski
Bundle fake Widevine component manifest for stub CDM
Encrypted media browser tests involving Widevine use the stub CDM when
branding != Chrome.  This change allows them to register the
preinstalled component containing the stub CDM.

BUG=622273

TEST=Widevine browser tests 'browser_tests --gtest_filter=*Widevine*' pass

Review-Url: https://codereview.chromium.org/2136983002
Cr-Commit-Position: refs/heads/master@{#414706}
jwalczak
Fix channel mapping for 8-ch audio in ffmpeg_aac_bitstream_converter
FFmpeg's AVCodecContext->channels contains "raw number of channels"
(e.g. "2" for 2 channels, "8" for 8 channels). The change ensures that:
- the value of "8" is correctly mapped to 0b111 ADTS channel
config (aka MPEG-4 Channel Configuration),
- the value of "7" becomes unsupported.

BUG=640610

Review-Url: https://codereview.chromium.org/2273203003
Cr-Commit-Position: refs/heads/master@{#414685}
rune
Use AnalyzedStyleUpdate for non-blocking sheets.
For no apparent reason we were always doing a full document recalc when
finishing loading a non-blocking stylesheet.

From webkit: https://bugs.webkit.org/show_bug.cgi?id=119236

BUG=284142

Review-Url: https://codereview.chromium.org/2278803002
Cr-Commit-Position: refs/heads/master@{#414682}
fs
Move animVal invalidation from SVGAnimateElement to SVGElement
BUG=640676

Review-Url: https://codereview.chromium.org/2281643003
Cr-Commit-Position: refs/heads/master@{#414543}
fs
Remove temporary file that was accidentally checked in
This file was added as part of https://codereview.chromium.org/2211473003
but looks like it was done so by mistake. Remove it again.

TBR=fdoray@chromium.org
BUG=616447

Review-Url: https://codereview.chromium.org/2276423002
Cr-Commit-Position: refs/heads/master@{#414467}
rune
Use LocalStyleChange for insertion point inheritance propagation.
For shadow dom v0, we used a SubtreeStyleChange for propagating
inherited style changes through insertion points to distributed nodes.
LocalStyleChange should suffice. We already use LocalStyleChange in the
HTMLSlotElement case.

We still need to use SubtreeStyleChange where we have a
SubtreeStyleChange/Force from further up the tree like:

<host>
  <:shadow-root>
    <style>.a::content * { background: green }</style>
    <div id="a">
      <content></content>
    </div>
  </:shadow-root>
  <div>Green when #a gets class a.</div>
</host>

R=kochi@chromium.org
BUG=638869

Review-Url: https://codereview.chromium.org/2258793003
Cr-Commit-Position: refs/heads/master@{#414386}
fs
Refactor SMIL animation value updates
Push updating of the animation value into SVGElement. This resembles the
Web Animations code-path to some degree and maybe we can make them even
more similar eventually. This is the first CL in a series that will
remove knowledge of <use>/shadow trees from the SMIL animation code.

BUG=640676

Review-Url: https://codereview.chromium.org/2272033002
Cr-Commit-Position: refs/heads/master@{#414366}
fs
Simplify SMIL animation CSS property updates
After https://codereview.chromium.org/2251073002 we should no longer
need to walk any <use> instances "manually", since setNeedsStyleRecalc
does that already. This should also avoid the potential double-work
because of this.

TEST=svg/W3C-SVG-1.1/animate-elem-30-t.svg
TEST=svg/W3C-SVG-1.1/animate-elem-40-t.svg

BUG=166438,355359,484552,637310

Review-Url: https://codereview.chromium.org/2270363004
Cr-Commit-Position: refs/heads/master@{#414358}
ingemara
Move JNI bindings for url_formatter from chrome to //components/url_formatter
By moving the url_formatter methods out of
org.chromium.chrome.browser.UrlUtilities to it's component, other emdedders than
Chrome can benefit from the Java version.

This CL removes the tests originally written for a Java implementation of the
methods replaced by FormatUrlForSecurityDisplay in
https://codereview.chromium.org/1357563002. It's not trivial to move the tests
over to the component as they depend on native library initialization performed
by //content which is disallowed in components/url_formatter/DEPS. Also, the
tests are redundant as the code is thoroughly tested by other means.

Currently there are no users of formatUrlForDisplay() in Chromium, but Opera
would like it exposed.

BUG=624407

Review-Url: https://codereview.chromium.org/2110543004
Cr-Commit-Position: refs/heads/master@{#414356}
rune
Consider pseudo classes as matching for shared style rejection.
The user action pseudo classes rely on affectedBy bits to be correctly
set on ComputedStyle in order to recalculate style for such changes
later on. If two elements may otherwise share style, but will have the
affectedBy bits set differently, they may not share style.

Example:

  <style>[attr]:hover {}</style>
  <div></div>
  <div attr></div>

The second div may share style with the first one when none of them is
hovered. However, matching the selector against the first div will fail
on the attribute selector before we try to match :hover, hence the flag
for affectedByHover will not be set. If we share that ComputedStyle
object with the second div, hovering the second div later will have no
effect.

Instead we always match :hover/:active/:focus/:-webkit-drag when
matching rules for style sharing (attribute and sibling rules). That
will lead to the attribute selector in the example above to match which
will cause style sharing to be rejected for the second div.

R=meade@chromium.org
BUG=639561

Review-Url: https://codereview.chromium.org/2272683002
Cr-Commit-Position: refs/heads/master@{#414221}
fs
Use border-box as the reference box for (-webkit-)clip-path
The 'clip-path' property should use the border box as the reference box
(per default; <geometry-box> not yet supported) [1].
The new behavior matches WebKit and Gecko (except for inline boxes,
see below.)

For inline boxes that span multiple lines we use the union of all the
lines. The test css3/masking/clip-path-reference-box-inline.html added
to track this behavior.

[1] https://drafts.fxtf.org/css-masking-1/#the-clip-path

BUG=418484
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Review-Url: https://codereview.chromium.org/2273733002
Cr-Commit-Position: refs/heads/master@{#414118}
mstensho
Don't skip column set interval tree search for flow thread offset == 0.
We cannot assume that offset 0 is in the first column set, since the first
column set may be empty.

Review-Url: https://codereview.chromium.org/2274683002
Cr-Commit-Position: refs/heads/master@{#413939}
mstensho
Update test that rendered incorrectly because orphans and widows are now 2 by default.
The test and the ref were rendered identically (so no failure was reported),
but the result was wrong according to the pass condition text.

Change the ref to not use multicol, to reduce the risk of something like this
going unnoticed in the future.

BUG=473509

Review-Url: https://codereview.chromium.org/2271633002
Cr-Commit-Position: refs/heads/master@{#413789}
markuso
Implement device::BatteryStatus support for UPower daemon 0.99.x
The org.freedesktop.UPower API was changed when upgrading the UPower daemon
from version 0.9.23 to 0.99.x. The BatteryStatusManagerLinux used the
"Changed" signal which was replaced by the "PropertyChanged" signal.

Change the BatteryStatusManagerLinux to use the new UPower API
(and keep compatibility with the 0.9.23 version, which is still used in
Ubuntu 14.04 LTS).

1. use dbus::PropertySet: the dbus::PropertySet provides simple access to
the properties and connection to the property-changed notifications.

2. Use UPower method GetDisplayDevice:
The 'DisplayDevice' is a composite battery device. That was added in UPower
version 0.99.0. If we don't get that device or if it is no battery, then we
continue to enumerate all devices.

3. Listen to 'DeviceAdded' and 'DeviceRemoved' signals:
Re-enumerate battery devices if a device is added/removed.

4. Compatibility with UPower version < 0.99
Only old UPower versions need to connect to the 'Changed' signal.

5. Rewrite the existing unittests to use a BatteryStatusManagerLinux instance
with a dbus::MockBus and mock the dbus-methods/properties for the test.
Add more unittests:
- for changing device properties
- for the DisplayDevice
- for enumerating devices
- for the DeviceAdded and DeviceRemoved signals

Review-Url: https://codereview.chromium.org/2066503002
Cr-Commit-Position: refs/heads/master@{#413745}
fs
Refactor ClipPathHelper in PaintLayerPainter.cpp for reuse
Separate out client concerns and move the helper class to a new file and
rename it to ClipPathClipper. This will allow sharing this code between
the PaintLayerPainter and SVGPaintContext code-paths.

BUG=633028
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Review-Url: https://codereview.chromium.org/2265123002
Cr-Commit-Position: refs/heads/master@{#413518}
landell
Use base::SizeTToString instead of std::to_string
std::to_string is disallowed by the chromium code style and we get into trouble with a custom mips toolchain that lacks support.

BUG=

Review-Url: https://codereview.chromium.org/2264993002
Cr-Commit-Position: refs/heads/master@{#413513}
fs
More const LayoutObject references in SVGLayoutSupport
BUG=633028

Review-Url: https://codereview.chromium.org/2265113002
Cr-Commit-Position: refs/heads/master@{#413501}
fs
Drop outdated comment in SVGClipPainter.h
This FIXME/comment can no longer be considered relevant. (Dates back
to when similar methods to prepareEffect/finishEffect lived in the
LayoutSVGResourceContainer hierarchy.)
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Review-Url: https://codereview.chromium.org/2261173003
Cr-Commit-Position: refs/heads/master@{#413479}
tommyt
Implement BluetoothGattNotifySession::Stop on Android, 2nd attempt
This change enables the stopNotifications function for remote GATT
characteristics on Android. In order to do so, two distinct refactorings have been done;

1) The session classes have been simplified so that platform specific versions are no longer required. All code that previously used BluetoothGattNotifySession[Mac|Win|BlueZ] now simply use the base BluetoothGattNotifySession class.

2) BluetoothRemoteGattCharacteristic::StartNotifySession and StopNotifySession have been rewritten so that all the code for keeping track of the different session objects and the notification state sits in the base class. Inheriting classes should no longer override these two functions, but instead override the much simpler SubscribeToNotifications and UnsubscribeFromNotifications.

BUG=584370

Committed: https://crrev.com/d41af3adfd8500c81c827ab03ed2736909cf1ee8
Review-Url: https://codereview.chromium.org/2051333004
Cr-Original-Commit-Position: refs/heads/master@{#412498}
Cr-Commit-Position: refs/heads/master@{#413417}
fs
Replace SMILTime with double for elapsed time in SMILTimeContainer
We don't really make use of of the special properties of SMILTime for
this case, and using double means slightly less impedance mismatching.

BUG=631879

Review-Url: https://codereview.chromium.org/2261443002
Cr-Commit-Position: refs/heads/master@{#413345}
fs
Don't schedule a wake-up if the timeline hasn't started
Before the timeline has started we shouldn't update animations. This
makes resume() symmetric with pause().

BUG=631879

Review-Url: https://codereview.chromium.org/2254303005
Cr-Commit-Position: refs/heads/master@{#413336}
fs
Refactor SMILTimeContainer can-schedule-frame predicate
begin() and updateAnimationsAndScheduleFrameIfNeeded() use the same
predicate to check if they should schedule an animation frame - although
they phrase it slightly differently (because of local knowledge.)
Move the generic version to a canScheduleFrame() method and use that in
both cases.

BUG=631879

Review-Url: https://codereview.chromium.org/2257803002
Cr-Commit-Position: refs/heads/master@{#413328}
fs
Simplify time tracking in SMILTimeContainer
Instead of 5 difference time fields, use two - one to track the last
seek/pause time in the container ("presentation time"), and one to
track the document time corresponding to that.
Use two bool flags for tracking 'paused' and 'started' state.

Also straighten out code-flow in SMILTimeContainer::begin() to make it
a bit more obvious that we're essentially mirroring the contents of
updateAnimationsAndScheduleFrameIfNeeded. begin() is also renamed into
start(). Pass double to SMILTimeContainer::scheduleAnimationFrame, do
some ASSERT->DCHECK transformations when touching code and touch up
some comments.

BUG=631879

Review-Url: https://codereview.chromium.org/2248643003
Cr-Commit-Position: refs/heads/master@{#413283}
sigbjornf
Avoid stack allocating StyleSheetCollections.
StyleSheetCollection is a GarbageCollected<>-derived object, which ideally
shouldn't be allocated on the stack (== outside the heap), as it leaves
the door open for it being attempted marked (and traced), which it the
allocation doesn't support (the allocation has no header information
preceeding it.)

R=
BUG=

Review-Url: https://codereview.chromium.org/2096653004
Cr-Commit-Position: refs/heads/master@{#413088}
rune
Remove unused StyleChangeReasons.
The removed reasons are no longer used because they have been replaced
by using invalidation sets.

R=kouhei@chromium.org

Review-Url: https://codereview.chromium.org/2256233002
Cr-Commit-Position: refs/heads/master@{#413034}
fs
Avoid setting timers from SVGImage::resetAnimation()
When resetting the timeline to t=0, we may up generating syncbase
notification, which sets up a timer (to update any possibly dependent
intervals.) Since resetAnimation() is what's called when the (SVG)Image
no longer has any clients, we should try to make sure it is indeed
idle after that happens. This avoids trying to update animation state
while the image is otherwise dead, leaving "reactivation" to the time
it is next painted.

BUG=627418

Review-Url: https://codereview.chromium.org/2247783003
Cr-Commit-Position: refs/heads/master@{#412798}
tsniatowski
gn: make gn gen preserve import statements passed in --args
Previously, gn gen would expand all imports and only record the final
arg keyvalue pairs in args.gn, if called as gn gen --args='import...'.

Now the actual import statement will be recorded. This allows avoiding
a manual args.gn edit of you want an actual import statement there, for
example if the imported gni houses a predefined set of default args
that you want to follow, and want to re-gn when it changes.

R=brettw@chromium.org,dpranke@chromium.org
BUG=588513

Review-Url: https://codereview.chromium.org/2250623004
Cr-Commit-Position: refs/heads/master@{#412687}
mostynb
remove duplicate atk GN config
The atk GN configs were moved to a separate GN file in
https://codereview.chromium.org/1909273002 but it appears
that the original configs were not removed, and are still
referenced.  Let's remove the old configs and just use
the new ones.

And while we're at it, add an assertion to check that glib
is enabled when atk is.

BUG=632297

TBR=agrieve@chromium.org

Review-Url: https://codereview.chromium.org/2251673004
Cr-Commit-Position: refs/heads/master@{#412680}
rchlodnicki
Make sure there is no crash on parsing empty manifest
Changes match the logic in SourceHighlighter in the same file and will
result in UI showing message akin to 'No source file available'. This is fine
as already the same happens for other source files in bundled extensions.

BUG=627896

Review-Url: https://codereview.chromium.org/2245143004
Cr-Commit-Position: refs/heads/master@{#412556}
mstensho
"Inline" auto-positioned out-of-flow objects are affected by pagination struts.
An out-of-flow positioned object that "belongs" to a line may need to adjust
its block position after the line has been laid out, since the line may have
been pushed to the next fragmentainer by a pagination strut.

BUG=291616

Review-Url: https://codereview.chromium.org/2249853007
Cr-Commit-Position: refs/heads/master@{#412546}
tommyt
Implement BluetoothGattNotifySession::Stop on Android
This change enables the stopNotifications function for remote GATT
characteristics on Android. In order to do so, two distinct refactorings have been done;

1) The session classes have been simplified so that platform specific versions are no longer required. All code that previously used BluetoothGattNotifySession[Mac|Win|BlueZ] now simply use the base BluetoothGattNotifySession class.

2) BluetoothRemoteGattCharacteristic::StartNotifySession and StopNotifySession have been rewritten so that all the code for keeping track of the different session objects and the notification state sits in the base class. Inheriting classes should no longer override these two functions, but instead override the much simpler SubscribeToNotifications and UnsubscribeFromNotifications.

BUG=584370

Review-Url: https://codereview.chromium.org/2051333004
Cr-Commit-Position: refs/heads/master@{#412498}
mstensho
Handle auto-positioned out-of-flow objects inside multicol containers correctly.
We used to get it all wrong for out-of-flow children of multicol containers
whose containing block were on the outside of the multicol container. Those
do not live in the flow thread coordinate space, so we have to convert their
location to visual coordinates.

BUG=291616

Review-Url: https://codereview.chromium.org/2250713002
Cr-Commit-Position: refs/heads/master@{#412375}
mostynb
-fno-auto-profile is only available beginning with stock GCC 5
This followup to https://codereview.chromium.org/2198253002
unbreaks stock GCC 4.8/4.9 builds.

(We suspect that the chromeos GCC 4.9 toolchain has a local patch for this feature.)

BUG=629593

Review-Url: https://codereview.chromium.org/2244983002
Cr-Commit-Position: refs/heads/master@{#412267}
mstensho
Correct offsetLeft and offsetTop calculation for column-span:all.
adjustedPositionRelativeTo() handled multicol incorrectly (the calls to
columnOffset()), which was especially hurtful for spanners. We should only call
it on objects in our containing block chain. This means that we need to walk
the ancestry using container() instead of parent(). The container() of a
spanner is the multicol container. We need to skip the inbetween flow thread,
since it only contains column content, and not spanners.

We also had bugs here with absolutely positioned objects inside multicol
containers whose containing block are on the outside of the multicol container,
but that's not really going to matter until we're able to lay out such objects
correctly. That's bug 291616. As such, this CL is also a preparatory patch for
fixing that bug.

This CL will also make it possible to write check-layout.js tests for spanners,
instead of having to resort to reftest or something even lesser.

BUG=563446

Review-Url: https://codereview.chromium.org/2251443002
Cr-Commit-Position: refs/heads/master@{#412255}
rune
Corrected :nth-child invalidation test description.
R=ericwilligers@chromium.org

Review-Url: https://codereview.chromium.org/2242113002
Cr-Commit-Position: refs/heads/master@{#411950}
rune
Ignored title in shadow should cause StyleSheet.title = null.
https://github.com/w3c/webcomponents/issues/535#issuecomment-239437022

R=hayato@chromium.org

Review-Url: https://codereview.chromium.org/2239353002
Cr-Commit-Position: refs/heads/master@{#411942}
rune
Use invalidation sets for nth invalidations.
Invalidate siblings of inserted/removed elements for :nth type changes
by scheduling a descendant invalidation set on the parent node of the
inserted element.

There is currently one such set for all structural pseudo classes with
the exception of :first-child, :last-child, and :only-child, which have
their own sets and may have so since they can't affect arbitrary
siblings.

The descendant set never has invalidatesSelf since it's scheduled on
the parent node of where the actual change happens.

Structural pseudo classes in the righmost compound adds rightmost
compound features to the descendant set:

  .a:nth-child(3n) {} => adds ".a" to the descendant set.

Righmost compound structural pseudo classes where there are no other
features makes the descendant set have wholeSubtreeInvalid since all
siblings where the mutation happens have to be invalidated:

  :nth-child(3n) {} => setWholeSubtreeInvalid()

Sibling selectors turns into descendant features:

  :nth-child(3n) + .a {} => adds ".a" to the descendant set.

Descendant selectors causes features to be added as normal:

  :nth-child(3n) .a {} => adds ".a" to the descendant set.

This approach isn't super optimal since having a rightmost structural
pseudo without other features in the compound will cause nth-
invalidations to still be full subtree invalidations, but it should be
a good first iteration.

What we could do is something along the lines of what sibling
invalidations do where they have a maximum number of siblings a set
applies to. The nth-invalidation where the pseudo is in the rightmost
compound really needs to invalidation all siblings and not their
descendants. We could have some notion of removing descendant sets
which should no longer apply walking down the tree.

Traversing siblings scheduling invalidation sets on them was not chosen
for the same reason we schedule siblings invalidations as descendant
invalidations on the parent node for sibling mutations already.

R=esprehn@chromium.org,ericwilligers@chromium.org
BUG=624277

Review-Url: https://codereview.chromium.org/2235723002
Cr-Commit-Position: refs/heads/master@{#411647}
mstensho
Need to roll back the multicol machinery state when re-laying out a block child.
If a block child contains a column spanner, and we need to re-lay it out
because the initial logical top estimate turned out to be wrong, we need to
roll back to the first column set that "contains" the block child.

Otherwise, LayoutMultiColumnFlowThread::columnSetAtBlockOffset() may return the
wrong column set.

BUG=633411

Review-Url: https://codereview.chromium.org/2231383002
Cr-Commit-Position: refs/heads/master@{#411352}
sigbjornf
Elide LifecycleObserver<T,O>::Context type alias.
No longer a need to bind LifecycleObserver<T, O>'s T parameter to a
separate alias/name; simplify to LifecycleObserver<Context, O>.

R=
BUG=

Review-Url: https://codereview.chromium.org/2238503002
Cr-Commit-Position: refs/heads/master@{#411271}
sigbjornf
ASan-exempt CrossThreadPersistentRegion::shouldTracePersistentNode().
CrossThreadPersistent<T>s can reside on heap objects which are lazily
swept. Consequently, when a (per-)thread GC runs and it iterates over the
CrossThreadPersistentRegion to determine what nodes point into its heaps,
it can in the general case also touch lazily sweepable heap objects.

This is a benign read access to a region of memory that Oilpan has poisoned;
therefore, shouldTracePersistentNode() must be exempt from ASan checks to
prevent false negatives from being caught and reported.

R=
BUG=635574

Review-Url: https://codereview.chromium.org/2230623002
Cr-Commit-Position: refs/heads/master@{#410980}
rune
Use elementAfter/Before, not nodeAfter/Before for nth-invalidation.
If the node after/before the inserted element is a text node, and that
text node is the last/first sibling, then it shouldn't prevent the
optimization for skipping recalc for nth/nth-last selectors.

R=esprehn@chromium.org

Review-Url: https://codereview.chromium.org/2228933002
Cr-Commit-Position: refs/heads/master@{#410758}
mstensho
There's no class A break point before or after a float.
LayoutBox::classABreakPointValue() should only be called at class A break
points. Document the assertion there, and make sure that
needsForcedBreakBefore() only calls it when at in-flow objects.

BUG=619152
R=eae@chromium.org

Review-Url: https://codereview.chromium.org/2228803003
Cr-Commit-Position: refs/heads/master@{#410703}
rune
Style invalidation support for :first/last/only-child.
Got rid of SubtreeStyleChanges for those pseudo classes. Also fixed
issue 245914 by looking at next/previous element, not node, to figure
out if we are the first. The code in checkForSiblingStyleChanges could
be restructured quite a bit and made simpler now have changedElement
(changedNode => changeElement since the input is always an element).

BUG=245914

Review-Url: https://codereview.chromium.org/2229503002
Cr-Commit-Position: refs/heads/master@{#410472}
rune
Cached style element sheets may not have an owner node.
The assert for cacheability of shared StyleSheetContents required the
ownerNode to be a non-null style element. Referring to and modify a
stylesheet is however possible after the style element has been removed
and the ownerNode set to null. Change the assert to just check for the
two types of cacheability.

This was not triggered by stylesheets not having @media rules since the
cacheability of linked resources would be true and made the assert
true.

Also, made the ASSERT a DCHECK along with the other ASSERTs in the
modified file.

R=meade@chromium.org
BUG=635022

Review-Url: https://codereview.chromium.org/2220863002
Cr-Commit-Position: refs/heads/master@{#410305}
ckulakowski
Initialize MaterialDesignController in NativeThemeMacTest
This is fix for crash (CHECK) in NativeThemeMacTest.SystemColorsExist:
FATAL:material_design_controller.cc(66)] Check failed: is_mode_initialized_

BUG=625642

Review-Url: https://codereview.chromium.org/2120273002
Cr-Commit-Position: refs/heads/master@{#410108}
rune
Revert of Add a fast-path for independent inherited properties (patchset #13 id:240001 of https://codereview.chromium.org/2117143003/ )
Reason for revert:
Caused issues 634254 and 633859.

Original issue's description:
> Add a fast-path for independent inherited properties
>
> Add a fast-path for inherited properties which do not depend on and do
> not affect any other properties on ComputedStyle. When these properties
> are modified in a parent element, set them directly on ComputedStyle and
> skip doing a full recalc for elements only affected by this change.
>
> Also implemented two of these properties: visibility and pointer-events,
> storing an extra 2 bits per ComputedStyle. This increases the size of
> ComputedStyle by 1 byte on Windows and some Android builds (due to
> aligned fields), which increases the memory usage for a standard page
> with ~1000 elements by up to 1kb (although potentially up to 4/8kb on
> 32/64 bit builds due to packing, although this depends on the allocator
> implementation details) but realistically less since style sharing only
> creates one ComputedStyle object for each unique style.
>
> Benchmarks show a speed increase of up to 2x for setting these
> properties on the root element of a typical web page (Facebook, Twitter,
> Pinterest, Amazon, Wikipedia) and letting the change propagate directly
> onto the child ComputedStyle objects, rather than doing a full style
> recalc.
>
> Initial Benchmarks:
> https://docs.google.com/spreadsheets/d/1mUuJEs8cPWyNTR7tQw27oxq6fDTvWiAwgatf_g--B4w/edit#gid=1597242813
>
> Follow-up Benchmarks:
> https://docs.google.com/spreadsheets/d/1mUuJEs8cPWyNTR7tQw27oxq6fDTvWiAwgatf_g--B4w/edit#gid=918856082
>
> BUG=622138
>
> Committed: https://crrev.com/f24dba9f04dd093aac4298378c671ecd44d0fe97
> Cr-Commit-Position: refs/heads/master@{#409143}

TBR=esprehn@chromium.org,meade@chromium.org,timloh@chromium.org,sashab@chromium.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=622138

Review-Url: https://codereview.chromium.org/2213223004
Cr-Commit-Position: refs/heads/master@{#410030}
ljagielski
SSLPolicy::OnCertError: expired_previous_decision might be used uninitialized.
BUG=

Review-Url: https://codereview.chromium.org/2219463002
Cr-Commit-Position: refs/heads/master@{#409918}
hugoh
Remove unused includes of shell::InterfaceRegistry
This is a follow-up to:
https://codereview.chromium.org/2201183003/

Review-Url: https://codereview.chromium.org/2207873002
Cr-Commit-Position: refs/heads/master@{#409776}
rune
Use weak members to cache StyleSheetContents.
We used the client count to detect if we could remove a
StyleSheetContents from the StyleEngine cache or not. The problem is
that the client references are removed when the element is removed from
the DOM, but the StyleSheetContents is still referenced from the
CSSStyleSheet which is accessible from CSSOM. That caused bugs with
StyleSheetContents being marked as mutable without removing it from the
cache causing assertions, and mutating the sheet without copy-on-write
because we thought we only had a single client for the contents.

Instead use weak members in the cache and let garbage collection delete
the StyleSheetContents when no longer referenced. Also, add a flag to
StyleSheetContents to say that it is referenced by multiple sheets when
we use and already cached object instead of incorrectly relying on
client count.

R=timloh@chromium.org,haraken@chromium.org
BUG=633210,628488

Review-Url: https://codereview.chromium.org/2205843003
Cr-Commit-Position: refs/heads/master@{#409495}
tmoniuszko
Add option to not generate VS projects for targets deps
BUG=589099

Review-Url: https://codereview.chromium.org/2200123002
Cr-Commit-Position: refs/heads/master@{#409489}
rune
Removed unused accessor for StyleResolver::m_features.
R=timloh@chromium.org

Review-Url: https://codereview.chromium.org/2207693003
Cr-Commit-Position: refs/heads/master@{#409458}
mostynb
make use of existing gn args in net/BUILD.gn
BUG=632297

Review-Url: https://codereview.chromium.org/2188043002
Cr-Commit-Position: refs/heads/master@{#409209}
mostynb
make use of the use_gio gn arg
BUG=632297

Review-Url: https://codereview.chromium.org/2190793002
Cr-Commit-Position: refs/heads/master@{#409204}
mostynb
make use of existing gn args in ui build config
BUG=632297

Review-Url: https://codereview.chromium.org/2185163003
Cr-Commit-Position: refs/heads/master@{#409203}
sigbjornf
Have ResizeViewportAnchor derive from GarbageCollected<> only.
Drop use of GarbageCollectedFinalized<>; not needed for this
class.

R=
BUG=

Review-Url: https://codereview.chromium.org/2192373002
Cr-Commit-Position: refs/heads/master@{#408888}
sigbjornf
Remove unused function template overloads.
Leftover from r408135, remove the generated isT(*RefPtr<T>)
overloads also.

R=
BUG=

Review-Url: https://codereview.chromium.org/2201633002
Cr-Commit-Position: refs/heads/master@{#408887}
sigbjornf
Move DOMConvenienceAPI to stable.
Move ChildNode.{before,after,replaceWith}() +
ParentNode.{prepend,append}() to stable.

R=
BUG=255482

Review-Url: https://codereview.chromium.org/2184223004
Cr-Commit-Position: refs/heads/master@{#408582}
sigbjornf
Remove unnecessary eager finalization of PingLoaders.
A PingLoader instance controls its own lifetime, releasing its
self-keepalive reference upon completion of the load request. At that
time it also lets go of its loader object (and stops the timer), hence
there's no need to eagerly finalize this object -- it serves no real
purpose.

R=
BUG=

Review-Url: https://codereview.chromium.org/2180423005
Cr-Commit-Position: refs/heads/master@{#408417}
sigbjornf
Update and fix sendBeacon() redirect behavior.
Refresh the implementation to follow the specification changes in

 https://github.com/w3c/beacon/pull/33
 https://github.com/w3c/beacon/pull/34

In particular, correctly flag a CORS-disallowed redirect as not to
be followed by WebURLLoader.

R=
BUG=628762

Review-Url: https://codereview.chromium.org/2177383006
Cr-Commit-Position: refs/heads/master@{#408380}
mostynb
harfbuzz-ng: make use of the use_glib gn arg
BUG=632297

Review-Url: https://codereview.chromium.org/2187163002
Cr-Commit-Position: refs/heads/master@{#408370}
mostynb
make use of use_gconf & use_glib gn args in content/browser/
Review-Url: https://codereview.chromium.org/2191733002
Cr-Commit-Position: refs/heads/master@{#408362}
mostynb
power_save_blocker_x11.cc depends on dbus
Review-Url: https://codereview.chromium.org/2189523004
Cr-Commit-Position: refs/heads/master@{#408275}
fs
Move platform/ParsingUtilities.h to wtf/text/
Review-Url: https://codereview.chromium.org/2175123002
Cr-Commit-Position: refs/heads/master@{#408249}
mostynb
(gcc) fix compilation of os_exchange_data_provider_aurax11.cc
This fixes a gcc compilation error in os_exchange_data_provider_aurax11.cc:
error: cannot convert 'ret' from type 'std::unique_ptr<ui::OSExchangeDataProviderAuraX11>'
    to type 'std::unique_ptr<ui::OSExchangeDataProviderAuraX11>&&'

Tested with gcc 4.8.4.

Followup to https://codereview.chromium.org/2179813003

BUG=614037

Review-Url: https://codereview.chromium.org/2192533002
Cr-Commit-Position: refs/heads/master@{#408233}
sigbjornf
Remove unused function template overloads.
R=
BUG=

Review-Url: https://codereview.chromium.org/2182213005
Cr-Commit-Position: refs/heads/master@{#408135}
mostynb
(gyp): breakpad_host should push include_dirs to dependents
Followup to https://codereview.chromium.org/2169063002

BUG=internal b/30003601
TBR=thestig@chromium.org

Review-Url: https://codereview.chromium.org/2183613003
Cr-Commit-Position: refs/heads/master@{#407758}
fs
Disable svg/parser/whitespace-length-invalid-1.html
TBR=mpearson@chromium.org
BUG=630967

Review-Url: https://codereview.chromium.org/2178993003
Cr-Commit-Position: refs/heads/master@{#407580}
sigbjornf
Simplify ElementVisibilityObserver implementation.
Recast ElementVisibilityObserver's VisibilityCallback in a more
Blink-like manner by way of a Client interface. Thereby also addressing
on-off-heap cycle, a leak source.

Similarly, simplify the connection between ElementVisibilityObserver and
IntersectionObserver -- have the former directly implement the
IntersectionObserverCallback instead of indirectly using closure callbacks.

R=
BUG=627539

Review-Url: https://codereview.chromium.org/2173353002
Cr-Commit-Position: refs/heads/master@{#407450}
sigbjornf
Remove unnecessary finalization of IDBObserver classes.
Re-apply r402117 which r404283 accidentally reverted.

R=
BUG=609934

Review-Url: https://codereview.chromium.org/2177083002
Cr-Commit-Position: refs/heads/master@{#407418}
fs
Don't resolve non-local -webkit-clip-path references as local
Whether the reference was local or not was disregarded, meaning that
any URL with a valid fragment part could potential result in a valid
clip - regardless of whether it was local or not. I.e foo.svg#bar would
reference an element with the id 'bar' in the local document.

Check if the URL reference resolver flagged the reference as being local,
and only pass a non-null fragment if it was.

BUG=629826

Review-Url: https://codereview.chromium.org/2174813003
Cr-Commit-Position: refs/heads/master@{#407300}
fs
Make fragment-only URLs always be document-local references
This implements the 'local url' handling per:

  https://drafts.csswg.org/css-values/#local-urls

which is also referenced from:

  https://svgwg.org/svg2-draft/linking.html#linkRefAttrs

Most of the logic is handled by a new helper class named
SVGURLReferenceResolver, which keeps state, resolves the URL
and extracts the fragment identifier as needed.

BUG=470608

Review-Url: https://codereview.chromium.org/2174833002
Cr-Commit-Position: refs/heads/master@{#407299}
fs
Reland of Remove platform/text/ParserUtilities.h
platform/ParsingUtilities.h caters to the same needs, so transition
users of skipString(...) to skipToken(...) and remove
platform/text/ParserUtilities.h.

Review-Url: https://codereview.chromium.org/2176623003
Cr-Commit-Position: refs/heads/master@{#407259}
fs
Remove platform/text/ParserUtilities.h
platform/ParsingUtilities.h caters to the same needs, so transition
users of skipString(...) to skipToken(...) and remove
platform/text/ParserUtilities.h.

Review-Url: https://codereview.chromium.org/2176623003
Cr-Commit-Position: refs/heads/master@{#407187}
fs
Resolve URL/target reference at a single point in SVGUseElement
The <base> URL can change between the attribute (href) is updated and
the shadow tree constructed. This causes confusion in the target
resolving code since it can produce different results at different
points in time.
Only resolve the URL on changes (to 'href'), extract the fragment
identifier and store whether the reference is local or not.
Refactor the SVGUseElement target element lookup with an eye to
future handling of "fragment-only" (local) URLs.
This makes the externalDocument in
SVGURIReference::targetElementFromIRIString unused, so remove that
codepath and simplify the function accordingly.

This changes behavior from resolving the URL and target element when
needed (depending on when layouts happen), to only when the 'href' is
mutated. This new behavior matches Edge, but not Gecko.

BUG=601203, 470608

Review-Url: https://codereview.chromium.org/2173453002
Cr-Commit-Position: refs/heads/master@{#407128}
fs
Merge CSSSVGDocumentValue with CSSURIValue
These two CSSValue classes are used to represent the same semantic,
which is a reference to an element by means of a "url(...)" function.
CSSSVGDocumentValue carries additional state to be able to handle
references to external documents, by caching a DocumentResource.

Move all the DocumentResource state to CSSURIValue, while also keeping
the naming of the URL string (m_url). Also do some minor cleanup, for
instance by removing "SVG" from the cachedSVGDocument() method name and
dropping some unnecessary .get()s.

This bloats CSSURIValue a bit for the cases where the DocumentResource
is not utilized, but this bloat will be reduced (in relative terms) with
future developments. On the "pro"-side is naturally that we now don't
have to extend two CSSValue classes with additional functionality and
state.

BUG=470608, 405315

Review-Url: https://codereview.chromium.org/2165833006
Cr-Commit-Position: refs/heads/master@{#407126}
tsniatowski
Use absolute namespace references in //base/logging.h macros
Macros can be used in various namespace contexts, and macros that expand
to "logging::Something" can end up choosing some_namespace::logging
if used in a context wher ethere exists a nested namespace logging with
a conflicting name like LogMessage. It's fixable by using "::logging::"
instead of "logging::" in the macros.

No examples of such issues in chrome, but this can help downstream and
seems a good thing to do consistently.

BUG=

Review-Url: https://codereview.chromium.org/2045203004
Cr-Commit-Position: refs/heads/master@{#406910}
mostynb
rebaseline huge-image-viewport-scale.html
This test was not being run with correctly initialized
preferences, and an invalid baseline.  This fixes the
initialization, and rebaselines the test.

This is a prerequisite of https://codereview.chromium.org/2155273002/

BUG=331654, 464295

Review-Url: https://codereview.chromium.org/2163953002
Cr-Commit-Position: refs/heads/master@{#406679}
mostynb
Remove WebContents::InsertCSS since it is unused
This looks like it hasn't been used since CL923463003 landed
over a year ago.

BUG=331654

Review-Url: https://codereview.chromium.org/2157153002
Cr-Commit-Position: refs/heads/master@{#406656}
fs
Simplify URL-resolving in targetElementFromIRIString
Use Document::completeURL for URL resolving, rather than using
String::substring et.c to reproduce essentially the same code.
Use KURL::fragmentIdentifier and friends to extract the fragment
identifier.

Fold urlFromIRIStringWithFragmentIdentifier into its only user.
Open-code isExternalURIReference in targetElementFromIRIString, since we
already have the URL resolved and ready.

BUG=470608

Review-Url: https://codereview.chromium.org/2170453002
Cr-Commit-Position: refs/heads/master@{#406578}
fs
Simplify "is external URL" in filter operations resolving
We've already resolved the URL, so we might as well just use
equalIgnoringFragmentIdentifier on that rather than potentially
re-resolve and compare. No functional change.
Eventually we'll need to have the URL resolved before style resolution.

BUG=470608, 405315

Review-Url: https://codereview.chromium.org/2167733002
Cr-Commit-Position: refs/heads/master@{#406574}
mharanczyk
Fix uninitialized variable in PrefServiceSyncable class.
Review-Url: https://codereview.chromium.org/2165943002
Cr-Commit-Position: refs/heads/master@{#406571}
fs
Only flag the LayoutObject on CSP error if one is attached
When instantiating a plugin through the (somewhat special) code-path
that does not require a LayoutObject to be present, we would end up
dereferencing a null-pointer if a CSP error was flagged, failing the
plugin load sequence.

BUG=627694

Review-Url: https://codereview.chromium.org/2162473003
Cr-Commit-Position: refs/heads/master@{#406295}
rchlodnicki
[net-internals] Fix JS exception on stopping capturing while in Capture view
Store a map of link enabled states so that we can use it to enable next
visibile view on hidding active view. Map is ordered so it works to iterate it.

BUG=616382
CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:closure_compilation

Review-Url: https://codereview.chromium.org/2121763002
Cr-Commit-Position: refs/heads/master@{#405942}
mostynb
gyp: url_mojom should be a hard_dependency
The url/url.gyp:url_mojom target depends on url_interfaces_mojom,
which generates header files, and sets itself as a
hard_dependency.  Thhat hard_dependency status is not propagated
to url_mojom. Let's add it explicitly.

Review-Url: https://codereview.chromium.org/2153093002
Cr-Commit-Position: refs/heads/master@{#405794}
tmoniuszko
Fix TouchSelectionControllerImpl tests failing with DPI=125%
Make textfield a bit larger so text fits it when system DPI is set to 125%.

Fixes following tests:
TouchSelectionControllerImplTest.DoubleTapInTextfieldWithCursorHandleShouldSelectText
TouchSelectionControllerImplTest.SelectRectCallbackTest
TouchSelectionControllerImplTest.SelectRectInBidiCallbackTest
TouchSelectionControllerImplTest.SelectionInBidiTextfieldTest
TouchSelectionControllerImplTest.SelectionInTextfieldTest

BUG=626264

Review-Url: https://codereview.chromium.org/2120353003
Cr-Commit-Position: refs/heads/master@{#405743}
mfiglarowicz
Fix invalidating the text track indexes after append or remove text track from the list
There was a trivial bug in 'for' loop which iterates through the array
indexes but always uses the initialisation value of the iterator instead of
real value of the iterator.

BUG=

Review-Url: https://codereview.chromium.org/2144543002
Cr-Commit-Position: refs/heads/master@{#405709}
kolczyk
In ChromeVox Next, create a text edit handler on "LoadComplete" if there is already a focused text field in order not to miss the initial value change on such.
BUG=628110
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:closure_compilation

Review-Url: https://codereview.chromium.org/2151763003
Cr-Commit-Position: refs/heads/master@{#405704}
wdzierzanowski
Reland of "Fix build of Widevine CDM stub on Mac"
The combination of 'branding=Chromium' and 'enable_widevine=1' causes
'widevinecdm' to be a 'shared_library' build of the CDM stub.
Additionally combined with 'mac_strip_release=1', this triggers
'strip_save_dsym', which fails, because it doesn't support
'product_dir'.

This fix does to 'widevinecdm' what has already been done to
'clearkeycdm': Split the target into 'widevinecdm_binary' which builds
and strips the stub binary, and 'widevinecdm' which just copies the
binary.

This CL relands https://codereview.chromium.org/2117343005/ with the
following change:

The new 'widevinecdm_binary' target is now defined conditionally for the
case when it is really needed, to fix the ninja error "multiple rules
generate WidevineCdm/_platform_specific/win_x86/widevinecdm.dll".

BUG=622282

TEST='build/gyp_chromium -Gconfig=Release -Dbranding=Chromium -Denable_widevine=1 -Dmac_strip_release=1 && ninja -C out/Release widevinecdm' is successful

Review-Url: https://codereview.chromium.org/2149233003
Cr-Commit-Position: refs/heads/master@{#405635}
sigbjornf
Drop unnecessary finalization of NavigatorShare::ShareClientImpl.
R=
BUG=

Review-Url: https://codereview.chromium.org/2151803002
Cr-Commit-Position: refs/heads/master@{#405488}
wdzierzanowski
Fix build of Widevine CDM stub on Mac
The combination of 'branding=Chromium' and 'enable_widevine=1' causes
'widevinecdm' to be a 'shared_library' build of the CDM stub.
Additionally combined with 'mac_strip_release=1', this triggers
'strip_save_dsym', which fails, because it doesn't support
'product_dir'.

This fix does to 'widevinecdm' what has already been done to
'clearkeycdm': Split the target into 'widevinecdm_binary' which builds
and strips the stub binary, and 'widevinecdm' which just copies the
binary.

BUG=622282

TEST='build/gyp_chromium -Gconfig=Release -Dbranding=Chromium -Denable_widevine=1 -Dmac_strip_release=1 && ninja -C out/Release widevinecdm' is successful

Review-Url: https://codereview.chromium.org/2117343005
Cr-Commit-Position: refs/heads/master@{#405371}
mostynb
fix gyp build after proto_zero_plugin skeleton landed
Followup to https://codereview.chromium.org/2147613002 / crrev.com/2147613002

BUG=608721

Review-Url: https://codereview.chromium.org/2146063003
Cr-Commit-Position: refs/heads/master@{#405330}
mharanczyk
Expose final download URL (actual url after redirects) in the extension API.
BUG=620630

Review-Url: https://codereview.chromium.org/1706193002
Cr-Commit-Position: refs/heads/master@{#404619}
fs
Drop the adding and removing of the 'running' class in SVGTestCase.js
This class will trigger layouts that could hide the intended effects of
the tests using this "framework". Since the same elements are marked as
being hidden, this will not affect the graphical output.

BUG=231560

Review-Url: https://codereview.chromium.org/2104943005
Cr-Commit-Position: refs/heads/master@{#404380}
davve
Fallback to 300x150 instead of 0x0 size for SVG inside content()
Prior to r379801, the fallback 300x150 in SVGImage::dataChanged() was
used. Post r379801 we instead used the empty rect as fallback. Both
are probably wrong but 300x150 matches what we did previously more
closely and we are less likely to end up with an empty image.

BUG=623528

Review-Url: https://codereview.chromium.org/2121973002
Cr-Commit-Position: refs/heads/master@{#404374}
fs
Allow 'alphabetic' for alignment-baseline and dominant-baseline
This keyword is not included in any of the ranges used, so needs to be
mentioned specifically.

BUG=620618

Review-Url: https://codereview.chromium.org/2131483003
Cr-Commit-Position: refs/heads/master@{#404338}
fs
Refine cull rect for SVGInlineTextBox painting
The PaintInfo cull rect can (will) change between paints, so use
the moral equivalent of logicalOverflowRect() to compute a more
accurate cull rect instead.

This fixes under-invalidation in the following tests:

 svg/dynamic-updates/SVGTextElement-dom-lengthAdjust-attr.html,
 svg/dynamic-updates/SVGTextElement-dom-textLength-attr.html,
 svg/dynamic-updates/SVGTextElement-svgdom-lengthAdjust-prop.html and
 svg/dynamic-updates/SVGTextElement-svgdom-textLength-prop.html

Exposed by https://codereview.chromium.org/2104943005

BUG=231560

Review-Url: https://codereview.chromium.org/2124553002
Cr-Commit-Position: refs/heads/master@{#404265}
fs
Use the outermost SVG as base when computing offsetX/Y for SVG elements
This reverts the behavior back to what it was prior to
https://codereview.chromium.org/1747223002. In short, the closest
ancestor CSS layout box is used for any SVG element. This will always
be the outermost SVG root (LayoutSVGRoot.)

BUG=624996

Review-Url: https://codereview.chromium.org/2124283002
Cr-Commit-Position: refs/heads/master@{#404217}
fs
Update FilterEffect colorspace on color-interpolation-filters changes
Changes to the 'color-interpolation-filters' property would not get
propagated to any built (cached) filter chains, and hence any future
paints would still use the old chain.
Add support for updating this FilterEffect property down in the filter
primitive element base-class setFilterEffectAttribute, and then make
sure any derived classes forward to it.

BUG=625732

Review-Url: https://codereview.chromium.org/2128193004
Cr-Commit-Position: refs/heads/master@{#404200}
mostynb
gyp: don't build gamepad_platform_data_fetcher_linux.cc when udev is disabled
Fixup after https://codereview.chromium.org/2081583002

BUG=612330

Review-Url: https://codereview.chromium.org/2125223003
Cr-Commit-Position: refs/heads/master@{#404168}
fs
Use the correct bounding rect in SVGInlineTextBox::nodeAtPoint
When writing-mode was unprefixed, SVGInlineTextBoxes started getting the
same treatment as their base-class, and hence we need to be careful when
we consider sizes for the inline boxes.
Use logicalWidth() and logicalHeight() instead of size().

BUG=587455

Review-Url: https://codereview.chromium.org/2124793002
Cr-Commit-Position: refs/heads/master@{#403913}
fs
Consider 'order' when updating feConvolveMatrix 'target*'
SVGFEConvolveMatrixElement's 'targetX' or 'targetY' attribute depend on
'order' for their initial value. When updating the target value of
an instantiated FEConvolveMatrix, order would however not be considered,
instead using the initial value of the attribute (zero.)

Refactor the code a bit to make it easy to consider the correct initial
value even when updating an existing FEConvolveMatrix, introducing
new methods matrixOrder() and targetPoint(). Clean up and simplify
as appropriate.

This fixes the following tests:

 svg/dynamic-updates/SVGFEConvolveMatrixElement-dom-targetX-attr.html
 svg/dynamic-updates/SVGFEConvolveMatrixElement-dom-targetY-attr.html
 svg/dynamic-updates/SVGFEConvolveMatrixElement-svgdom-targetX-prop.html
 svg/dynamic-updates/SVGFEConvolveMatrixElement-svgdom-targetY-prop.html

with https://codereview.chromium.org/2104943005 applied.

BUG=231560

Review-Url: https://codereview.chromium.org/2124583002
Cr-Commit-Position: refs/heads/master@{#403814}
mostynb
remove duplicate friend declaration
This unbreaks GCC builds after https://codereview.chromium.org/2036403002

BUG=587025
TBR=lfg@chromium.org, dcheng@chromium.org

Review-Url: https://codereview.chromium.org/2121953003
Cr-Commit-Position: refs/heads/master@{#403795}
rune
Don't schedule wholeSubtreeInvalid sets.
The StyleInvalidator asserts if we scheduled such sets. Mark element
for SubtreeStyleChange instead.

R=esprehn@chromium.org,ericwilligers@chromium.org
BUG=624607

Review-Url: https://codereview.chromium.org/2106063007
Cr-Commit-Position: refs/heads/master@{#403663}
rune
Skip scheduling sibling invalidation based on direct adjacent count.
When scheduling sibling invalidation sets for sibling insertion/removal
we schedule sets for N preceding siblings where N is the maximum number
of consecutive direct adjacent combinators, or infinite for indirect
adjacent combinators.

However, the further left of the mutation we schedule, the more direct
adjacent combinators are required to affect siblings following the
mutation. The maximum adjacent number is stored for every sibling
invalidation set, which means we can drop scheduling the set if that
count is too low.

Example:

Selectors:

  .a + div + div + span {}
  .b + span {}
  .c + span {}

Siblings:

  div.x div.a div.b div.c div#remove span

When removing #remove we start scheduling sibling invalidations for
div.c which needs at least one adjacent combinator to reach the span or
any subsequent elements. div.b needs at least two, and so on. For the
case above, we schedule the set for .c, but not for .b since the max
adjacent combinator count for .b is 1 and it needs to be at least 2.
.a needs to have at least 3, which is the case, so we schedule the set
for .a. We never consider the div.x element because the max adjacent
combinator count for the document is 3.

R=esprehn@chromium.org
BUG=624782

Review-Url: https://codereview.chromium.org/2116503002
Cr-Commit-Position: refs/heads/master@{#403530}
fs
Relocate tests from fast/svg/ to svg/
Some files are renamed to avoid name clashes on case-insensitive
file-systems:

 svgangle.html  => svgangle-units.html
 svglength.html => svglength-units.html
 svglist.html   => svglist-basic-interface.html

(The last one did not actually clash, but was renamed for easier
 differentiation.)

BUG=625231

Review-Url: https://codereview.chromium.org/2118903003
Cr-Commit-Position: refs/heads/master@{#403511}
fs
Fold fast/svg/script-tests/animation-events.js into the test using it
There's only one test using this "framework", so fold it into the test
itself. Move the result to svg/animation/.

Straight copy of the .js file into the .html file. Whitespace is adjusted
and some redundant things are removed (';' and <div>.)

BUG=625231

Review-Url: https://codereview.chromium.org/2112373002
Cr-Commit-Position: refs/heads/master@{#403510}
sigbjornf
Robustify Internals entry points against detached uses.
Fuzzers generate pointless overhead using these test-only methods from
frame-detached contexts. Add required nullchecks throughout.

Simple test case for each of these entry points (w/ --run-layout-test):

 <a href="javascript:'replaced'" id=anchor>click</a>
 <script>
 anchor.click();
 internals.someMethod();
 console.log('no crash');
 </script>

R=
BUG=624549

Review-Url: https://codereview.chromium.org/2109613007
Cr-Commit-Position: refs/heads/master@{#403421}
rune
0 -> nullptr for UseCounter pointer in CSSParserContext.
I repeatedly find myself looking for constructors taking flags through
unsigned before realizing this is actually a pointer.

Review-Url: https://codereview.chromium.org/2101143005
Cr-Commit-Position: refs/heads/master@{#403256}
fs
Use a converter for -webkit-clip-path
Add StyleBuilderConverter::convertClipPath and use it for computing
the ClipPathOperation.

BUG=610854

Review-Url: https://codereview.chromium.org/2105383002
Cr-Commit-Position: refs/heads/master@{#403153}
rune
Optimize style recalc when adding @keyframes.
We only need to recalculate the elements with running animations unless
we tried to find an @keyframes rule and couldn't, for which we fall
back to a full document recalc.

The motivation for doing this is that the current WIP for issue 567021
shows that we're still getting full document recalcs due to the
presence of @keyframes rules.

R=dstockwell@chromium.org,alancutter@chromium.org
BUG=623911,567021

Review-Url: https://codereview.chromium.org/2105743002
Cr-Commit-Position: refs/heads/master@{#403118}
fs
Wire up invalidation for flood-{color,opacity} on <feDropShadow>
Make sure to call primitiveAttributeChanged() for this element and
property combination. Implement the required infrastructure in
SVGFEDropShadowElement::setFilterEffectAttribute and FEDropShadow.

Because of an issue with SVGTestCase.js the tests below would not
previously fail as expected. That is being addressed by the CL at
https://codereview.chromium.org/2104943005.

TEST=svg/dynamic-updates/SVGFEDropShadowElement-dom-shadow-color-attr.html
TEST=svg/dynamic-updates/SVGFEDropShadowElement-dom-shadow-opacity-attr.html
TEST=svg/dynamic-updates/SVGFEDropShadowElement-svgdom-shadow-color-prop.html
TEST=svg/dynamic-updates/SVGFEDropShadowElement-svgdom-shadow-opacity-prop.html
BUG=231560

Review-Url: https://codereview.chromium.org/2112563002
Cr-Commit-Position: refs/heads/master@{#403025}
fs
Notify context element after changes in SVGPreserveAspectRatioTearOff
Without this the associated LayoutObject will not be notified of the
change.

TEST=svg/dynamic-updates/SVGFEImageElement-svgdom-preserveAspectRatio-prop.html
TEST=svg/dynamic-updates/SVGImageElement-svgdom-preserveAspectRatio-prop.html
BUG=231560

Review-Url: https://codereview.chromium.org/2108333002
Cr-Commit-Position: refs/heads/master@{#402960}
fs
Move ClipPathOperation.h to core/style/
This is stored as part of ComputedStyle, so style/ seems a better fit
than layout/.

BUG=610854

Review-Url: https://codereview.chromium.org/2108213002
Cr-Commit-Position: refs/heads/master@{#402935}
sigbjornf
Tidy CrossThreadCopier.h inclusion.
This header file declares a set of types as being cross-copiable; avoid
bringing in all of Oilpan for its two cross-thread persistent types.

Tidy up some downstream header files which were implicitly depending on
Oilpan being included here.

R=
BUG=597856, 624419

Review-Url: https://codereview.chromium.org/2104283002
Cr-Commit-Position: refs/heads/master@{#402823}
rune
Schedule sibling invalidation sets for sibling insert/remove.
Invalidation sets have been used only for changes which do not alter the
tree structure, like changing id, class names, other attributes, and
pseudo states. For dom tree changes, style invalidation relies on attach
and detach of the layout tree for the inserted/removed element. For
subsequent siblings of inserted/removed elements, we have been marking
siblings for subtree recalc (when we know we have tried to match
adjacent combinators on one of the siblings before) based on the maximum
number of consecutive direct adjacent combinators or all subsequent
siblings for indirect adjacent combinators.

This CL starts using sibling invalidation sets on siblings instead of
doing subtree recalcs.

The following properties of invalidation sets affected how this
implementation was done:

* Even though we invalidate descendants/siblings based on tag names, we
  don't have invalidation sets for tag names as elements do not change
  tag names dynamically. For inserted/removed elements, we could have
  used invalidation sets for tag names. Take the selector "div + span".
  If we remove a div we could have scheduled an invalidation set for div
  which invalidates a span sibling.

* Invalidation sets for simple selectors and their negated versions, for
  instance ".a" and ":not(.a)", share invalidation sets and they may do
  so because invalidation sets have been applied when they change. That
  is, "a" is either part of old or the new class attribute when the
  invalidation set needs to be scheduled. When removing/inserting
  elements, a selector like ":not(.a) + .b" will need to schedule a
  sibling for ".a" for all elements not having the class "a".

* Consider the selector "* + .a". We have to schedule a sibling
  invalidation for any inserted/removed element to invalidate a sibling
  with class "a". However, invalidation set construction has only
  created an invalidation set for ".a" with the invalidateSelf flag set.

For this CL, we create a single universal sibling invalidation set to
handle the cases above. In fact this CL only do sibling invalidations on
element insert/remove for id, class, and attribute in addition to
scheduling the universal sibling invalidation set. Also, we skip
selector lists (that is, :not() and :-webkit-any() as :host()
:host-context() and :slotted() never match when followed by an adjacent
combinator).

For the following set of selectors:

  :not(.a) + .b + .c
  #x:not(.a) + .d
  div + span
  :-webkit-any(.x) + .f .g

We end up with the following universal sibling invalidation set with the
descendant invalidation set, containing ".g", to the right.

  { .c, span, .f, invalidatesSelf } => { .g }

Note that if a compound contains both :not() and for instance an id
selector, we will not add it to the universal sibling invalidation set
as we can properly invalidate ".d" siblings above using the invalidation
set for "#x".

== Scheduling sibling invalidations

For changes not modifying the tree, we schedule sibling invalidation
sets on the changed element and invalidate the siblings with descendant
sets during the invalidation process. When removing an element, however,
the element is not left in the tree, so we need to associate the
invalidation set with another element.

When we remove an element, we instead schedule the sibling invalidation
set, and the sibling invalidation set's descendant set, as descendant
invalidation sets on the parent element or shadow root.

Likewise for inserting an element. When inserting an element, we have
elements to schedule the sibling sets on, but the sets would need to be
scheduled on elements further to the right in the sibling list in order
to reach the siblings we needed to invalidate. Also, they would have to
be moved further right on subsequent insertions.

== The effect on amazon.com

This CL gets rid of all post-page-load full recalcs before you start
interacting with the page. The full recalcs after you start interacting
needs to be investigated further.

R=esprehn@chromium.org,ericwilligers@chromium.org
BUG=542082

Review-Url: https://codereview.chromium.org/2089063005
Cr-Commit-Position: refs/heads/master@{#402770}
rune
Mark stylesheet as having media queries at consume time.
Marking the stylesheet as having media queries for @media at insertion
time meant we didn't mark the stylesheet when @media was a child rule
of another @-rule like @supports. Instead do the marking from the
consume method like we already did for @font-face rules.

Removed unnecessary marking from insertion methods and an unnecessary
boolean parameter which was always true.

R=timloh@chromium.org
BUG=621502

Review-Url: https://codereview.chromium.org/2081893003
Cr-Commit-Position: refs/heads/master@{#402766}
ckulakowski
Fix for cross compiling 32bit linux on 64bit host machine
Right now when custom sysroot is provided as gn parameter (target_sysroot)
only 32 bit custom sysroot will be used. 64 bit sysroot (which is also needed
by 32 bit build by - for example - protobuf) is expected to be found in default
location. This change adds possibility to provide path to directory containing
both sysroots for linux (32 bit and 64 bit).

BUG=622616

Review-Url: https://codereview.chromium.org/2096323002
Cr-Commit-Position: refs/heads/master@{#402742}
sigbjornf
Handle cross-thread weak persistents during global weak processing.
r401880 changed the handling of weak persistents, clearing
and releasing their underlying PersistentNodes once their
weak references point to otherwise unreferenced objects.

However, performing that weak processing step cannot reliably
be done as part of thread-local weak processing if the
weak persistent is a CrossThreadWeakPersistent<T> (CTWP) as the
object it refers to may reside on a different thread's heap than
where the CTWP resides. If both locations need to be accessed,
doing that as part of thread-local weak processing is too
late and unsafe.

Instead we process the cross-thread weak persistents along with the
'weak cells' during global weak processing. WeakPersistent<>s are
still handled during thread-local weak processing.

R=
BUG=623985

Review-Url: https://codereview.chromium.org/2106863003
Cr-Commit-Position: refs/heads/master@{#402734}
sigbjornf
Disable HeapTest.TraceDeepEagerly for Android targets.
This test is heavy on allocation and considered too slow to be
running w/ asserts enabled. Disable it entirely for Android,
as the overhead is bogging down bots too much.

R=
BUG=623779

Review-Url: https://codereview.chromium.org/2101363002
Cr-Commit-Position: refs/heads/master@{#402470}
sigbjornf
Allow lazy removal of (context) lifecycle observers while stopping.
r402141 imposed the restriction on ContextLifecycleObservers behavior
during stop() notifications of no longer being allowed to remove
observers while handling stop(). That constraint enables iteration
to be handled without allocating a snapshot of the observer set.

That restriction proves too constraining for media elements indirectly
holding onto AssociatedURLLoader objects while being stopped
(see associated bug for info.) Consequently, we allow observer removals
while keeping observer set iteration safe & allocation-free -- removals
are recorded while iterating, and removed in one go afterwards.

This is only done for notifyStoppingActiveDOMObjects(), as the other
notifications over context lifecycle observers do not require this
flexibility.

R=
BUG=623755

Review-Url: https://codereview.chromium.org/2109553002
Cr-Commit-Position: refs/heads/master@{#402445}
sigbjornf
Fix DUMP_NODE_STATISTICS compilation.
R=
BUG=

Review-Url: https://codereview.chromium.org/2099183003
Cr-Commit-Position: refs/heads/master@{#402406}
sigbjornf
Retire http/tests/htmlimports/redirect.html leak exemption.
Back to normal, retire expectation.

TBR=yoichio
BUG=366477
NOTRY=true

Review-Url: https://codereview.chromium.org/2096373002
Cr-Commit-Position: refs/heads/master@{#402152}
sigbjornf
Avoid snapshotting ContextLifecycleObservers when iterating.
To allow safe iteration over the set of ExecutionContext observers,
a snapshot of the set was taken before iterating over it. So as to
allow observers to unregister themselves while being notified.

Apart from PostMessageTimer unregistering itself while being stop()ed,
the ContextLifecycleObservers do not mutate the observer set, hence
we can avoid the snapshot step and iterate directly over the observers.
Attempts to remove an observer while iterating is caught and
asserted for.

As the observer set is a set of weak references, some care is needed
to keep those references strong while iterating. That and other details
surrounding observer iteration is now handled by the auxiliary scope object
LifecycleNotifier<>::IterationScope.

Should the constraint of not being allowed to remove observers while
iterating prove too cumbersome, supporting lazy removal of observers
(post iteration) would be straightforward.

R=
BUG=451132

Review-Url: https://codereview.chromium.org/2094143002
Cr-Commit-Position: refs/heads/master@{#402141}
rune
Move preferred stylesheet set out of active sheet update.
There are two reasons for this:

1. In preparation for async active stylesheet update, in which case
   setting the preferred stylesheet set would otherwise be happening
   too late.

2. Doing it during the active stylesheet update means only the
   alternate stylesheets following the link with the title setting the
   preferred sheet set would be enabled appropriately. crbug.com/621479

This CL is split out of https://codereview.chromium.org/1913833002

R=timloh@chromium.org
BUG=567021,621479

Review-Url: https://codereview.chromium.org/2079303002
Cr-Commit-Position: refs/heads/master@{#402139}
sigbjornf
Remove unnecessary finalization of IDBObserver classes.
IDBObserver and IDBObserverChanges do not need to be finalized,
nor have user-defined empty destructors.

R=
BUG=609934

Review-Url: https://codereview.chromium.org/2098243002
Cr-Commit-Position: refs/heads/master@{#402117}
rune
Don't create m_style for option element in display:none subtree.
Instead create a ComputedStyle on demand in rare data like we do for
other display:none elements. This caused out-of-date computed style for
option elements in display:none subtrees because recalcOwnStyle is
skipped for elements without a parentComputedStyle().

R=tkent@chromium.org
BUG=621965

Review-Url: https://codereview.chromium.org/2095973002
Cr-Commit-Position: refs/heads/master@{#402095}
perja
On Android there is no notification when a device is lost. This change keeps track of when a device was last seen and removes outdated devices.
This was already implemented for OSX and the code has been moved to make it accessible to Android as well.

BUG=581544

Review-Url: https://codereview.chromium.org/1842223003
Cr-Commit-Position: refs/heads/master@{#401940}
sigbjornf
Completely clear weak persistent references.
If weak processing determines that a WeakPersistent<T> is now pointing
to an otherwise unreferenced object, clear out and deallocate its
underlying PersistentNode.

We previously would only clear the persistent reference, but keep the
PersistentNode. This would lead to imprecise counts of live persistents,
potentially triggering false asserts of leaking persistents during thread
termination GCs.

R=
BUG=

Review-Url: https://codereview.chromium.org/2094973002
Cr-Commit-Position: refs/heads/master@{#401880}
fs
Update baselines for svg/text/text-viewbox-rescale.html
Incorporate changes from https://codereview.chromium.org/1920833002.

TBR=pdr@chromium.org
BUG=603956

Review-Url: https://codereview.chromium.org/2085413003
Cr-Commit-Position: refs/heads/master@{#401584}
sigbjornf
gn: add Blink GC plugin options
The Blink GC clang plugin supports a couple of extra options which the
Blink GN configuration does not currently expose. Do so here, but without
depending on the 'flags' script used by the gyp build system
(tools/clang/scripts/blink_gc_plugin_flags.py).

Specifically, this adds the following Blink GN variables:

 - blink_gc_plugin_option_do_dump_graph [ = false ]
     emit JSON-serialized representation of class graph.
 - blink_gc_plugin_option_warn_unneeded_finalizer [ = false ]
     warn of unnecessary destructor usage.

TBR=thakis
BUG=

Review-Url: https://codereview.chromium.org/2097433002
Cr-Commit-Position: refs/heads/master@{#401568}
fs
Update expectations for crbug.com/621915
These tests no longer appear flaky:

 svg/custom/createImageElement2.xhtml
 svg/custom/pointer-events-image.svg
 svg/custom/pointer-events-image-css-transform.svg

TBR=pdr@chromium.org
BUG=621915

Review-Url: https://codereview.chromium.org/2097443002
Cr-Commit-Position: refs/heads/master@{#401566}
sigbjornf
gn: define and use clang_base_path
Replace uses of "//third_party/llvm-build/Release+Asserts"
with the configurable option clang_base_path.

TBR=thakis
BUG=

Review-Url: https://codereview.chromium.org/2088373002
Cr-Commit-Position: refs/heads/master@{#401551}
fs
Fix Mac10.9 baselines for two svg/custom/ tests
Remove incorrect baselines for:

 svg/custom/createImageElement2.xhtml
 svg/custom/pointer-events-image.svg

TBR=pdr@chromium.org
NOTRY=true
BUG=621915

Review-Url: https://codereview.chromium.org/2082253004
Cr-Commit-Position: refs/heads/master@{#401387}
sigbjornf
Add ASan exemption when iterating cross-thread-persistents.
When running a termination GC or tracing, the set/region of live
CrossThreadPersistent nodes are iterated over, checking if the objects
they point to belong to the current thread.

As heap objects can have CrossThreadPersistent<> fields, it is possible
for there to be CrossThreadPersistent nodes which point back to heap
objects about to be swept. When ASan is enabled, the page sweeping takes
care of poisioning all to-be-swept objects first.

The combination of the above two means that persistent iteration can
try to inspect one of these poisoned objects, which will trigger an
ASan error. The persistent will not be further used, as it doesn't
belong to the thread. To accommodate this, we do disable ASan while
performing the object lookup while iterating the CrossThreadPersistent
node set.

R=
BUG=620754

Review-Url: https://codereview.chromium.org/2087253002
Cr-Commit-Position: refs/heads/master@{#401354}
fs
Deflake svg/custom/createImageElement2.xhtml
Need to wait for the image to load before ending the test.

BUG=621915

Review-Url: https://codereview.chromium.org/2086383002
Cr-Commit-Position: refs/heads/master@{#401347}
fs
Deflake svg/custom/pointer-events-image*.svg
Rewrite these two tests (which are essentially the same, modulo a
transform) to first wait for all the images to load, and then perform
all the clicks.

BUG=621915

Review-Url: https://codereview.chromium.org/2088733006
Cr-Commit-Position: refs/heads/master@{#401343}
fs
Update/tighten expectations for crbug.com/552433
Passing after getting updated baselines:

 svg/dom/length-list-parser.html
 svg/transforms/text-with-pattern-with-svg-transform.svg

Failing (a few pixels differ) on Win7 Debug:

 svg/W3C-SVG-1.1/coords-units-02-b.svg

TBR=schenney@chromium.org
BUG=552433

Review-Url: https://codereview.chromium.org/2090553002
Cr-Commit-Position: refs/heads/master@{#401270}
perja
bluetooth: android: removed duplicate restart of scanning.
This is a followup fix to commit 3a38a46. There is no need to restart the search in this callback as this will be done from native code (BluetoothChooserAndroid::SetAdapterPresence).

BUG=543060

Review-Url: https://codereview.chromium.org/2065893002
Cr-Commit-Position: refs/heads/master@{#401257}
mostynb
content/public/common should depend on the mojo_bindings target
Rather than the mojo_bindings_mojom target, which exports sources, and
causes multiple definition errors in component builds.

Followup to https://codereview.chromium.org/2089823002

BUG=622076
TBR=jam@chromium.org,rockot@chromium.org

Review-Url: https://codereview.chromium.org/2088163002
Cr-Commit-Position: refs/heads/master@{#401230}
fs
Common up SVG transform "change detection" (classification)
This moves the transform change classification to a helper class
(SVGTransformChangeDetector) and move
LayoutSVGContainer::TransformChange along with it, renaming it to
SVGTransformChange.

BUG=603956

Review-Url: https://codereview.chromium.org/2086583004
Cr-Commit-Position: refs/heads/master@{#401111}
sigbjornf
Stop PingLoader's cancellation timer early.
If the ping completed, stop the loader's cancellation timer.

R=japhet
BUG=

Review-Url: https://codereview.chromium.org/2083023002
Cr-Commit-Position: refs/heads/master@{#401068}
fs
Reland of "Remove redundant "layout size changed" state from LayoutSVGRoot"
In LayoutSVGRoot::layout, two slightly different "layout size changed"
values are computed - one which is used for propagation to children
via SVGLayoutSupport::layoutSizeOfNearestViewportChanged
(|m_isLayoutSizeChanged|), and one which is used to mark direct
descendant children (local |layoutSizeChanged|).
Ultimately their use is the same though, so only using the more narrow
predicate for both of these cases should yield the same result.
It also has the side-effect of making it more obvious that changes to
layout-size is only of interest when there exist clients of the SVG
root that have relative lengths.

BUG=603956

Review-Url: https://codereview.chromium.org/2065093002
Cr-Commit-Position: refs/heads/master@{#400987}
fs
Rebaseline svg/dom/length-list-parser.html
TBR=schenney@chromium.org
BUG=552433

Review-Url: https://codereview.chromium.org/2083983003
Cr-Commit-Position: refs/heads/master@{#400976}
fs
Rebaseline svg/W3C-SVG-1.1/coords-units-02-b.svg
TBR=schenney@chromium.org
BUG=552433

Review-Url: https://codereview.chromium.org/2088733003
Cr-Commit-Position: refs/heads/master@{#400971}
fs
Rebaseline svg/transforms/text-with-pattern-with-svg-transform.svg
TBR=schenney@chromium.org
BUG=552433

Review-Url: https://codereview.chromium.org/2080243004
Cr-Commit-Position: refs/heads/master@{#400970}
fs
Rebaseline svg/hixie/perf/006.xml
TBR=schenney@chromium.org
BUG=552433

Review-Url: https://codereview.chromium.org/2082963002
Cr-Commit-Position: refs/heads/master@{#400961}
fs
Avoid using forced layout to trigger paint invalidation for SVG containers
Currently, SVG containers in the LayoutObject hierarchy force layout of
their children if the transform changes. The main reason for this is to
trigger paint invalidation of the subtree. In some cases - changes to the
scale factor - there are other reasons to trigger layout, like computing
a new scale factor for <text> or re-layout nodes with non-scaling stroke.

Compute a "scale-factor change" in addition to the "transform change"
already computed, then use this new signal to determine if layout should
be forced for the subtree. Trigger paint invalidation using the
LayoutObject flags instead.

The downside to this is that paint invalidation will walk into "hidden"
containers which rarely require repaint (since they are not technically
visible). This will hopefully be rectified in a follow-up CL.

For the testcase from 603850, this essentially eliminates the cost of
layout (from ~350ms to ~0ms on authors machine; layout cost is related
to text metrics recalculation), bumping frame rate significantly.

BUG=603956,603850

Review-Url: https://codereview.chromium.org/1996543002
Cr-Commit-Position: refs/heads/master@{#400950}
sigbjornf
Delay resetting image animation, if possible.
When the last client of an ImageResource removes itself, the animations
of the image is explicitly reset. That resetting can happen either while
finalizing objects after a GC or as part of other explicit removals of
ImageObserver clients.

Having that reset happen as part of a garbage collection is interacting badly
with code in the middle of updating animations (which happen to trigger a
conservative GC.) So, to avoid introducing such abrupt & harmful resets, delay
the reset'ing until back at the event loop (and the animations update step
having completed.)

R=
BUG=613709, 581546

Review-Url: https://codereview.chromium.org/2004263003
Cr-Commit-Position: refs/heads/master@{#400934}
sigbjornf
Clean up WeakIdentifierMap<> implementation.
Avoid (literal) code duplication between (non)GC versions
of WeakIdentifierMap<>.

Other changes (for the GC version):

  - Do not separately allocate the HeapHashMap<>s, but keep these
    as part objects on WeakIdentifierMap<> instead.
  - Support explicit removal (via notifyObjectDestroyed()).

R=
BUG=

Review-Url: https://codereview.chromium.org/2086643002
Cr-Commit-Position: refs/heads/master@{#400907}
rune
Reject invert for outline-color at parse time.
We don't support invert as outline-color, so we should drop it at parse
time as per spec[1]. Added test to check that the initial value of
outline-color is the computed value of currentColor.

Gecko also drops declarations with invert for outline-color.

[1] https://drafts.csswg.org/css2/ui.html#value-def-invert

R=timloh@chromium.org
BUG=620399

Review-Url: https://codereview.chromium.org/2081633002
Cr-Commit-Position: refs/heads/master@{#400902}
fs
Update baselines for svg/filters/filter-refresh.svg
TBR=pdr@chromium.org
NOTRY=true
BUG=613441

Review-Url: https://codereview.chromium.org/2086713002
Cr-Commit-Position: refs/heads/master@{#400818}
fs
Unprefix the CSS 'filter' property
Parse 'filter' in the same way as '-webkit-filter', and make the latter
an alias of the former.
For SVG content, only the "url(...)" function is allowed still, with the
exception of the outermost <svg> (LayoutSVGRoot), since that "has a box".

Update tests to use 'filter' where reasonable and applicable.

Intent to Ship: https://groups.google.com/a/chromium.org/d/topic/blink-dev/ZVT2kxuFMaA/discussion

Based on https://codereview.chromium.org/1987943002 by noel@chromium.org.

BUG=613441,618160,550249,535786,244295,109224

Review-Url: https://codereview.chromium.org/2065593002
Cr-Commit-Position: refs/heads/master@{#400752}
mostynb
add some missing power_save_blocker gyp deps
Followup to https://codereview.chromium.org/2075153002

BUG=612337, 612563, 257943

Review-Url: https://codereview.chromium.org/2073393002
Cr-Commit-Position: refs/heads/master@{#400723}
mostynb
skip neon intrinsics in libpng when neon is not available
Followup to https://codereview.chromium.org/2021403002

BUG=599917, 618061

Review-Url: https://codereview.chromium.org/2074363002
Cr-Commit-Position: refs/heads/master@{#400714}
sigbjornf
GC plugin: improve error reporting when tracing illegal fields.
Add detection of trace() calls over smart pointer types that either do not
wrap up references to heap objects, or are otherwise not meant to be traced
over. In particular, CrossThread(Weak)Persistent<T> fields are now detected
as being illegal to trace over. Also consider OwnPtr<T>, RefPtr<T> and
std::unique_ptr<T> as illegal to trace over & emit a more concise error
messages for these.

R=
BUG=619149

Committed: https://crrev.com/3ba6089cd6a901b62ff5a0d8f08a2bd818edcbe8
Review-Url: https://codereview.chromium.org/2060553002
Cr-Original-Commit-Position: refs/heads/master@{#399861}
Cr-Commit-Position: refs/heads/master@{#400653}
fs
Revert of Remove redundant "layout size changed" state from LayoutSVGRoot (patchset #1 id:1 of https://codereview.chromium.org/2065093002/ )
Reason for revert:
Possible cause of crbug.com/620228

Original issue's description:
> Remove redundant "layout size changed" state from LayoutSVGRoot
>
> In LayoutSVGRoot::layout, two slightly different "layout size changed"
> values are computed - one which is used for propagation to children
> via SVGLayoutSupport::layoutSizeOfNearestViewportChanged
> (|m_isLayoutSizeChanged|), and one which is used to mark direct
> descendant children (local |layoutSizeChanged|).
> Ultimately their use is the same though, so only using the more narrow
> predicate for both of these cases should yield the same result.
> It also has the side-effect of making it more obvious that changes to
> layout-size is only of interest when there exist clients of the SVG
> root that have relative lengths.
>
> BUG=603956
>
> Committed: https://crrev.com/30770a70834c73670884f0de91bb7624df0ba003
> Cr-Commit-Position: refs/heads/master@{#399791}

TBR=pdr@chromium.org,schenney@chromium.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=603956

Review-Url: https://codereview.chromium.org/2071953004
Cr-Commit-Position: refs/heads/master@{#400411}
mostynb
remove leftover forward declaration of OnscreenDisplayClient
BUG=487471
CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel

Review-Url: https://codereview.chromium.org/2079513002
Cr-Commit-Position: refs/heads/master@{#400267}
sigbjornf
Remove unnecessary MemberHash<> templates.
Directly define the hash traits of all heap reference template types
(Member<T> - or Persistent<T>-derived) in terms of MemberHash<T>,
and avoid introducing ad-hoc templates for these.

Add missing (CrossThread)WeakPersistent<T> hash traits also.

R=
BUG=

Review-Url: https://codereview.chromium.org/2067223005
Cr-Commit-Position: refs/heads/master@{#400155}
joleksy
Align the Mac Omnibox items vertically again
OmniboxViewMac::GetBoldFieldFont() needs to request a bold font, then make it larger. Resource bundle will do the opposite, which makes a large system normal font a non-system bold font. That gives a different baseline to making the non-system bold font larger. And while the omnibox locks the baseline in ApplyTextStyle(), OmniboxPopupCellData does not.

BUG=617144

Review-Url: https://codereview.chromium.org/2068163002
Cr-Commit-Position: refs/heads/master@{#400144}
sigbjornf
GC plugin: improve error reporting when tracing illegal fields.
Add detection of trace() calls over smart pointer types that either do not
wrap up references to heap objects, or are otherwise not meant to be traced
over. In particular, CrossThread(Weak)Persistent<T> fields are now detected
as being illegal to trace over. Also consider OwnPtr<T>, RefPtr<T> and
std::unique_ptr<T> as illegal to trace over & emit a more concise error
messages for these.

R=
BUG=619149

Review-Url: https://codereview.chromium.org/2060553002
Cr-Commit-Position: refs/heads/master@{#399861}
sigbjornf
Allow prolonged CanvasAsyncBlobCreator lifetime, avoid indirect leaks.
Weakly keeping this async object to avoid resource leaks is problematic
(r399445 + r399675), as the object must remain alive until completed.

Undo that experiment and instead keep the object alive until all its
posted tasks have been processed. But for the task that wins and
is processed first, have it clear out the heap references that
would otherwise keep heavy objects alive.

R=
BUG=

Review-Url: https://codereview.chromium.org/2065913003
Cr-Commit-Position: refs/heads/master@{#399856}
fs
Remove redundant isLayoutSizeChanged check in LayoutSVGText::layout
SVGLayoutSupport::layoutChildren takes care to propagate the needs for
metrics updates via the |screenScalingFactorChanged| and
|layoutSizeChanged| arguments.

BUG=603956

Review-Url: https://codereview.chromium.org/2061793003
Cr-Commit-Position: refs/heads/master@{#399796}
fs
Remove redundant "layout size changed" state from LayoutSVGRoot
In LayoutSVGRoot::layout, two slightly different "layout size changed"
values are computed - one which is used for propagation to children
via SVGLayoutSupport::layoutSizeOfNearestViewportChanged
(|m_isLayoutSizeChanged|), and one which is used to mark direct
descendant children (local |layoutSizeChanged|).
Ultimately their use is the same though, so only using the more narrow
predicate for both of these cases should yield the same result.
It also has the side-effect of making it more obvious that changes to
layout-size is only of interest when there exist clients of the SVG
root that have relative lengths.

BUG=603956

Review-Url: https://codereview.chromium.org/2065093002
Cr-Commit-Position: refs/heads/master@{#399791}
asaka
gn BUILD fixes for disabling enable_extensions and use_ash feature flags.
BUG=

Review-Url: https://codereview.chromium.org/1950003002
Cr-Commit-Position: refs/heads/master@{#399693}
sigbjornf
Revert of Remove ineffective PendingScript prefinalizer (2nd attempt.) (patchset #1 id:1 of https://codereview.chromium.org/2060853002/ )
Reason for revert:
Canary crashes reported,

 https://bugs.chromium.org/p/chromium/issues/detail?id=615977#c12

Original issue's description:
> Remove ineffective PendingScript prefinalizer (2nd attempt.)
>
> With the missing case from r397106 aboard, retire the prefinalizer
> for PendingScript. Script loader and runner objects are expected
> to explicitly dispose of these upon success or failure.
>
> R=
> BUG=
>
> Committed: https://crrev.com/fbf7f01ae80f666a5b37acf0ef38fd174443787f
> Cr-Commit-Position: refs/heads/master@{#399504}

TBR=haraken@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=

Review-Url: https://codereview.chromium.org/2069573002
Cr-Commit-Position: refs/heads/master@{#399691}
sigbjornf
Have CanvasAsyncBlobCreator's delayed task keep a weak |this| also.
Followup r399445 and dually have the delayed task that's
posted to check if the idle task has gone ahead, also keep
a weak |this| reference. The non-winning CanvasAsyncBlobCreator
posted main thread tasks can safely be cancelled & dropped if
a GC happens to go ahead.

R=
BUG=

Review-Url: https://codereview.chromium.org/2069533002
Cr-Commit-Position: refs/heads/master@{#399675}
robertn
Clear the SharedBuffer when clearing the image
Previously, in the case of the image failing to be decoded, the buffer
was cleared because error() was called. This was changed in the
following patch:

 https://chromium.googlesource.com/chromium/src/+/61e34ff7dd4ac48b8c4275eb3f541ebfb8a50266%5E%21/

The patch changes it so that only clear() is called, which does not
clear the m_data buffer. This patch changes clear() to also clear the
buffer.

BUG=

Review-Url: https://codereview.chromium.org/2060193002
Cr-Commit-Position: refs/heads/master@{#399668}
sigbjornf
gc plugin: remove ScriptWrappable destructor special case.
With Blink having exited its Oilpan transition phase, no need for the
plugin to catch & allow GarbageCollected<>-derived classes that also
derive from ScriptWrappable (but could safely not provide a destructor.)

Remove the unused IsRawPtr(name), IsDummyBase(name) predicates, as well.

R=
BUG=

Review-Url: https://codereview.chromium.org/2061143002
Cr-Commit-Position: refs/heads/master@{#399667}
fs
Rename StyleLayoutData to StyleGeometryData
The term 'geometry' better matches what is stored here (and is also more
in line with the SVG spec chapter [1] that defines most of the properties
here.)
Rename the SVGComputedStyle::layout field to 'geometry' to match.

This is a mechanical rename-only CL, with the exception of some
additional whitespace fixups.

[1] https://svgwg.org/svg2-draft/geometry.html ("Geometry Properties")

BUG=603956

Review-Url: https://codereview.chromium.org/2066563002
Cr-Commit-Position: refs/heads/master@{#399649}
sigbjornf
Remove ineffective PendingScript prefinalizer (2nd attempt.)
With the missing case from r397106 aboard, retire the prefinalizer
for PendingScript. Script loader and runner objects are expected
to explicitly dispose of these upon success or failure.

R=
BUG=

Review-Url: https://codereview.chromium.org/2060853002
Cr-Commit-Position: refs/heads/master@{#399504}
sigbjornf
Have CanvasAsyncBlobCreator speculative idle tasks keep a weak 'this'.
If image encoding should be attempted done via idle tasks,
CanvasAsyncBlobCreator schedules an idle task along with a delayed
task on the main thread to check if the idle task has been scheduled
before too long. If not, the delayed task will handle the encoding
instead (still on the main thread.)

The idle tasks represent opportunistic work, and should not keep the
CanvasAsyncBlobCreator alive until they eventually do get to run.
Consequently, make them keep a weak 'this' reference.

This addresses leaks exposed by r399181.

R=
BUG=
NOTRY=true

Review-Url: https://codereview.chromium.org/2060153002
Cr-Commit-Position: refs/heads/master@{#399445}
sigbjornf
Promptly release cross-thread websocket bridge/proxy references
To prevent other threads using cross-thread persistents from accessing
to-be-finalized websocket Peer and Bridge abstractions, promptly free
them on becoming garbage. Delaying this until lazy sweeping runs risks
(benignly) touching poisoned objects.

R=
BUG=619373

Review-Url: https://codereview.chromium.org/2064633002
Cr-Commit-Position: refs/heads/master@{#399442}
sigbjornf
Move SourceRange and CSSPropertySourceData classes off-heap.
SourceRange is a value/POD class that has no complex
sharing or lifetime handling associated with it. It does not
meet minimal requirements that we've now settled on for when
an object ought to be Oilpan managed -- doesn't have other
heap references nor sharing&lifetime issues that would benefit
from Oilpan use -- hence, we should move it off-heap.

With SourceRange off-heap, a number of classes that package up
SourceRanges in various ways can be converted to off-heap
classes also.

R=
BUG=

Review-Url: https://codereview.chromium.org/2060433002
Cr-Commit-Position: refs/heads/master@{#399428}
sigbjornf
Make trace() over persistents private.
Persistent references register a trace callback with the underlying persistent
node, allowing the Blink GC to trace the persistent root set when marking.

Consequently, there's no need to expose their trace() methods as public
methods. Make them private and thereby disallow calling trace() from
Blink code.

R=
BUG=

Review-Url: https://codereview.chromium.org/2060683002
Cr-Commit-Position: refs/heads/master@{#399423}
sigbjornf
Fix unsafe handling of part object in RuleFeatureSetTest.
The part object needs to be traced; the ad-hoc and unused
trace method used prevented GC plugin detection.

R=
BUG=
NOTRY=true

Review-Url: https://codereview.chromium.org/2063603002
Cr-Commit-Position: refs/heads/master@{#399416}
sigbjornf
Rename and improve "traceable" templates.
The NeedsTracing<T>::value expression would previously return true
if T had a trace() method or T == Member<U>. It would not be
true if T == WeakMember<U>; something that was convenient when
using NeedsTracing<> in connection with hash table backing stores,
needing to determine whether to trace the elements of the table, but
not if they were weak references & delegate that to weak processing.

As NeedsTracing<T> has grown an increasing number of uses besides
the handling of backing store tracing, where exempting WeakMember<>
makes no great sense, it is time to alter its meaning to accommodate
those uses better. And at the same time rename it to follow the various
other predicate templates we provide over types. So,

 NeedsTracing<T> => IsTraceable<T> (includes weak)
 NeedsTracingLazily<T> => IsTraceableInCollection<T> (excludes weak)
 NeedsTracingTrait<Trait> => IsTraceableInCollectionTrait<T>

Along with these changes, tidy up the static_assert() error messages in
a few places.

R=
BUG=

Review-Url: https://codereview.chromium.org/2065443002
Cr-Commit-Position: refs/heads/master@{#399389}
fs
Add use counter for parsing of filter functions with no arguments
Count before deciding the future for this, and related, "features".

BUG=618960

Review-Url: https://codereview.chromium.org/2051233003
Cr-Commit-Position: refs/heads/master@{#399378}
rune
Removed unnecessary mutable in SiblingData.
Seemingly no reason for this mutable anymore.

R=ericwilligers@chromium.org

Review-Url: https://codereview.chromium.org/2057093002
Cr-Commit-Position: refs/heads/master@{#399354}
sigbjornf
Drop unecessary use of CrossThreadPersistent by CanvasAsyncBlobCreator.
The callback object that the CanvasAsyncBlobCreator passes along to a
background thread can be kept as a simple Member<>; no need to
involve CrossThreadPersistent<> and risk inadvertently introducing
leaks.

R=
BUG=

Review-Url: https://codereview.chromium.org/2051993002
Cr-Commit-Position: refs/heads/master@{#399181}
fs
Clamp filter functions {grayscale, invert, opacity, sepia} to 100%
The spec says the following for these functions:

 "Values of amount over 100% are allowed but UAs must clamp the values
  to 1."

So do that rather than failing. This matches the behavior of Gecko and
Edge.

This fixes

http://test.csswg.org/suites/filters-1_dev/nightly-unstable/html/filter-grayscale-005.htm

from the CSS WG Filter Effects testsuite (w/ the property unprefixed.)

BUG=618607

Review-Url: https://codereview.chromium.org/2052883002
Cr-Commit-Position: refs/heads/master@{#399144}
fs
Clean up script-tests in css3/filters
Rewrite the parsing tests using
css-parser/resources/property-parsing-test.js and also use testharness
for the computed style test.

Drop css3/filters/filter-property.html since that is already covered by
the wider parsing tests. Also remove the template html file and inline
the scripts for effect-reference-reset-style-delete-crash.html [1] and
effect-reference-delete-crash.html, clearing out the script-tests sub-
directory.

[1] This test was actually referencing the
    effect-reference-delete-crash.js file, meaning it was a duplicate.

BUG=618607

Review-Url: https://codereview.chromium.org/2055733002
Cr-Commit-Position: refs/heads/master@{#399136}
sigbjornf
Remove unnecessary use of CrossThreadPersistent<>.
The CompositorMutatorImpl object that WebFrameWidgetImpl creates and
controls the lifetime of, should be referenced as a normal Member<>

R=
BUG=

Review-Url: https://codereview.chromium.org/2056833003
Cr-Commit-Position: refs/heads/master@{#399125}
fs
Move ReferenceFilterBuilder::build to FilterEffectBuilder
This function resolves a filter reference and then builds a filter
(sub)DAG for painting. Split it into the two fairly distinct parts,
leaving ReferenceFilterBuilder as a class that only does element
lookup/resolution, while the DAG-building takes place in
FilterEffectBuilder (with a little help from SVGFilterBuilder.)
Use the new function in SVGFilterPainter.

Also pass Element& to ReferenceFilterBuilder::build, and remove a
redundant null-check of ComputedStyle in
PaintLayer::updateOrRemoveFilterEffectBuilder (already checked by
paintsWithFilters and assumed later in the function.)

BUG=109224,533457

Review-Url: https://codereview.chromium.org/2044153002
Cr-Commit-Position: refs/heads/master@{#398866}
sigbjornf
Limit live Document tracking to debug builds.
liveDocumentSet() is only used by a debug entry point, so only extend
it on Document creation in debug builds.

R=
BUG=611702

Review-Url: https://codereview.chromium.org/2052583003
Cr-Commit-Position: refs/heads/master@{#398839}
rune
Make sure CSS agent messages flush before testing.
While working on updating active stylesheets as part of the style and
layout tree update in [1], two inspector tests started failing. The
reason was these tests rely on a console message to trigger a step in
the test after the active stylesheets have been pushed to the inspector
client. But even if the stylesheets were updated in InspectorCSSAgent
before the console message was sent, the console message arrived in the
client before the new active stylesheets. The reason was that the
console message is immediately flushed, while the messages from the
InspectorCSSAgent are lazily flushed from WebDevToolsAgentImpl::
didProcessTask.

I tried to force the active stylesheet update with a forced layout tree
update like this:

  document.documentElement.offsetTop;
  console.log(...);

But, due the console.log message being dispatched first as described
above, I ended up postponing the console.log with a rAF which means it
will run in a later task and the didProcessTask will trigger in between
to flush the active stylesheet message(s).

Note that this was not currently causing any failures. It's done in
preparation for landing changes for 567021 without breaking anything.

Looking at TestExpectations, I noticed crbug.com/597572, which might be
a similar issue.

[1] https://codereview.chromium.org/1913833002/

R=pfeldman@chromium.org,dgozman@chromium.org
BUG=567021

Review-Url: https://codereview.chromium.org/2049283002
Cr-Commit-Position: refs/heads/master@{#398825}
sigbjornf
Mark shouldMarkObject(), arenaForNormalPage() accessors as const.
Also remove some redundant checkHeader() asserts while doing a code
tidying pass.

R=
BUG=

Review-Url: https://codereview.chromium.org/2054673002
Cr-Commit-Position: refs/heads/master@{#398813}
sigbjornf
Simplify contextDestroyed() notifications.
With all lifetime observers now being managed by Oilpan, the
handling of the destruct notification can be made simpler.

R=
BUG=

Review-Url: https://codereview.chromium.org/2045703004
Cr-Commit-Position: refs/heads/master@{#398490}
fs
Drop FilterEffectBuilder::m_referenceFilters
The job of this Vector used to be to keep a reference to the nested
"reference" filters, to avoid them being destroyed. The entire filter
graph/chain is now on the GC heap, and traced via
FilterEffectBuilder::m_lastEffect, so this additional reference is of no
use.

Review-Url: https://codereview.chromium.org/2043013002
Cr-Commit-Position: refs/heads/master@{#398341}
sigbjornf
Clean up markClientsAndObserversFinished().
Simplify transferring a counted element entry from one set to another.

To do so, add generalized version of add() over HashCountedSet that lets
the caller specify a count.

R=
BUG=

Review-Url: https://codereview.chromium.org/2045883002
Cr-Commit-Position: refs/heads/master@{#398275}
mboc
Support underline on Linux again.
BUG=617055

https://codereview.chromium.org/1819753003/ accidentally removed
UNDERLINE style support on Linux. This CL fixes the issue.

Review-Url: https://codereview.chromium.org/2031223003
Cr-Commit-Position: refs/heads/master@{#398102}
rune
Remove unused InspectorFrontend declarations.
There seems to be nothing called InspectorFrontend. Removed unused
forward declarations for it and changed comments to say "frontend"
instead.

R=pfeldman@chromium.org,dgozman@chromium.org

Review-Url: https://codereview.chromium.org/2046433002
Cr-Commit-Position: refs/heads/master@{#398080}
sigbjornf
Remove pre-Oilpan protections from LocalFileSystem.
R=
BUG=

Review-Url: https://codereview.chromium.org/2039713002
Cr-Commit-Position: refs/heads/master@{#398000}
sigbjornf
Improve the HeapListHashSet no-weakness static assert message.
Mention the alternate HeapLinkedHashSet<> if WeakMember<>s are
attempted used with HeapListHashSet<>; for non-trivial reasons,
we only support weakness with the former.

R=
BUG=614112

Review-Url: https://codereview.chromium.org/2034423002
Cr-Commit-Position: refs/heads/master@{#397999}
sigbjornf
Add documentation of SafePointBarrier internal state.
Renamed |m_canResume| to |m_parkingRequested| while doing so,
its (inverted) meaning seems clearer imho in this context.

R=
BUG=

Review-Url: https://codereview.chromium.org/2039793002
Cr-Commit-Position: refs/heads/master@{#397988}
fs
SVGFE{Spot,Distant,Point}LightElement can have non-SVGFE*Lighting parent
Replace ASSERT_NOT_REACHED with a return statement. We already
thoroughly check for valid parent type and only notify them if so.

BUG=518649

Review-Url: https://codereview.chromium.org/2031353002
Cr-Commit-Position: refs/heads/master@{#397941}
fs
Fix Win baselines for r397915
https://chromium.googlesource.com/chromium/src/+/81c0fc6d4

BUG=24826
TBR=robhogan@gmail.com

Review-Url: https://codereview.chromium.org/2040713002
Cr-Commit-Position: refs/heads/master@{#397927}
fs
Fix Win baselines for r397912
https://chromium.googlesource.com/chromium/src/+/59fd991c4

BUG=416535
TBR=chrishtr@chromium.org

Review-Url: https://codereview.chromium.org/2041613002
Cr-Commit-Position: refs/heads/master@{#397926}
sigbjornf
Update thread-local weak processing comments following r397904.
R=haraken
BUG=611702
NOTRY=true

Review-Url: https://codereview.chromium.org/2040703002
Cr-Commit-Position: refs/heads/master@{#397925}
fs
Updated Win10 baselines for SVG shape-rendering tests
 svg/custom/use-referencing-nonexisting-symbol.svg
 svg/custom/shape-rendering.svg

Baselines are the same as the Win7 ones.

TBR=pdr@chromium.org
BUG=614063

Review-Url: https://codereview.chromium.org/2036163002
Cr-Commit-Position: refs/heads/master@{#397923}
sigbjornf
Reset ThreadState weak callback stack before GCing.
In the event a thread gets to participate in more than
one GC before it manages to leave its safe point, clear
out its weak callback stack before initiating a new
GC. Otherwise we risk keeping around weak callbacks to
duplicate or dead objects.

R=
BUG=611702

Review-Url: https://codereview.chromium.org/2036803004
Cr-Commit-Position: refs/heads/master@{#397904}
fs
Reduce LayoutSVGResource*Gradient building dependency on GradientData
The buildGradient() method can just create and return a Gradient instead
of populating the GradientData struct it's being passed.
Also make calculateGradientTransform() use the return value rather than
an out variable, and make it const qualified. Make
platformSpreadMethodFromSVGType static and use Traversal<> sugar in
SVGGradientElement::buildStops.

BUG=614368

Review-Url: https://codereview.chromium.org/2031053004
Cr-Commit-Position: refs/heads/master@{#397763}
rune
Clear media query rulesets on page zoom changes.
Otherwise, resolution media queries won't update properly when page
zoom changes. Changing the deviceScaleFactor already did this. Also,
matchMedia listeners already worked.

BUG=617095

Review-Url: https://codereview.chromium.org/2038793002
Cr-Commit-Position: refs/heads/master@{#397697}
fs
Update Win7 baseline for fast/text/emoji-web-font.html
TBR=bashi@chromium.org
BUG=616969

Review-Url: https://codereview.chromium.org/2033403002
Cr-Commit-Position: refs/heads/master@{#397687}
sigbjornf
Shrink weak hash tables when adding elements, if needed.
Hash tables containing weak references tend to be asymmetrically
handled -- Blink "user code" will add elements to the hash table,
with the garbage collector taking care of removing references
to elements that have no other strong references to keep them
alive. The weak processing of hash tables isn't capable of
shrinking and allocate a new hash table backing store while
running, hence the table entries are only cleared.

Blink code will rarely do manual removals from these
collections, which gives the hash table no opportunity
to actually shrink the capacity of the backing store.
This can lead to hash tables with a very low load factor,
the majority of the entries be deleted and empty slots.

To allow for shrinking to happen over hash tables with
weak references, add() will check if shrinking is required.

R=
BUG=

Review-Url: https://codereview.chromium.org/2034883002
Cr-Commit-Position: refs/heads/master@{#397667}
fs
Revert of Switch WTF::find on LChar to use memchr. (patchset #1 id:1 of https://codereview.chromium.org/1948543004/ )
Reason for revert:
LSAN and MSAN bots appear unhappy:

http/tests/media/media-source/mediasource-is-type-supported.html

crash log for renderer (pid <unknown>):
STDOUT: <empty>
STDERR: =================================================================
STDERR: ==4==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x6030000982af at pc 0x00000045811f bp 0x7fff2f309830 sp 0x7fff2f308fe0
STDERR: READ of size 5006 at 0x6030000982af thread T0 (content_shell)
STDERR:     #0 0x45811e in memchr ??:0
STDERR:     #1 0x3c5c419 in find third_party/WebKit/Source/wtf/text/StringImpl.h:532:9
STDERR:     #2 0x3c5c419 in find third_party/WebKit/Source/wtf/text/StringImpl.h:660:0
STDERR:     #3 0x3c5c419 in find third_party/WebKit/Source/wtf/text/WTFString.h:214:0
STDERR:     #4 0x3c5c419 in find third_party/WebKit/Source/wtf/text/WTFString.h:215:0
STDERR:     #5 0x3c5c419 in parameter third_party/WebKit/Source/platform/ContentType.cpp:50:0
STDERR:     #6 0x8d64b7d in isTypeSupported third_party/WebKit/Source/modules/mediasource/MediaSource.cpp:244:33
STDERR:     #7 0x9251198 in isTypeSupportedMethod ./out/Release/gen/blink/bindings/modules/v8/V8MediaSource.cpp:234:32
STDERR:     #8 0x9251198 in isTypeSupportedMethodCallback ./out/Release/gen/blink/bindings/modules/v8/V8MediaSource.cpp:239:0
STDERR:     #9 0x444b759 in Call v8/src/api-arguments.cc:16:3

(https://storage.googleapis.com/chromium-layout-test-archives/WebKit_Linux_ASAN/24421/layout-test-results/results.html)

Original issue's description:
> Switch WTF::find on LChar to use memchr.
>
> BUG=607208
>
> Committed: https://crrev.com/c9f9af30569ac2cd353e234f569052db6ab436f4
> Cr-Commit-Position: refs/heads/master@{#397568}

TBR=thakis@chromium.org,jbroman@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=607208

Review-Url: https://codereview.chromium.org/2036993002
Cr-Commit-Position: refs/heads/master@{#397664}
fs
Revert of ImageCapture: move mojom from WebKit/public to media/ (patchset #4 id:60002 of https://codereview.chromium.org/2027023002/ )
Reason for revert:
Appears to cause:

imagecapture/getphotocapabilities.html
imagecapture/takephoto.html

to timeout.

(https://storage.googleapis.com/chromium-layout-test-archives/WebKit_Win7/42976/layout-test-results/results.html)

Original issue's description:
> ImageCapture: move mojom from WebKit/public to media/
>
> This CL moves image_capture.mojom from
> {third_party/WebKit/public/platform/modules => media/mojo/interfaces}
> so the generated data types (e.g. PhotoCapabilities{Ptr})
> can be used from both Blink and media/capture locations.
>
> Also capture.gypi is trivially relocated to capture/ folder.
>
> Note that gyp files are -yay!- close to being finally
> removed.
>
> BUG=518807
> CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel,mac_blink_rel,win_blink_rel
>
> Committed: https://crrev.com/64aec45d94682ae3b38c0f1c18ff74cd937ff9b5
> Cr-Commit-Position: refs/heads/master@{#397644}

TBR=dcheng@chromium.org,avi@chromium.org,haraken@chromium.org,rockot@chromium.org,xhwang@chromium.org,dalecurtis@chromium.org,esprehn@chromium.org,mcasas@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=518807

Review-Url: https://codereview.chromium.org/2034003002
Cr-Commit-Position: refs/heads/master@{#397663}
sigbjornf
Sync LeakExpectations following r397405.
TBR=guidou,pkasting
BUG=589802
NOTRY=true

Review-Url: https://codereview.chromium.org/2037613003
Cr-Commit-Position: refs/heads/master@{#397493}
sigbjornf
Adjust representation of liveDocumentSet() to help diagnose instability.
The liveDocumentSet singleton keeps a

 Persistent<HeapHashSet<WeakMember<Document>>,

collection of all the currently live documents. Some crashes are
being reported when this HeapHashSet<>'s weak references are
being processed, indicating that the pointer to the hash table
is misshapen.

To potentially throw some light on how that could come to be,
switch representation to PersistentHeapHashSet<WeakMember<Document>>,
which will keep the hash table wrapper off-heap. That could
help determine if we're dealing with an (Oilpan) heap object
overwrite here.

R=
BUG=611702

Review-Url: https://codereview.chromium.org/2033643003
Cr-Commit-Position: refs/heads/master@{#397436}
sigbjornf
Delay leak reporting until worker in-process proxies have been finalized.
If a document creates a number of workers, terminating these and having
their destruction ripple all the way back to the in-process proxy objects
isn't immediate. But something that needs to complete before the leak
detector can initiate reporting -- an in-process proxy object maintains a
strong reference to the document, and would generate a leak if not
destructed and its garbage having been collected afterwards.

Address the reliability of multi worker shutdown by maintaining a
counter of how many in-process proxy objects are still alive and run
GCs until it drops to zero. Do that at most two times around.

R=haraken,kouhei
BUG=589802, 616714

Review-Url: https://codereview.chromium.org/2026993004
Cr-Commit-Position: refs/heads/master@{#397405}
sigbjornf
Avoid unnecessary uses of GarbageCollectedFinalized<>.
R=
BUG=

Review-Url: https://codereview.chromium.org/2027333003
Cr-Commit-Position: refs/heads/master@{#397402}
mboc
Allow various font weights in gfx. These changes make Chromium's gfx::Font more closely match native font APIs &
capabilities.

BUG=597533
CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel

Review-Url: https://codereview.chromium.org/1819753003
Cr-Commit-Position: refs/heads/master@{#397368}
fs
Remove expectation for svg/W3C-SVG-1.1/struct-frag-02-t.svg
No longer appears to exhibit the behavior described. Give it a try
again.

TBR=davve@opera.com
BUG=518005,463358

Review-Url: https://codereview.chromium.org/2033663002
Cr-Commit-Position: refs/heads/master@{#397342}
sigbjornf
Delay leak reporting until worker in-process proxies have been finalized.
If a document creates a number of workers, terminating these and having
their destruction ripple all the way back to the in-process proxy objects
isn't immediate. But something that needs to complete before the leak
detector can initiate reporting -- an in-process proxy object maintains a
strong reference to the document, and would generate a leak if not
destructed and its garbage having been collected afterwards.

Address the reliability of multi worker shutdown by maintaining a
counter of how many in-process proxy objects are still alive and run
GCs until it drops to zero. Do that at most two times around.

For documents not creating any workers, monitoring this proxy count
avoids having to perform a third GC, something that was conservatively
done before to address worker shutdown (but not reliably.)

R=haraken,kouhei
BUG=589802

Review-Url: https://codereview.chromium.org/2026993004
Cr-Commit-Position: refs/heads/master@{#397333}
fs
Don't use hasAttribute in SVGFilterPrimitiveStandardAttributes
Use isSpecified() to query for existance in setStandardAttributes. This
avoids triggering unnecessary attribute synchronizations.

While here, drop the "double precondition" checking since the only caller
of this function checks this already.

BUG=235256

Review-Url: https://codereview.chromium.org/2026343002
Cr-Commit-Position: refs/heads/master@{#397202}
sigbjornf
Have detached ScriptLoaders detach their PendingScripts.
A ScriptLoader that has become detached from its document will not
execute the script once the script resource has loaded.

If in such a detached state, make sure the ScriptLoader lets go
of its PendingScript promptly.

R=
BUG=

Review-Url: https://codereview.chromium.org/2028613002
Cr-Commit-Position: refs/heads/master@{#397106}
rune
Adjust color for printing list-item markers as we do for text.
BUG=459022

Review-Url: https://codereview.chromium.org/2027653004
Cr-Commit-Position: refs/heads/master@{#397099}
mostynb
remove unused courgette dep from the content layer
Review-Url: https://codereview.chromium.org/2024693002
Cr-Commit-Position: refs/heads/master@{#396968}
sigbjornf
Restore PendingScript prefinalizer.
Under some as yet unknown conditions, PendingScript objects can become garbage
without having been explicitly detached/disposed of first. Hence restore the
prefinalizer that r396656 removed.

R=
BUG=615977

Review-Url: https://codereview.chromium.org/2021773004
Cr-Commit-Position: refs/heads/master@{#396813}
sigbjornf
Address ThreadHeap::willObjectBeLazilySwept() corner case.
If willObjectBeLazilySwept(object) was used when finalizing an object on a
lazily swept page, and |object| happened to reside on the same heap page,
the predicate would return the wrong result if the object had been swept
past (and it had been deemed to be alive.)

Addressed by adding a special case for querying objects on the same page,
making willObjectBeLazilySwept() precisely determine liveness in the
face of lazy sweeping.

R=
BUG=

Review-Url: https://codereview.chromium.org/2015173003
Cr-Commit-Position: refs/heads/master@{#396798}
sigbjornf
Statically disallow delete' over heap collection objects.
Explicitly deleting heap-allocated heap collection objects isn't
allowed nor meaningful, the garbage collector handles their lifetimes
precisely. The implementation of 'delete' over these collection objects
delegate to a allocator-trait class's free() method, so by not providing
it for heap collection objects, compilation fails if 'delete' is ever
attempted instantiated & used over these objects.

As MSVC performs method instantiation more eagerly, we're unable to
statically catch such inappropriate uses of 'delete' at compile time.
Rely on a run-time NOTREACHED() instead.

R=
BUG=

Review-Url: https://codereview.chromium.org/2021103002
Cr-Commit-Position: refs/heads/master@{#396788}
sigbjornf
Make reallocation of large objects reliable.
If ThreadHeap::reallocate<T>() is called with a size that's
equal or greater to the large object threshold (64k, currently),
make sure it ends up being allocated as a large object.

Large objects would previously be attempted allocated on a normal arena,
hoping that the allocation couldn't be serviced by bump allocation, but
fall into an out-of-line allocation.

R=
BUG=

Review-Url: https://codereview.chromium.org/2019273002
Cr-Commit-Position: refs/heads/master@{#396712}
davve
Tune down debugging emergency for clearAnimatedType() a notch
Fixing re-entrancy into the animation code through the garbage
collector is proving to be a non-trivial task. Since we now know more
about the issue, downgrade the RELEASE_ASSERT to a DCHECK to not
affect more users than necessary while getting this bug sorted out.

BUG=613709

Review-Url: https://codereview.chromium.org/2019223003
Cr-Commit-Position: refs/heads/master@{#396705}
fs
Win7 baseline for svg/dynamic-updates/SVGFEBlendElement-dom-in2-attr.html
TBR=wkorman@chromium.org
BUG=614425

Review-Url: https://codereview.chromium.org/2008553009
Cr-Commit-Position: refs/heads/master@{#396702}
tmoniuszko
Fix Visual Studio warning on single file compilation
BUG=615402

Review-Url: https://codereview.chromium.org/2018733003
Cr-Commit-Position: refs/heads/master@{#396693}
sigbjornf
(Heap)TerminatedArrayBuilders are stack allocated.
HeapTerminatedArrayBuilder is currently only safe if kept on the stack,
restrict it accordingly + have it keep a Member<> reference to the
HeapTerminatedArray it is constructing.

R=tkent,haraken
BUG=

Review-Url: https://codereview.chromium.org/2021713002
Cr-Commit-Position: refs/heads/master@{#396677}
sigbjornf
Turn ResourceLoaderSet into a part object.
The abstraction is really a derived HashSet, so make it
a part object.

(Change done in part to diagnose what appears to be a
heap overwrite involving ResourceLoaderSet.)

R=
BUG=615673

Review-Url: https://codereview.chromium.org/2019903002
Cr-Commit-Position: refs/heads/master@{#396657}
sigbjornf
Tidy PendingScript.
No need for a prefinalizer as ScriptLoader is careful to eagerly and
explicitly dispose of PendingScripts already.

Remove unwanted copy constructor; not needed after PendingScript stopped
being a part object.

R=
BUG=

Review-Url: https://codereview.chromium.org/2023683002
Cr-Commit-Position: refs/heads/master@{#396656}
sigbjornf
Revert of Expand WTF::StringView's API to be more like StringPiece. (patchset #12 id:220001 of https://codereview.chromium.org/2007103003/ )
Reason for revert:
Many a heap-buffer-overflow ASan failures,

 https://build.chromium.org/p/chromium.webkit/builders/WebKit%20Linux%20ASAN/builds/24329

Original issue's description:
> Expand WTF::StringView's API to be more like StringPiece.
>
> StringView no longer owns the string passed into it, and can now wrap
> a raw ptr to some characters.
>
> This allows us to leverage the inline strlen optimization where the
> compiler will embed the length of literal strings into the binary. It
> also allows the deletion many overloaded methods that used to take
> an LChar*, UChar* or String and can now just take a StringView instead.
>
> For example the two constructors in TextRun are now a single one that
> takes a StringView. This needed to be done in this patch to avoid
> ambiguous constructors.
>
> Future patches will replace CSSParserString with StringView, and also
> vastly simplify the huge number of overloads on various methods. We'll
> also expand the API surface of StringView to include the many useful
> operations that StringPiece has.
>
> BUG=615174
>
> Committed: https://crrev.com/330deea56e27bc760fa52101040a51428bb7f582
> Cr-Commit-Position: refs/heads/master@{#396493}

TBR=haraken@chromium.org,jyasskin@chromium.org,yutak@chromium.org,esprehn@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=615174

Review-Url: https://codereview.chromium.org/2025503002
Cr-Commit-Position: refs/heads/master@{#396641}
sigbjornf
Revert of Remove StringBuilder::appendLiteral. (patchset #1 id:1 of https://codereview.chromium.org/2017053003/ )
Reason for revert:
Will unfortunately have to back out this one so that the revert https://codereview.chromium.org/2025503002/ will cleanly apply.

(Don't want a tree with this many ASan failures over the long weekend.)

Original issue's description:
> Remove StringBuilder::appendLiteral.
>
> We can just rely on the append(StringView) version instead. This does
> mean we have to take 2 branches in some cases, but it should be
> very minimal and since the code is inline the compiler can also
> likely eliminate it.
>
> BUG=615174
>
> Committed: https://crrev.com/04157e8b89881d033f9eeca4466d9dd0c4e9aaea
> Cr-Commit-Position: refs/heads/master@{#396601}

TBR=haraken@chromium.org,yutak@chromium.org,esprehn@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=615174

Review-Url: https://codereview.chromium.org/2017303002
Cr-Commit-Position: refs/heads/master@{#396640}
sigbjornf
Lock CrossThreadPersistentRegion until end of weak processing.
Allocating & releasing a CrossThread(Weak)Persistent is something that
all threads are currently allowed, even those not attached to Oilpan and
having no heap of their own. It is however not safe for the set of
CrossThreadPersistents to be altered while a garbage collection is
underway.

Not just while the set of registered persistents are being marked and
traced, but up until and including the processing of weak (persistent)
references that happen after marking. If not, a thread would be able to
release a CrossThreadWeakPersistent node which the weak processing separately
maintains a pointer to, clearing & freeing its allocation. Which would
cause havoc, hence we impose a lock on CrossThreadPersistentRegion while
the marking and global weak processing is being performed -- any thread
attempting to create or free cross-thread persistents will be locked out
for the duration.

Following r396432, the use of CrossThreadPersistents from non-attached threads
has been reduced greatly and is slight.

R=
BUG=610477

Review-Url: https://codereview.chromium.org/2013173002
Cr-Commit-Position: refs/heads/master@{#396540}
sigbjornf
Move MainThreadTaskRunner off Oilpan heap to simplify posting.
Having the Document's MainThreadTaskRunner on the Oilpan heap
is preferable for three reasons:

 - Correctly accounts for the MainThreadTaskRunner::m_context
   back reference, by having it be traced Member<>.
 - The MainThreadTaskRunner must not perform tasks when
   it (and the Document) is in the process of being swept.
   By having the posted tasks keep a weak persistent reference
   to MainThreadTaskRunner, the Oilpan GC will ensure that
   the weak references will be cleared once MainThreadTaskRunner
   has been deemed garbage.
 - Similarly for the timer-initiated running of a
   MainThreadTaskRunner's pending tasks. The Timer<> abstraction
   takes care of not firing a timer if its owner is an
   Oilpan heap object that's about to be swept.

But it is not without downsides:

 - A CrossThreadWeakPersistent<> has to be created for every
   task closure posted to the main thread, and copying that
   persistent reference around while creating the closure,
   something that is not without overhead.
 - Threads not attached to Oilpan needing to post tasks to
   the main thread will have to create these persistents also.
   Having that happen when a GC is in progress is hard to support,
   as it risks introducing and removing persistent heap references
   in ways that interfere with the GC processing the heap.

The latter point is sufficient reason not to require the
allocation of CrossThreadWeakPersistent<>s when posting main
thread tasks, hence MainThreadTaskRunner is moved off the
Oilpan heap. By doing so, the benefits above that the Oilpan GC
infrastructure provided "for free" have to be taken care of
manually. C'est la vie.

R=
BUG=610477

Review-Url: https://codereview.chromium.org/1938313003
Cr-Commit-Position: refs/heads/master@{#396432}
rogerj
network_time_tracker: Add missing gyp dependencies
Fixup for https://codereview.chromium.org/1835823002.

That CL only added the required dependencies to BUILD.gn. This CL adds
the dependencies to the gyp target as well.

BUG=589700

Review-Url: https://codereview.chromium.org/2006733007
Cr-Commit-Position: refs/heads/master@{#396420}
sigbjornf
Test that failed sync scripts do not block later ones.
If an async=false script fails to load, it must not block later
sync scripts from executing; add missing test coverage.

R=
BUG=614855, 581425

Review-Url: https://codereview.chromium.org/2010983002
Cr-Commit-Position: refs/heads/master@{#396253}
sigbjornf
Tidy up MediaStreamSource details.
Follow up on r396039, undoing some inconsistencies.

R=
BUG=

Review-Url: https://codereview.chromium.org/2010963002
Cr-Commit-Position: refs/heads/master@{#396231}
mstensho
Don't explicitly initialize LayoutUnit to 0.
The default LayoutUnit() constructor sets it to 0. Explicitly passing 0 means
that LayoutUnit::setValue() will be involved, which performs (in this case:
very pointless) saturation checks.

Review-Url: https://codereview.chromium.org/2015523004
Cr-Commit-Position: refs/heads/master@{#396223}
mstensho
Remove unnecessary inclusions of LayoutObject-derived headers in web/
BUG=614015
TBR=aelias@chromium.org,eae@chromium.org

Review-Url: https://codereview.chromium.org/2016673002
Cr-Commit-Position: refs/heads/master@{#396162}
mstensho
Remove unnecessary includes from Document.h
BUG=614015
TBR=eae@chromium.org

Review-Url: https://codereview.chromium.org/2007343002
Cr-Commit-Position: refs/heads/master@{#396148}
fs
Attempt to deflake svg/custom/animate-initial-pause-unpause.html
The timeout could race with load and that animation timeline start.
Happened at least once in 1000 runs.

Make sure to wait for an animation frame before setting the timer (the
animation timeline has its zero at the time of 'load'.) Also, rewrite
the test to use testharness.js. No failures in 1000 runs.

BUG=350828

Review-Url: https://codereview.chromium.org/2009263002
Cr-Commit-Position: refs/heads/master@{#396147}
mstensho
Remove assorted unnecessary includes in core/paint/
I was mainly looking at inclusions of LayoutObject-derived header files, but
removed some others as well, while I was at it.

BUG=614015
TBR=chrishtr@chromium.org,eae@chromium.org

Review-Url: https://codereview.chromium.org/2010823002
Cr-Commit-Position: refs/heads/master@{#396037}
fs
Rework timeline/frame scheduling logic for SVGImage
This CL provides the SVGImage/SVGImageChromeClient complex with the
capability of suspending and resuming the frame/animation tick.
This gives us the mechanism required to respond to
ImageObserver::shouldPauseAnimation, as well as stopping the animation
timer from running after the animation has been reset (via
Image::resetAnimation.)
In the context of the bug referenced this means an animating SVG image
will no longer cause wakeups because of (unnecessary) timer activity,
saving power (and CPU time.)

Implement willRenderImage() for the CrossfadeSubimageObserverProxy of
CSSCrossfadeValue so that it will not (falsely) claim that it won't
render its images.

While doing this, try to make a decent functional split between SVGImage
and the associated SVGImageChromeClient by putting all timeline/frame tick
related code in the latter, while keeping code related to the actual
animation/document lifecycle update in the former.

BUG=612540

Review-Url: https://codereview.chromium.org/2000483003
Cr-Commit-Position: refs/heads/master@{#396009}
mstensho
Move ScrollBehavior to ScrollTypes.h, so that ComputedStyle.h doesn't need to include ScrollableArea.h.
BUG=614015

Review-Url: https://codereview.chromium.org/2008343002
Cr-Commit-Position: refs/heads/master@{#395994}
mstensho
Remove assorted unnecessary includes in core/layout/
I was mainly looking at inclusions of LayoutObject-derived header files, but
removed some others as well, while I was at it.

BUG=614015
TBR=eae@chromium.org

Review-Url: https://codereview.chromium.org/2015583003
Cr-Commit-Position: refs/heads/master@{#395993}
mstensho
Remove unnecessary inclusions of LayoutObject-derived headers in core/html/
BUG=614015
TBR=eae@chromium.org

Review-Url: https://codereview.chromium.org/2008843004
Cr-Commit-Position: refs/heads/master@{#395984}
mstensho
Enums recently moved to separate files should still be in the blink namespace.
TBR=eae@chromium.org

Review-Url: https://codereview.chromium.org/2007423002
Cr-Commit-Position: refs/heads/master@{#395978}
mstensho
ComputedStyle.h doesn't need CSSPrimitiveValue.h if adjustForAbsoluteZoom(int, float) isn't inline.
BUG=614015

Review-Url: https://codereview.chromium.org/2013833002
Cr-Commit-Position: refs/heads/master@{#395943}
mstensho
Move CSSPropertyID templates instantiations to a separate file.
core/CSSPropertyNames.h is needed a lot of places, but the template part there
was only required at a few places.

BUG=614015

Review-Url: https://codereview.chromium.org/2007073003
Cr-Commit-Position: refs/heads/master@{#395941}
mstensho
Move ContentChangeType enum to a separate file, so that WebGLRenderingContextBase.h doesn't need LayoutBoxModelObject.h
BUG=614015
TBR=bajones@chromium.org
CQ_INCLUDE_TRYBOTS=tryserver.chromium.win:win_optional_gpu_tests_rel;tryserver.chromium.mac:mac_optional_gpu_tests_rel

Review-Url: https://codereview.chromium.org/2013603003
Cr-Commit-Position: refs/heads/master@{#395934}
fs
Update baseline for svg/animations/smil-leak-element-instances.svg
This updates the baseline after the change made by
https://codereview.chromium.org/1992663003 (line number added to error
output.)

TBR=pdr@chromium.org
BUG=356900

Review-Url: https://codereview.chromium.org/2007323002
Cr-Commit-Position: refs/heads/master@{#395925}
mstensho
Remove unnecessary includes of LayoutBlock-derived headers.
BUG=614015
TBR=eae@chromium.org

Review-Url: https://codereview.chromium.org/2007133003
Cr-Commit-Position: refs/heads/master@{#395904}
mstensho
Remove unnecessary includes from ComputedStyle.h and from its includes.
BUG=614015
TBR=eae@chromium.org

Review-Url: https://codereview.chromium.org/2008263002
Cr-Commit-Position: refs/heads/master@{#395889}
mstensho
Remove unnecessary includes from LayoutBox.h, LayoutBoxModelObject.h and LayoutObject.h
Also removed a couple of unnecessary includes from files included via LayoutObject.h

BUG=614015
TBR=eae@chromium.org

Review-Url: https://codereview.chromium.org/2010713002
Cr-Commit-Position: refs/heads/master@{#395877}
mstensho
Move BorderEdgeFlags out of LayoutBoxModelObject.h, so that BoxBorderPainter.h doesn't have to include it.
BUG=614015
TBR=chrishtr@chromium.org,eae@chromium.org

Review-Url: https://codereview.chromium.org/2010613003
Cr-Commit-Position: refs/heads/master@{#395875}
mstensho
Remove unnecessary inclusions of LayoutObject-derived headers in core/frame/
BUG=614015
TBR=dcheng@chromium.org,eae@chromium.org

Review-Url: https://codereview.chromium.org/2011883002
Cr-Commit-Position: refs/heads/master@{#395872}
mstensho
Remove unnecessary inclusions of LayoutObject-derived headers in core/animation/
BUG=614015
TBR=alancutter@chromium.org,eae@chromium.org

Review-Url: https://codereview.chromium.org/2009583003
Cr-Commit-Position: refs/heads/master@{#395871}
mstensho
Remove unnecessary inclusions of LayoutObject-derived headers in modules/accessibility/
BUG=614015
TBR=dmazzoni@chromium.org,eae@chromium.org

Review-Url: https://codereview.chromium.org/2012723003
Cr-Commit-Position: refs/heads/master@{#395870}
mstensho
Remove unnecessary inclusions of LayoutObject-derived headers in core/dom/
BUG=614015
TBR=eae@chromium.org

Review-Url: https://codereview.chromium.org/2008053002
Cr-Commit-Position: refs/heads/master@{#395864}
mstensho
SnapCoordinator.h doesn't need to include LayoutBox.h
BUG=614015
TBR=eae@chromium.org

Review-Url: https://codereview.chromium.org/2010513004
Cr-Commit-Position: refs/heads/master@{#395859}
mstensho
Remove unnecessary inclusions of LayoutObject-derived headers in core/editing/
BUG=614015
TBR=yosin@chromium.org,eae@chromium.org

Review-Url: https://codereview.chromium.org/2009013002
Cr-Commit-Position: refs/heads/master@{#395855}
mstensho
SVGTextContentElement.cpp doesn't need to include LayoutObject.h
BUG=614015
TBR=fs@opera.com,eae@chromium.org

Review-Url: https://codereview.chromium.org/2011603002
Cr-Commit-Position: refs/heads/master@{#395854}
mstensho
HitRegion.cpp doesn't need to include LayoutBoxModelObject.h
BUG=614015
TBR=junov@chromium.org,eae@chromium.org

Review-Url: https://codereview.chromium.org/2010633002
Cr-Commit-Position: refs/heads/master@{#395852}
mstensho
StyleGeneratedImage.cpp doesn't need to include LayoutObject.h
BUG=614015
TBR=eae@chromium.org

Review-Url: https://codereview.chromium.org/2005353002
Cr-Commit-Position: refs/heads/master@{#395851}
mstensho
WebGLRenderingContext.cpp doesn't need to include LayoutBox.h
BUG=614015
TBR=bajones@chromium.org,eae@chromium.org
CQ_INCLUDE_TRYBOTS=tryserver.chromium.win:win_optional_gpu_tests_rel;tryserver.chromium.mac:mac_optional_gpu_tests_rel

Review-Url: https://codereview.chromium.org/2010623002
Cr-Commit-Position: refs/heads/master@{#395846}
mstensho
Eliminate unnecessary includes and pointless forward declarations in LayoutBlock.h
BUG=614015
TBR=eae@chromium.org,szager@chromium.org,wkorman@chromium.org

Review-Url: https://codereview.chromium.org/2010473002
Cr-Commit-Position: refs/heads/master@{#395845}
mstensho
Remove unnecessary inclusions of LayoutObject-derived headers in core/inspector/
BUG=614015
TBR=dgozman@chromium.org,eae@chromium.org

Review-Url: https://codereview.chromium.org/2002153004
Cr-Commit-Position: refs/heads/master@{#395838}
mstensho
Remove unnecessary inclusions of LayoutObject-derived headers in core/animation/
BUG=614015
TBR=alancutter@chromium.org,eae@chromium.org

Review-Url: https://codereview.chromium.org/2006223003
Cr-Commit-Position: refs/heads/master@{#395832}
sigbjornf
Remove unnecessary HelperResultType trait.
Leftover from Oilpan transition.

R=
BUG=

Review-Url: https://codereview.chromium.org/2015453003
Cr-Commit-Position: refs/heads/master@{#395831}
fs
Attempt to deflake svg/text/obb-paintserver.html
Use the ahem.js script to provide the "Ahem" font.

BUG=362501

Review-Url: https://codereview.chromium.org/2005253002
Cr-Commit-Position: refs/heads/master@{#395819}
mstensho
Move TextAutosizer::Cluster::Cluster() implementation to .cpp.
This way we won't have to include LayoutObject.h in the header.

Also need an explicit ~TextAutoSizer() in the .cpp file now, because
ComputedStyle is only forward-declared in the header file, and TextAutoSizer
has a ComputedStyle RefPtr Vector. The need for this was presumably introduced
by https://codereview.chromium.org/1999343002

BUG=614015

Review-Url: https://codereview.chromium.org/2004313005
Cr-Commit-Position: refs/heads/master@{#395773}
mstensho
Move BackgroundBleedAvoidance definition to a separate file.
This way BoxDecorationData.h doesn't need to include LayoutBoxModelObject.h

BUG=614015

Review-Url: https://codereview.chromium.org/2007673004
Cr-Commit-Position: refs/heads/master@{#395745}
mstensho
Add ScrollEnums.h, so that PaintLayerScrollableArea.h doesn't have to include LayoutBox.h
BUG=614015

Review-Url: https://codereview.chromium.org/2008063002
Cr-Commit-Position: refs/heads/master@{#395702}
sigbjornf
Drop unique audio thread ID requirement.
r391848 introduced the requirement that, once set, the audio thread ID
could not be changed. This is proving too burdensome a constraint to
keep, in case audio device threads do end up being stopped and new
ones created.

While r395182 took care of some cases where audio threads end up
stopping, carefully resetting the recordeed audio thread ID, other
cases remain (see associated bug.) While those could be similarly
handled, precisely tracking the current audio thread ID is proving
to not be worth the overhead. Hence, retire the constraint and let
the audio thread processing a render quantum set its thread ID as
part of executing, irrespective of what audio thread executed
the previous quantum.

This effectively reverts r395182.

R=
BUG=613902

Review-Url: https://codereview.chromium.org/2008903002
Cr-Commit-Position: refs/heads/master@{#395682}
mstensho
Move continuation getter and setter down to LayoutBlockFlow.
BUG=302024

Review-Url: https://codereview.chromium.org/1997033002
Cr-Commit-Position: refs/heads/master@{#395681}
sigbjornf
Gracefully handle dirtying of audio nodes while processing current set.
When processing the set of dirty output nodes, nodes further down the
chain may be marked as dirty as a result. Take that into account
when iterating over the current set.

R=hoch
BUG=610643, 613902

Review-Url: https://codereview.chromium.org/2006883002
Cr-Commit-Position: refs/heads/master@{#395643}
mstensho
Only re-use an anonymous block for continuations if it's contained by a block flow.
Be more strict about what kind of anonymous blocks we allow to be re-used for
continuations. The deprecated flex box implementation would actually let items
of a flexbox form a continuation chain. Continuations should only exist in
block formatting contexts.

This was discovered while attempting to land
https://codereview.chromium.org/1997033002/ , which, it turns out, made some
invalid assumptions about objects being block flows.

BUG=302024

Review-Url: https://codereview.chromium.org/2004363003
Cr-Commit-Position: refs/heads/master@{#395614}
mpawlowski
net::AddressList no longer privately inherits from std::vector
The private inheritance was not only against the style guide, it also
forbade anyone from using a standalone std::vector<net::IPEndPoint>,
since the manually defined AddressList ctor/dtor conflicted with
automatically generated ones for vector<T> instantiation.

This should be considered a first step of refactoring that class.
AddressList is neither a list, nor does it store addresses,
it's a vector of endpoints, so the name is misleading. It
should be changed.

The canonical_name_ member is only currently used in
PepperHostResolverMessageFilter, it's probably not the best idea to keep
it around in a generic class like this. Grepping AddressList reveals 500+
instances in the codeebase, and ony one use of canonical_name() outside
of unit tests. Perhaps a pair<AddressList, string> should be used for
that one particular use-case and a bare AddressList without that extra
member should be used everywhere else.

This "conservative" approach, with employing composition instead of
inheritance and delegating method calls was suggested by Nico Weber and
indeed that meant not having to change anything but the header.

Review-Url: https://codereview.chromium.org/2003973002
Cr-Commit-Position: refs/heads/master@{#395605}
fs
Fix typo in svg/dynamic-updates/SVGFEBlendElement-dom-in2-attr.html
This test is not intended to test error-handling, so add the missing '#'.

https://bugs.webkit.org/show_bug.cgi?id=158017

BUG=614306

Review-Url: https://codereview.chromium.org/2004023002
Cr-Commit-Position: refs/heads/master@{#395597}
rune
Rewrote :empty tests to avoid list-item bug.
Run :empty tests as js-tests instead of layout tree dumps. The issue
causing the original test to be flaky is reported as crbug.com/613957.

R=bugsnash@chromium.org
BUG=610180

Review-Url: https://codereview.chromium.org/2006633002
Cr-Commit-Position: refs/heads/master@{#395582}
ckulakowski
Added missing include to profile_helper.h
profile_helper.h uses ProfileMetrics::ProfileDelete defined in
profile_metrics.h so it should be included. Lack of this include
causes compilation error in our product.

BUG=

Review-Url: https://codereview.chromium.org/2002073003
Cr-Commit-Position: refs/heads/master@{#395573}
mstensho
Declare methods defined in LayoutObjectInlines.h as inline.
This way we'll detect a failure to include LayoutObjectInlines.h during
compilation, rather than during linking.

Test case: Remove inclusion of LayoutObjectInlines.h from LayoutBR.cpp.

See https://codereview.chromium.org/2008503003/ - I initially tried
to simply remove LayoutView.h from LayoutBR.cpp's include list, but
got "strange" linker errors in release builds, since the compiler
thought styleRef(bool) was an actual function, and not an inline.

BUG=614015

Review-Url: https://codereview.chromium.org/2007723002
Cr-Commit-Position: refs/heads/master@{#395558}
sigbjornf
Remove unwanted copyToVector() uses.
If a collection is being cleared while creating an iterable
view of its current contents, swap in an empty collection
rather than copy out the current contents into a temporary
vector (by way of copyToVector().)

R=tkent
BUG=

Review-Url: https://codereview.chromium.org/2004343002
Cr-Commit-Position: refs/heads/master@{#395547}
mstensho
Eliminate unnecessary includes of LayoutBlockFlow-derived headers.
BUG=614015

Review-Url: https://codereview.chromium.org/2008503003
Cr-Commit-Position: refs/heads/master@{#395472}
sigbjornf
Revert InstrumentingAgents back to being GarbageCollected<>.
Unnecessary to have this class be finalized, so switch back to
GarbageCollected<>.

R=
BUG=

Review-Url: https://codereview.chromium.org/2003033002
Cr-Commit-Position: refs/heads/master@{#395446}
tsniatowski
Fix a generated header build flake in //media/base/android
BUG=

Review-Url: https://codereview.chromium.org/2004813003
Cr-Commit-Position: refs/heads/master@{#395421}
mstensho
Move LineLayoutState forward declaration to LayoutBlockFlow.
And the friend declaration was unnecessary.

BUG=302024

Review-Url: https://codereview.chromium.org/2007543002
Cr-Commit-Position: refs/heads/master@{#395352}
mstensho
Move LayoutInline forward-declaration to LayoutBlockFlow.
BUG=302024

Review-Url: https://codereview.chromium.org/2005813003
Cr-Commit-Position: refs/heads/master@{#395350}
davve
Apply scoped_ptr -> std::unique_ptr conversion to comment
date_time_picker_client_ is a std::unique_ptr now.

R=avi
NOTRY=true

Review-Url: https://codereview.chromium.org/2003963002
Cr-Commit-Position: refs/heads/master@{#395331}
sigbjornf
Split out Members, Persistents and SelfKeepAlive in separate headers.
Complete the migration of definitions out of Handle.h, adding new
header files for the family of Member<> types that Oilpan supports.
Similarly for Persistent<> and its variants, and the SelfKeepAlive<>
abstraction.

To further prune Handle.h, let go of the unused ScopedDisposal (light)
abstraction.

R=
BUG=

Review-Url: https://codereview.chromium.org/1999363002
Cr-Commit-Position: refs/heads/master@{#395318}
sigbjornf
Revert of MediaCaptureFromElement: add support for audio captureStream(). (patchset #6 id:760001 of https://codereview.chromium.org/1599533003/ )
Reason for revert:
The layout tests added are flakily crashing on various bots,

 https://build.chromium.org/p/chromium.webkit/builders/WebKit%20Linux%20Leak/builds/19683
 https://build.chromium.org/p/chromium.webkit/builders/WebKit%20Linux/builds/65000

Original issue's description:
> MediaCaptureFromElement: add support for audio captureStream().
>
> This CL extends support for capturing the audio part of
> a <video> or <audio> tags ( "capture" here means creating
> a MediaStream out of the HTMLElement)
>
> It introduces an HtmlAudioCapturerSource is-a AudioCapturerSource
> wrapped into an ExternalMediaStreamAudioSource to produce data
> towards the audio track.
>
> HtmlAudioCapturerSource also plugs into the
> WebMediaPlayer's WebAudioSourceProviderImpl to get
> a copy of the audio being rendered.
>
> Unit tests are added, and the existing LayouTests
> revamped (and split into several files for clarity).
>
> BUG=569976, 575492
>
> TEST= run chromium with
>  --enable-blink-features=MediaCaptureFromVideo
>  against e.g.
> https://rawgit.com/Miguelao/demos/master/videoelementcapture.html
>
> Committed: https://crrev.com/77d0d446e58afbf7fab215113fcf9fe9c97e94e3
> Cr-Commit-Position: refs/heads/master@{#395205}

TBR=esprehn@chromium.org,avi@chromium.org,dalecurtis@chromium.org,haraken@chromium.org,miu@chromium.org,mcasas@chromium.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=569976, 575492
NOTRY=true

Review-Url: https://codereview.chromium.org/2007433002
Cr-Commit-Position: refs/heads/master@{#395298}
sigbjornf
Unify and provide one IsGarbageCollectedType<T> implementation.
Phase out the need and use of the older blink::IsGarbageCollected<T>
template, and go with the "marker-based" implementation that WTF
provides. But extended slightly to handle mixins without ambiguity +
it will now insist on T's definition being in scope when used so as to be
able to function reliably.

That latter change requires a few uses of collection types (vectors,
hash maps) to be adjusted so that the full element type of the collection
is in scope when code using the collection is compiled. The reason for
this constraint is that the collection types stringently checks that
Blink GCed objects aren't kept in off-heap collections.

R=
BUG=

Review-Url: https://codereview.chromium.org/1999343002
Cr-Commit-Position: refs/heads/master@{#395287}
sigbjornf
Tidy AutoplayExperimentHelper.
Remove unused and undefineds.

R=
BUG=

Review-Url: https://codereview.chromium.org/2000023002
Cr-Commit-Position: refs/heads/master@{#395286}
tposluszny
Exclude unit tests depending on FFMPEG, when FFMPEG is not used.
BUG=612164

Review-Url: https://codereview.chromium.org/1978263002
Cr-Commit-Position: refs/heads/master@{#395267}
sigbjornf
Clear DeferredTaskHandler's audio thread ID upon the thread going away.
Tracking the thread ID of the (current) audio thread is needed to both
sanity check that code paths and methods are performed on the expected
thread, and ensure safe operation.

In the rare cases where the recorded audio thread is stopped and
terminated by the embedder, first clear out the associated thread
ID. This is needed should a new thread be subsequently created.

R=
BUG=612127

Review-Url: https://codereview.chromium.org/2001533002
Cr-Commit-Position: refs/heads/master@{#395182}
mstensho
Remove LayoutInline::createAnonymous() - no callers
Review-Url: https://codereview.chromium.org/2001723002
Cr-Commit-Position: refs/heads/master@{#395132}
mstensho
LayoutInline continuation unit test.
Review-Url: https://codereview.chromium.org/2001623002
Cr-Commit-Position: refs/heads/master@{#395111}
mstensho
Keep writing-mode in sync between a column spanner and its placeholder.
Don't exclude LayoutMultiColumnSpannerPlaceholder (which is just a LayoutBox)
in propagateStyleToAnonymousChildren(). There was an optional requirement for
the child to be LayoutBlock or better, but there really doesn't seem to be
any point in doing this. We no longer create anonymous LayoutInline objects,
ever, anyway (will file a separate CL to remove some unneeded support code
for that in LayoutInline).

All we need to do now is to steer clear of such anonymous objects that have
custom ways of inheriting style. LayoutFullScreen and
LayoutFullScreenPlaceholder were already taken care of. Now that we always
try to propagate style to non-LayoutBlock objects as well, we need to avoid
LayoutListMarker too.

BUG=608123

Review-Url: https://codereview.chromium.org/2000683002
Cr-Commit-Position: refs/heads/master@{#395107}
mostynb
only use kAccessibilityEnabled inside USE_GCONF ifdef blocks
Followup to:
https://codereview.chromium.org/1990453002
https://codereview.chromium.org/1988213002

BUG=486077

Review-Url: https://codereview.chromium.org/1989233002
Cr-Commit-Position: refs/heads/master@{#395047}
sigbjornf
Sync LeakExpectations.
Retire some entries that are no longer leaking.

R=
BUG=506757, 538524, 546132
NOTRY=true

Review-Url: https://codereview.chromium.org/2001563002
Cr-Commit-Position: refs/heads/master@{#395042}
sigbjornf
Eagerly remove disposed DOMTimers as observers upon completion.
Once the coordinator lets go of a timer, no need to keep it
around as an observer of the ExecutionContext.

The previous, reverted, attempt (r392309) detached the DOMTimer too
soon, causing DOMTimer nesting levels to grow without being reset.

R=haraken
BUG=

Review-Url: https://codereview.chromium.org/1972663002
Cr-Commit-Position: refs/heads/master@{#395012}
sigbjornf
Graceful idle callback cancellation with invalid IDs.
R=
BUG=613073

Review-Url: https://codereview.chromium.org/1989363005
Cr-Commit-Position: refs/heads/master@{#394768}
mharanczyk
Clean up code and logic related to platform accessibility node destruction.
Review-Url: https://codereview.chromium.org/1987213002
Cr-Commit-Position: refs/heads/master@{#394733}
mstensho
Move m_lineBoxes and its getters down to LayoutBlockFlow.
Added SameSizeAsLayoutBlockFlow, since it was missing.

BUG=302024

Review-Url: https://codereview.chromium.org/1993943002
Cr-Commit-Position: refs/heads/master@{#394728}
davve
Lock animated property type of result animation during processing
There seems to be a crash due to the animated property type being
cleared too early. To catch this crash at the point of error, lock the
animated property type of the result animation during processing, and
guard for clearing the animation property while the lock is held (in
clearAnimatedType()).

This can potentially be removed when the source of the bug is found.

BUG=581546

Review-Url: https://codereview.chromium.org/1991513003
Cr-Commit-Position: refs/heads/master@{#394726}
davve
Move clearAnimatedType() up the stack
This is in preparation for locking the animated property type for the
resulting animation while the accumulated animation is computed. There
seems to be a crash due to the animated property type being cleared
too early. To catch this crash at the point of error, the plan is to
lock the animated property type of the result animation during
processing, and guard for clearing the animation property while the
lock is held (in clearAnimatedType()).

For SMILTimeContainer::updateAnimations() to have a chance of
unlocking the animated property _before_ clearAnimatedType() is
called, we need to move the call up to
SMILTimeContainer::updateAnimations(). (The assumption is that moving
the call shouldn't make a difference since
SMILTimeContainer::updateAnimations() is the only call-site for
SVGSMILElement::progress() and the intermediate code shouldn't depend
on the animated property.)

Since the clearing of property type and nullifying of resultElement
seems tied together, grouping them makes sense regardless of the crash
chase.

BUG=581546

Review-Url: https://codereview.chromium.org/1989033003
Cr-Commit-Position: refs/heads/master@{#394698}
mstensho
Move line painting to BlockFlowPainter.
Removed some unnecessary includes, since I had to modify the list of includes
anyway.

Also got rid of LayoutBlock(Flow)::paintFloats() in the process.

BUG=302024

Review-Url: https://codereview.chromium.org/1993713002
Cr-Commit-Position: refs/heads/master@{#394581}
mstensho
Remove LayoutBlock::deleteLineBoxTree().
The one in LayoutBlockFlow is all we need now.

BUG=302024

Review-Url: https://codereview.chromium.org/1991763002
Cr-Commit-Position: refs/heads/master@{#394467}
mstensho
Move dirtyLinesFromChangedChild() to LayoutBlockFlow.
BUG=302024

Review-Url: https://codereview.chromium.org/1987233002
Cr-Commit-Position: refs/heads/master@{#394463}
fs
Use SVGInlineTextMetricsIterator in updateLayoutAttributes
This reuses a pre-existing piece to do the "dual offset/variable"
iteration, hiding (and sharing) the complexity.

BUG=607906

Review-Url: https://codereview.chromium.org/1988063002
Cr-Commit-Position: refs/heads/master@{#394412}
sigbjornf
Limit WTF::getPtr() to native pointer types.
Remove Member<> and Persistent<> specializations, the generated bindings
code (only real user of getPtr()) use it to coerce references into
pointers only, nothing else.

R=haraken
BUG=

Review-Url: https://codereview.chromium.org/1989153003
Cr-Commit-Position: refs/heads/master@{#394371}
rune
Rename Pending to PendingScriptBlocking.
Pending sheets in StyleEngine are either script blocking or render
blocking (when they are render blocking they are simultaneously script
blocking). Rename methods and members to reflect that pending sheets are
script blocking where appropriate.

No functional changes.

R=pmeenan@chromium.org,esprehn@chromium.org
BUG=481122

Review-Url: https://codereview.chromium.org/1978083002
Cr-Commit-Position: refs/heads/master@{#394364}
mharanczyk
Destory base class when win platform accessibily node is destroyed.
Review-Url: https://codereview.chromium.org/1978223002
Cr-Commit-Position: refs/heads/master@{#394219}
mstensho
Move inlineElementContinuation() to LayoutBlockFlow.
BUG=302024

Review-Url: https://codereview.chromium.org/1974323002
Cr-Commit-Position: refs/heads/master@{#394167}
fs
Reland of Simplify LoadableTextTrack::trackElementIndex
Count preceding sibling <track> elements in a more straight-forward way.

Also clean-up null-checks of m_trackElement while here (should be non-
null on construction and then keeps a strong reference.)

Review-Url: https://codereview.chromium.org/1980013002
Cr-Commit-Position: refs/heads/master@{#394166}
fs
Remove mode-transition in TextTrack::setKind
This mode-transition gives rise to inconsistent state-updates, and isn't
specified [1]. Remove it, and with it the setKind override.

Also move all the mutators to TextTrack since that's the only type of
track where these fields can be mutated (and only if sourced via a
HTMLTrackElement.)

[1] https://html.spec.whatwg.org/multipage/embedded-content.html#attr-track-kind

BUG=460923,608772

Review-Url: https://codereview.chromium.org/1984663002
Cr-Commit-Position: refs/heads/master@{#394122}
tsniatowski
Use clang "--target=x" rather than "-target x" for icecc
Icecc is confused by the two-argument -target form and ends up compiling
everything locally. It works with the equivalent single argument form, so prefer
this in GN compiler configs.

Previously done just for android in https://codereview.chromium.org/1871813003

Review-Url: https://codereview.chromium.org/1977733003
Cr-Commit-Position: refs/heads/master@{#394065}
mstensho
Move line/continuation specific parts of willBeDestroyed() into LayoutBlockFlow.
Also moved beingDestroyed() down to LayoutBlockFlow, since it was no longer
called on other types.

Note that dirtyLinesFromChangedChild() is now called regardless of the object
having line boxes or not at the time of destruction. This should be safer and
more correct. If we're an inline-block, for instance, we definitely want to
notify our parent that we're going away, since that will affect the line box
tree in the parent. I assume that the reason why this hasn't been a problem
(use-after-free crashes, typically), is that the condition that previously
could block this from happening is never true. Looks like line boxes are always
deleted before we reach willBeDestroyed(). Added a TODO to investigate further.
We hopefully don't need that code.

BUG=302024

Review-Url: https://codereview.chromium.org/1977083002
Cr-Commit-Position: refs/heads/master@{#393939}
fs
Revert of Simplify LoadableTextTrack::trackElementIndex (patchset #1 id:1 of https://codereview.chromium.org/1980013002/ )
Reason for revert:
Seems "WebKit Win Builder (dbg)" didn't approve:

e:\b\build\slave\webkit-win-latest-dbg\build\src\third_party\webkit\source\core\html\track\loadabletexttrack.cpp(70) : warning C4706: assignment within conditional expression

Original issue's description:
> Simplify LoadableTextTrack::trackElementIndex
>
> Count preceding sibling <track> elements in a more straight-forward way.
>
> Also clean-up null-checks of m_trackElement while here (should be non-
> null on construction and then keeps a strong reference.)
>
> Committed: https://crrev.com/0537a6d11bf2ebefcf90fbfec7081e37ef78081a
> Cr-Commit-Position: refs/heads/master@{#393825}

TBR=davve@opera.com
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review-Url: https://codereview.chromium.org/1985643003
Cr-Commit-Position: refs/heads/master@{#393828}
fs
Simplify LoadableTextTrack::trackElementIndex
Count preceding sibling <track> elements in a more straight-forward way.

Also clean-up null-checks of m_trackElement while here (should be non-
null on construction and then keeps a strong reference.)

Review-Url: https://codereview.chromium.org/1980013002
Cr-Commit-Position: refs/heads/master@{#393825}
davve
Remove workaround for multiple svg onload events
The bug referred to has been fixed. Let's see if the flakiness stays
away when removing the workaround.

BUG=372946

Review-Url: https://codereview.chromium.org/1983813002
Cr-Commit-Position: refs/heads/master@{#393818}
fs
Add TextTrack::isVisualKind helper
It's quite common to check for a text track being one of the kinds
'subtitles' or 'captions'. Add a helper to TextTrack and use that
in a bunch of places to simplify code.
Also convert one open-coded version of TextTrack::canBeRendered() with a
call to that method.

Review-Url: https://codereview.chromium.org/1976183002
Cr-Commit-Position: refs/heads/master@{#393814}
the_jk
Make SQL in DownloadDatabase SQLite pre 3.8.3 compatible
printf() was added in SQLite 3.8.3 so need to use other older
methods to generate the GUID.
third_party/sqlite/sqlite.gyp lists 3.6.1 as required version at the
time of writing

BUG=606772

Review-Url: https://codereview.chromium.org/1897153005
Cr-Commit-Position: refs/heads/master@{#393813}
fs
Clean up HTMLTrackElement.kind invalid/missing value default handling
Get rid of the isValidKind(...) and invalidValueDefaultKind() virtual
methods on TrackBase and do any required checking "up front" instead
as required. This should present less surprises and work in a less
side-effectful way.

Also start setting the 'kind' directly in the constructor rather than
invoking setKind() in (all) the constructor body (bodies).
Drop some redundant parenthesis and fix some obviously "wrong" names
in TextTrack.cpp.

BUG=608772

Review-Url: https://codereview.chromium.org/1973343002
Cr-Commit-Position: refs/heads/master@{#393812}
sigbjornf
With LSan, run initial heap cleaning GCs during shutdown.
Clean out as much as garbage as possible before releasing a
thread's static persistents, in preparation for LSan leak
detection. By doing so, finalizers for itinerant garbage
may access these static local persistents without restrictions,
_but_ any object kept alive by a static persistent may
not when the second phase of cleaning GCs are performed.

As collectAllGarbage() stops on reaching a fixed point,
extra overhead of having to perform GCs before and after
the static persistents isn't a concern.

R=
BUG=611333

Review-Url: https://codereview.chromium.org/1977343002
Cr-Commit-Position: refs/heads/master@{#393809}
kolczyk
Fix a typo in the gn gen help for QtCreator generator (introduced in https://codereview.chromium.org/1883093002/)
BUG=

Review-Url: https://codereview.chromium.org/1979813002
Cr-Commit-Position: refs/heads/master@{#393795}
sigbjornf
Remove C::swap(C*) where C = Hash{Map,Set}<T>.
Remove the swap() method over non-reference hash sets and
map arguments, along with their curious OtherType indirection,
the methods aren't of real use.

R=
BUG=

Review-Url: https://codereview.chromium.org/1979843002
Cr-Commit-Position: refs/heads/master@{#393770}
sigbjornf
Simplify HeapVectorBacking<> usage.
Reorder HeapAllocator.h declarations to let the compiler handle
supplying the default trait argument to HeapVectorBacking<>.

R=
BUG=

Review-Url: https://codereview.chromium.org/1985473002
Cr-Commit-Position: refs/heads/master@{#393749}
mstensho
LayoutFullScreen::m_placeholder is LayoutBlockFlow.
The code calls m_placeholder->beingDestroyed(), which is a method that
I believe belongs down in LayoutBlockFlow, not in LayoutBlock.

No need for the setter, BTW, so replaced it with resetPlaceholder().

BUG=302024

Review-Url: https://codereview.chromium.org/1975163002
Cr-Commit-Position: refs/heads/master@{#393545}
mstensho
Move makeChildrenNonInline() and childBecameNonInline() to LayoutBlockFlow.
BUG=302024

Review-Url: https://codereview.chromium.org/1977823002
Cr-Commit-Position: refs/heads/master@{#393543}
mstensho
Move collapseAnonymousBlockChild() to LayoutBlockFlow, and make it non-static.
Some cleanup in collapseLoneAnonymousBlockChild(). Specify a parent rather than
working it out on our own. Both callers have the parent readily available
anyway.

Remove canCollapseAnonymousBlockChild(), since nobody calls it anymore.

BUG=302024

Review-Url: https://codereview.chromium.org/1980473002
Cr-Commit-Position: refs/heads/master@{#393542}
kolczyk
Add support for generating QtCreator projects from GN.
This adds a new command line argument "--ide=" value to "gn gen"
which, when specified, generates a QtCreator project.

QtCreator is a quite powerful general-purpose (despite Qt in the name)
IDE when developing on Linux system with code completion and navigation.

Some interest in it has been demonstrated in the following thread:
https://groups.google.com/a/chromium.org/forum/#!topic/gn-dev/9U4_ytjrah8

BUG=

Review-Url: https://codereview.chromium.org/1883093002
Cr-Commit-Position: refs/heads/master@{#393514}
fs
Minor SVGFilterPainter cleanups
Simplify GraphicsContext handling in SVGFilterRecordingContext by
getting rid of the paintingContext() calls, since we'll promptly replace
that GraphicsContext with the recording context anyway. Get rid of the
|context| local and use m_context instead.

Drop the LayoutObject argument to paintFilteredContent(...) since it
isn't used.

Review-Url: https://codereview.chromium.org/1977793003
Cr-Commit-Position: refs/heads/master@{#393511}
sigbjornf
Avoid race on uninitializing CrossThreadPersistent nodes.
R=
BUG=611593, 611594

Review-Url: https://codereview.chromium.org/1974233002
Cr-Commit-Position: refs/heads/master@{#393488}
mstensho
Move makeChildrenInlineIfPossible to LayoutBlockFlow
It's now possible to move makeChildrenInlineIfPossible() to LayoutBlockFlow.

BUG=302024

Review-Url: https://codereview.chromium.org/1969203003
Cr-Commit-Position: refs/heads/master@{#393390}
mstensho
Don't use canCollapseAnonymousBlockChild() to determine whether to truncate text.
Doing that happened to do exactly what we wanted, but that seems like a rather
haphazard way of determining it.

We want to truncate text for block containers [1]. That's LayoutBlockFlow.
Additionally, in Blink, HTML button is implemented using LayoutFlexibleBox
(although the web insists that it too is a block container).

[1] https://www.w3.org/TR/css-ui-3/#propdef-text-overflow

Rather than manually testing for isLayoutBlockFlow() || isLayoutButton()
directly when deciding to truncate or not, I went and hijacked
canHaveFirstLineOrFirstLetterStyle(), and renamed it to behavesLikeBlockContainer().

Review-Url: https://codereview.chromium.org/1970183002
Cr-Commit-Position: refs/heads/master@{#393354}
mstensho
Move some reparenting and anonymous block merge functionality down to LayoutBlockFlow.
BUG=302024

Review-Url: https://codereview.chromium.org/1968413002
Cr-Commit-Position: refs/heads/master@{#393350}
fs
Don't store an SkPicture in the SourceGraphic FilterEffect
Instead of storing the SkPicture in the SourceGraphic FilterEffect, just
create a filter and pre-populate all the image filter "slots" when we've
recorded the content that should be filtered.
This avoids keeping an explicit reference to the SkPicture, and thus
avoids keeping this object alive when the Filter and it's associated
filter-chain is in limbo waiting for a Oilpan GC sweep.

BUG=610158

Review-Url: https://codereview.chromium.org/1961083006
Cr-Commit-Position: refs/heads/master@{#393280}
mstensho
LayoutBox (not LayoutBlock) is the common base for floats and out-of-flow objects.
We need to react on going out-of-flow or becoming floated in
LayoutBox::styleDidChange(), or we'll misbehave if the object in question is
e.g. an image.

Review-Url: https://codereview.chromium.org/1973843003
Cr-Commit-Position: refs/heads/master@{#393270}
mstensho
LayoutBlock::removeChild() override no longer needed.
It was all about anonymous block merging and collapsing, which is a thing that
only LayoutBlockFlow needs to do. So move everything there.

BUG=302024

Review-Url: https://codereview.chromium.org/1968403002
Cr-Commit-Position: refs/heads/master@{#393267}
mstensho
Move block container specific parts of addChild() to LayoutBlockFlow.
LayoutBlock still needs some basic support for anonymous block insertion, for
flexbox, and possibly others.

BUG=302024

Review-Url: https://codereview.chromium.org/1974753002
Cr-Commit-Position: refs/heads/master@{#393266}
rune
Unreachable code fixes in SelectorChecker.
Unknown selectors and pseudo page selectors should be dropped at parse
time for element selectors. Also did some simplifications for
ASSERT_NOT_REACHED code and consistently fail matching for such code.

R=timloh@chromium.org,rob.buis@samsung.com

Review-Url: https://codereview.chromium.org/1969203002
Cr-Commit-Position: refs/heads/master@{#393216}
sigbjornf
Remove dated NavigationScheduler TODO.
Task closures created by CancellableTaskFactory keep a weak reference back
to their owning GCed object, allowing the object to be garbage collected
without the task keeping it alive.

Retire the TODO in the NavigationScheduler suggesting otherwise along with
adding a unit test to verify the weakness property.

R=
BUG=585328

Review-Url: https://codereview.chromium.org/1976433003
Cr-Commit-Position: refs/heads/master@{#393210}
mstensho
Helper method for non-direct beforeChild in LayoutBlock::addChild().
A lot of what's in LayoutBlock::addChild() will eventually be moved down to
LayoutBlockFlow::addChild(), but both classes are expected to handle insertion
of children before a non-direct beforeChild.

One difference, compared to how it used to work when all of this was inside
addChild(), is that it's no longer allowed to continue if we fail to find a
suitable direct beforeChild replacement. Will always RELEASE_ASSERT() in such
situations now.

BUG=302024

Review-Url: https://codereview.chromium.org/1964203004
Cr-Commit-Position: refs/heads/master@{#393201}
mstensho
Helper for interesting things to do when a block becomes a float or out-of-flow.
Also added some requirements for the blocks involved to be LayoutBlockFlow. We
don't want to touch anything else.

BUG=302024

Review-Url: https://codereview.chromium.org/1966223002
Cr-Commit-Position: refs/heads/master@{#393121}
rune
Multiple :hover/:active incorrectly matching in quirks mode.
:hover and :active should only match links when not accompanied by
other simple selectors in quirks mode. We failed to adhere for
combinations of :hover and :active. Instead of just checking there is
either a selector preceding or following in the compound, check if
there is a selector preceding or a selector following in the compound
which is neither :hover nor :active.

R=rob.buis@samsung.com
BUG=611090

Review-Url: https://codereview.chromium.org/1972713002
Cr-Commit-Position: refs/heads/master@{#393090}
mstensho
Move updateDragState() override to LayoutBlockFlow.
Only continuations stuff there.

BUG=302024

Review-Url: https://codereview.chromium.org/1969103002
Cr-Commit-Position: refs/heads/master@{#393071}
mstensho
Move hoverAncestor() override to LayoutBlockFlow.
Only continuations stuff going on there.

BUG=302024

Review-Url: https://codereview.chromium.org/1970653004
Cr-Commit-Position: refs/heads/master@{#392963}
mstensho
Turn mergeContiguousAnonymousBlocks() into a proper method.
Some clean-up on the way, such as refactoring
canMergeContiguousAnonymousBlocks() into a function that deals with one object
at a time.

BUG=302024

Review-Url: https://codereview.chromium.org/1966153002
Cr-Commit-Position: refs/heads/master@{#392942}
sigbjornf
Simplify SVGSMILElement::notifyDependentsIntervalChanged loop breaker.
To catch out recursive notifications, notifyDependentsIntervalChanged()
keeps track of the SVGSMILElements that are on the stack and being
notified, so as to bail early in case of loops.

There's no need for that set of SVGSMILElements to be recorded using
a persistent static local as the objects are stack reachable should
a conservative GC be needed, so an 'ordinary' hash set will do.

Not using a persistent reference also addresses a bad interaction with
LSan (Blink has to release all static persistents before shutting
down to prevent false leaks w/ LSan enabled), but SVGImages containing
animations may end up in this code path as part of an image resource
being finalized. Which would then encounter an empty persistent
static reference and fail (see associated bug and stack trace.)

R=haraken
BUG=610855

Review-Url: https://codereview.chromium.org/1968683003
Cr-Commit-Position: refs/heads/master@{#392919}
sigbjornf
Move tracking of ActiveScriptWrappables to V8PerIsolateData.
R=
BUG=

Review-Url: https://codereview.chromium.org/1966743004
Cr-Commit-Position: refs/heads/master@{#392916}
fs
Change "invalid value default" for HTMLTrackElement 'kind' to "metadata"
Rename TrackBase::defaultKind() to invalidValueDefaultKind() to better
reflect its semantics. Also make sure that the "missing value default"
is set appropriately (in TextTrack constructors and on removal in
HTMLTrackElement parseAttribute) now that it differs from the "invalid
value default".

The test media/track/track-kind.html is adjusted so that it doesn't
check if a cue is displayed, since that depends on unspecified behavior
wrt how 'mode' changes when 'kind' does. (See comment in
TextTrack::setKind.)

The WPT tests will eventually get updated via Mozilla's automatic sync,
so adding expectations for now.
(Ref: https://bugzilla.mozilla.org/show_bug.cgi?id=1269712)

Intent: https://groups.google.com/a/chromium.org/d/topic/blink-dev/6-oPQN4lZ2o/discussion

https://github.com/whatwg/html/issues/293
https://html.spec.whatwg.org/multipage/embedded-content.html#attr-track-kind

BUG=608772

Review-Url: https://codereview.chromium.org/1947033002
Cr-Commit-Position: refs/heads/master@{#392911}
sigbjornf
Revert of Eagerly remove disposed DOMTimers as observers. (patchset #1 id:1 of https://codereview.chromium.org/1959013002/ )
Reason for revert:
Caused issue 610606, reverting to locally investigate how/why.

Original issue's description:
> Eagerly remove disposed DOMTimers as observers.
>
> Once the coordinator lets go of a timer, no need to keep it
> around as an observer of the ExecutionContext.
>
> R=
> BUG=
>
> Committed: https://crrev.com/0a297738301705d02f57968334bd6f7c7dc95f4c
> Cr-Commit-Position: refs/heads/master@{#392309}

TBR=oilpan-reviews@chromium.org,keishi@chromium.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=

Review-Url: https://codereview.chromium.org/1968963002
Cr-Commit-Position: refs/heads/master@{#392901}
fs
Use the right TextRun length when checking for surrogate pairs
The isValidSurrogatePair helper in LayoutSVGInlineText.cpp operates on a
TextRun and an index, and checks if the character at the index is part
of a valid surrogate pair.
To check the trailing character, the next index is checked against the
length of the TextRun (to see if the character exists).
The TextRun used is a "sub run" of the entire text node, which means
that the operator[] implementation expects accesses to be within the sub
run rather than the "full run".
Since this function is always used for runs that are sub runs, it should
use TextRun::length() rather than TextRun::charactersLength() to stay
consistent with the iteration and the code using it.

BUG=610641

Review-Url: https://codereview.chromium.org/1961953004
Cr-Commit-Position: refs/heads/master@{#392880}
rune
Corrected assert for cacheable stylesheets.
We have two different caches for StyleSheetContents. One process-wide
for resources, and one document-wide for parsed text of style elements.
The cacheability differ between the two caches since for instance
sheets with @media rules may be shared between elements in the same
document as the media query evaluation will be the same, while we can't
do that for sheets cached across documents as they may have different
viewports.

The assert in CSSStyleSheet::willMutateRules triggered because we
checked for the resource cacheability of a style element sheet which
was shared even though it had a media query. Renamed the cacheability
method to make clear which cache we're referring to.

Removed the ASSERT in StyleSheetContents::copy(), as that really didn't
have anything to do with copy, only the fact that it is only called
from where cached stylesheets are cloned for rule mutation. The ASSERT
in willMutateRules right before we copy() should suffice.

R=timloh@chromium.org
BUG=551674

Review-Url: https://codereview.chromium.org/1961173003
Cr-Commit-Position: refs/heads/master@{#392859}
mstensho
Only LayoutInline needs to implement addChildIgnoringContinuation().
LayoutTable had to do it because LayoutBlock did it. But LayoutBlock really
doesn't have to do it anymore. This was probably some relic from the old
multicol implementation, which used *block* continuations to implement column
spanners. We no longer need or support block continuations.

Review-Url: https://codereview.chromium.org/1967823002
Cr-Commit-Position: refs/heads/master@{#392856}
sigbjornf
Remove redundant GC mixin instance decl for AudioBufferSourceNode.
R=
BUG=

Review-Url: https://codereview.chromium.org/1969453003
Cr-Commit-Position: refs/heads/master@{#392747}
mstensho
Move nodeForHitTest() to LayoutBlockFlow.
LayoutBlock shouldn't have to deal with continuations.

BUG=302024

Review-Url: https://codereview.chromium.org/1966713002
Cr-Commit-Position: refs/heads/master@{#392742}
mstensho
Move continuation and line box specific stuff to LayoutBlockFlow::removeChild().
BUG=302024

Review-Url: https://codereview.chromium.org/1970453002
Cr-Commit-Position: refs/heads/master@{#392730}
sigbjornf
Prevent audio thread access to finished, non-active AudioNodes.
Follow up r392110 and have the audio thread skip over m_activeSourceNodes
nodes it has already deemed to be finished & removable by the main thread.
Accessing these cannot be safely done.

R=
BUG=610643

Review-Url: https://codereview.chromium.org/1958333006
Cr-Commit-Position: refs/heads/master@{#392720}
mstensho
Turn adjacent out-of-flow sibling reparenters into proper methods.
This will make it possible to gradually move callers of these methods (and the
methods themselves) down to LayoutBlockFlow, which is where they belong, since
only LayoutBlockFlow may parent floats and out-of-flow objects.

BUG=302024

Review-Url: https://codereview.chromium.org/1964983002
Cr-Commit-Position: refs/heads/master@{#392696}
mstensho
Move invalidateDisplayItemClients() override into LayoutBlockFlow and eat the static helper.
It was only dealing with continuations, and that doesn't belong in LayoutBlock.

BUG=302024

Review-Url: https://codereview.chromium.org/1964083002
Cr-Commit-Position: refs/heads/master@{#392690}
sigbjornf
Handle overlapping CrossThreadPersistent<> releases.
When a CrossThreadPersistent<> is cleared, the associated PersistentNode is
freed. In the case when multiple threads attempt to do such clearing at
the same time, the freeing protocol ensured atomicity but failed to check
if the PersistentNode had been freed already.

This follows up on the freeing of PersistentNodes that r392263 added
for CrossThreadPersistent<>s.

R=haraken
BUG=

Review-Url: https://codereview.chromium.org/1964013002
Cr-Commit-Position: refs/heads/master@{#392689}
mstensho
Move absoluteRects() and absoluteQuads() overrides to LayoutBlockFlow.
They only deal with continuations.

BUG=302024

Review-Url: https://codereview.chromium.org/1968553002
Cr-Commit-Position: refs/heads/master@{#392685}
mostynb
IWYU: errno.h in third_party/webrtc_overrides
Without this, some toolchains may fail to build
third_party/webrtc/base/checks.cc because errno is undefined.

BUG=468375

Review-Url: https://codereview.chromium.org/1967643002
Cr-Commit-Position: refs/heads/master@{#392677}
mstensho
Adjust constness to avoid const_cast.
Review-Url: https://codereview.chromium.org/1961343002
Cr-Commit-Position: refs/heads/master@{#392642}
sigbjornf
Drop unnecessary uses of GarbageCollectedFinalized<>.
Objects with Member<> fields can derive from the non-finalized
GarbageCollected<> instead.

R=
BUG=389343

Review-Url: https://codereview.chromium.org/1961173004
Cr-Commit-Position: refs/heads/master@{#392641}
mstensho
nodeAtPoint(): Perform the early-check EARLY.
Hit-testing overflow controls before checking if we need to do anything at all
affected performance, so just remove the LayoutBlock override for nodeAtPoint()
and hit test overflow controls there, but do so AFTER we have made sure that
the point is within bounds.

Fixes 15% performance regression for
PerformanceTests/Events/hit-test-lots-of-layers.html

BUG=610250

Review-Url: https://codereview.chromium.org/1960373002
Cr-Commit-Position: refs/heads/master@{#392626}
mstensho
Set orphans and widows to 1 in lots-of-text-balanced multicol performance test.
https://codereview.chromium.org/1909233002 changed the initial values for
orphans and widows to match the spec. This could very well affect performance
slightly, although I cannot reproduce it myself. Speculatively set
orphans/widows to 1 and see if that helps. Add a new test that uses higher
values for orphans and widows, so that we still get to test that too.

BUG=606262

Review-Url: https://codereview.chromium.org/1964473003
Cr-Commit-Position: refs/heads/master@{#392625}
mstensho
Assert that continuations be either LayoutBlockFlow or LayoutInline.
Exploring the possibility of moving all continuation handling from LayoutBlock
down to LayoutBlockFlow.

BUG=302024

Review-Url: https://codereview.chromium.org/1958413003
Cr-Commit-Position: refs/heads/master@{#392621}
sigbjornf
Make ActiveScriptWrappable the GC mixin it is.
By switching it to derive from GarbageCollectedMixin, and
have the per-thread set of live wrappables keep WeakMember<>
references, the Oilpan GC takes care of pruning the live
set as part of its weak processing.

R=
BUG=

Review-Url: https://codereview.chromium.org/1962113003
Cr-Commit-Position: refs/heads/master@{#392618}
mstensho
Relayout an object that becomes a spanner.
It may be possible to collapse margins through a zero-height regular block, but
if it is turned into a spanner, this is no longer possible, because it then
becomes a BFC root.

An object that becomes a spanner also gets a new containing block, which may
affect its size.

In other words, there are good reasons to make sure that objects that become
spanners get relaid out.

Note that we already had code in place (in willBeRemovedFromTree()) that
scheduled for relayout in the opposite case, i.e. when an object ceased to be a
spanner.

BUG=610033

Review-Url: https://codereview.chromium.org/1962623002
Cr-Commit-Position: refs/heads/master@{#392438}
mstensho
Remove ColumnFill runtime setting.
It's been enabled by default for almost three months now.

BUG=492297

Review-Url: https://codereview.chromium.org/1956373002
Cr-Commit-Position: refs/heads/master@{#392389}
sigbjornf
Remove older and unused ScriptState methods.
R=
BUG=

Review-Url: https://codereview.chromium.org/1958963002
Cr-Commit-Position: refs/heads/master@{#392316}
mstensho
Move hit testing of lines and floats to LayoutBlockFlow.
BUG=302024

Review-Url: https://codereview.chromium.org/1956033002
Cr-Commit-Position: refs/heads/master@{#392311}
sigbjornf
Eagerly remove disposed DOMTimers as observers.
Once the coordinator lets go of a timer, no need to keep it
around as an observer of the ExecutionContext.

R=
BUG=

Review-Url: https://codereview.chromium.org/1959013002
Cr-Commit-Position: refs/heads/master@{#392309}
sigbjornf
Trim ResourceTimingInfoMap of non-relevant entries.
If the resource fetch fails or is otherwise uninteresting to report a
ResourceTimingInfo for, remove it (also) from the set of pending
map of such ResourceTimingInfos.

R=
BUG=608543

Review-Url: https://codereview.chromium.org/1955243002
Cr-Commit-Position: refs/heads/master@{#392307}
sigbjornf
Upon clearing, release PersistentNode of cross-thread-persistent also.
Persistent<>s will only allocate an associated PersistentNode when the
heap reference is non-null. And, dually, free the PersistentNode
when the reference is cleared out and set to null.

Extend that freeing of a PersistentNode upon clearing to also apply to
CrossThreadPersistent<>s, making the behavior and lifetimes of
PersistentNodes consistent across both variants of persistent references.

R=haraken
BUG=483380
NOTRY=true

Review-Url: https://codereview.chromium.org/1962513002
Cr-Commit-Position: refs/heads/master@{#392287}
sigbjornf
Accurately measure current persistent count while running termination GC.
Follow up on r392263 and have it really behave as wanted -- when measuring
|currentCount|, the live persistent count, while cleaning out the worker's
heap in ThreadState::runTerminationGC(), we need to initially sample it
_after_ having released thread-local static persistents. Otherwise the count
would be overestimated first time around, which could lead to prematurely
reaching a fixed point. And at a fixed point that would falsely indicate
that persistents were leaking.

R=haraken
BUG=
NOTRY=true

Review-Url: https://codereview.chromium.org/1963453002
Cr-Commit-Position: refs/heads/master@{#392272}
sigbjornf
Cleanly release thread-local static persistents during termination GCs.
Should worker termination GCs instantiate static persistent singletons
while running finalizers, ensure that these are released.

Also, for PersistentHeapCollectionBase<>s registered as such thread-local
singletons, clear out their collection backing store along with the
persistent reference when they are released. The contents and backing
store of the collection should not be accessible after such a forceful
release operation.

R=haraken
BUG=
NOTRY=true

Review-Url: https://codereview.chromium.org/1957523007
Cr-Commit-Position: refs/heads/master@{#392263}
mstensho
Move line-specific code into LayoutBlockFlow::positionForPoint().
BUG=302024

Review-Url: https://codereview.chromium.org/1957633003
Cr-Commit-Position: refs/heads/master@{#392251}
mstensho
Move line-specific parts of addOutlineRects() into LayoutBlockFlow.
BUG=302024

Review-Url: https://codereview.chromium.org/1959623002
Cr-Commit-Position: refs/heads/master@{#392137}
mstensho
Less duplicated code between nodeAtPoint() in LayoutBox and LayoutBlock.
This is a preparatory patch for moving line/float-specific parts of
LayoutBlock::hitTestChildren() into LayoutBlockFlow.

BUG=302024

Review-Url: https://codereview.chromium.org/1957673002
Cr-Commit-Position: refs/heads/master@{#392116}
mstensho
LineBreaker doesn't need LayoutBlock(Flow) as a friend.
Review-Url: https://codereview.chromium.org/1956433003
Cr-Commit-Position: refs/heads/master@{#392115}
sigbjornf
Update AbstractAudioContext::m_activeSourceNodes on the main thread only.
Avoid mutating m_activeSourceNodes on the audio thread, leave the
main thread in control of that heap object.

R=haraken,rtoy
BUG=581660

Review-Url: https://codereview.chromium.org/1958583002
Cr-Commit-Position: refs/heads/master@{#392110}
sigbjornf
Initialize DeferredTaskHandler's audio thread ID once.
Avoid repeatedly recording the audio thread's ID, along with assertedly
verifying that this is done off the main thread.

R=
BUG=590108

Review-Url: https://codereview.chromium.org/1954663002
Cr-Commit-Position: refs/heads/master@{#391848}
mstensho
Move showLineTreeAndMark() to LayoutBlockFlow.
BUG=302024

Review-Url: https://codereview.chromium.org/1952763002
Cr-Commit-Position: refs/heads/master@{#391757}
mstensho
Move parts of baseline calculation over to LayoutBlockFlow.
LayoutBlock shouldn't deal with line boxes.

BUG=302024

Review-Url: https://codereview.chromium.org/1952753002
Cr-Commit-Position: refs/heads/master@{#391663}
mstensho
Move computeSelfHitTestRects() to LayoutBlockFlow.
BUG=302024

Review-Url: https://codereview.chromium.org/1946343002
Cr-Commit-Position: refs/heads/master@{#391639}
mstensho
Move LayoutDeprecatedFlexibleBox-specific line handling.
This is sort-of exotic functionality, in that it checks if the blocks have
visibility:visible and auto height, so it fits better together with the
LayoutDeprecatedFlexibleBox implementation. Nobody else needs this.

The pagination code also needs to count lines, though, so I kept lineCount(),
but moved it from LayoutBlock to LayoutBlockFlow, and threw away the parts that
weren't needed (visibility check, recursing into child block flows, among other
things).

On the LayoutDeprecatedFlexibleBox, there are some changes. The functions now
operate on LayoutBlockFlow instead of LayoutBlock, since it's dealing with
lines. As a result, we need to replace some former isLayoutBlock() checks with
isLayoutBlockFlow(). A similar change landed in WebKit years ago [1], so it
should be safe.

[1] https://bugs.webkit.org/show_bug.cgi?id=122969

BUG=302024

Review-Url: https://codereview.chromium.org/1952613002
Cr-Commit-Position: refs/heads/master@{#391492}
mstensho
Improve multicol overflow rect calculation when column width is 0.
If column-gap is larger than the content box width of the multicol container,
we'll end up with zero-width column boxes (that are allowed to overflow into
neighboring gaps).

BUG=607597

Review-Url: https://codereview.chromium.org/1927283002
Cr-Commit-Position: refs/heads/master@{#391477}
mstensho
Correct ietestcenter/css3/multicolumn/column-width-applies-to-010-expected.htm
Need to paint a red list item marker under the green one for it to match the
actual test perfectly.

BUG=396941

Review-Url: https://codereview.chromium.org/1947003002
Cr-Commit-Position: refs/heads/master@{#391467}
rune
Make sure computed style is up-to-date for custom properties.
For custom properties, we didn't call updateLayoutTreeForNode which
meant the computed style object might return out-of-date values for
custom properties.

Did some cleanup in getPropertyCSSValue for known properties.

R=shans@chromium.org
BUG=608690

Review-Url: https://codereview.chromium.org/1945623002
Cr-Commit-Position: refs/heads/master@{#391368}
fs
Simplify logical iteration in SVGTextLayoutEngine
By replacing m_logicalCharacterOffset == logicalTextNode->textLength()
by the corresponding metrics list equivalent, it becomes obvious that
we're just checking the same thing twice in succession. Remove the first
check and block of code.
Also reverse the test in the loop and refactor to avoid the 'continue'
when skipping whitespace.
The second part of the disjunction (w/ logicalMetrics.isEmpty()) does
not do anything useful, so is removed. This makes the condition match
what SVGTextLayoutAttributesBuilder does (which is the intention.)

BUG=607906

Review-Url: https://codereview.chromium.org/1941303003
Cr-Commit-Position: refs/heads/master@{#391281}
fs
Make servicing of SMIL animations require a FrameView
SMIL animations are not running (or even started) in inactive documents,
and scheduling frames requires a FrameView. Hence it makes sense to move
the call to SVGDocumentExtensions::serviceOnAnimationFrame into the
block that requires a FrameView.
Drop unused timestamp argument to SMILTimeContainer::serviceAnimations,
and let that propagate all the way out to PageAnimator.

Review-Url: https://codereview.chromium.org/1941403002
Cr-Commit-Position: refs/heads/master@{#391244}
sigbjornf
Deflake media/track/media-element-move-to-new-document-assert.html
R=fs@opera.com
BUG=518995

Review-Url: https://codereview.chromium.org/1943823002
Cr-Commit-Position: refs/heads/master@{#391224}
sigbjornf
Implement DOM methods: prepend, append, after, before and replaceWith.
As per https://dom.spec.whatwg.org/#childnode ChildNode interface
should contain after(), before() and replaceWith() API.

As per https://dom.spec.whatwg.org/#parentnode ParentNode interface
should contain append(), prepend() API.

Intent to Implement and ship link: https://groups.google.com/a/chromium.org/forum/#!searchin/blink-dev/paritosh/blink-dev/efUPtYm1PP8/MGoTi17AYpcJ

( From paritosh.in@samsung.com's original CL https://codereview.chromium.org/1085843002 )

R=mkwst
BUG=255482

Review-Url: https://codereview.chromium.org/1934123002
Cr-Commit-Position: refs/heads/master@{#391196}
rune
Avoid style recalc and layout when not necessary for client size.
The clientWidth and clientHeight values do not rely on style recalc for
the documentElement in strict mode, and the body element in quirks mode
when we use overlay scrollbars. Skip the forced layout update in those
cases.

BUG=481412

Review-Url: https://codereview.chromium.org/1935043002
Cr-Commit-Position: refs/heads/master@{#391187}
fs
Remove the LayoutSVGInlineText* context in SVGTextLayoutAttributes
Most uses of the SVGTextLayoutAttributes* in vector owned by
LayoutSVGText, actually ends up doing ...->context() and dereferencing
the owning LayoutSVGInlineText rather than the attributes object itself.
It's also slightly more obvious what's going on when considering the
iteration over "text nodes" rather than their associated attributes.
Make LayoutSVGText collect the descendant LayoutSVGInlineTexts rather
than the "parts object" SVGTextLayoutAttributes, and rename as
appropriate to reflect that change.
Since removing the context pointer makes SVGTextLayoutAttributes a simple
wrapper around a SVGCharacterDataMap, just store the latter directly.
Rename SVGTextLayoutAttributes.h to SVGCharacterData.h
Also replace a HashMap::find+conditional copy with a HashMap::get.

BUG=607906

Review-Url: https://codereview.chromium.org/1937043002
Cr-Commit-Position: refs/heads/master@{#391052}
sigbjornf
Completely detach failed script loader before dispatching error event.
In case of failure, a ScriptLoader needs to be detached from its ScriptRunner
and associated Resource (if any) at the same time, and before dispatching
the corresponding error event. If the error event handler triggers cancellation
of the Resource, the ScriptLoader should not be notified of that again --
it isn't interested nor prepared. A speculative fix.

R=
BUG=602516

Review-Url: https://codereview.chromium.org/1939743002
Cr-Commit-Position: refs/heads/master@{#390955}
rune
Don't cache parsed stylesheet if it wasn't added to the memory cache.
The code expects the StyleSheetContents to be in the memory cache when
pointed to by m_parsedStyleSheetCache. Set m_parsedStyleSheetCache to
nullptr initially when the StyleSheetContents could not be added to the
memory cache.

R=sigbjornf@opera.com
BUG=606248

Review-Url: https://codereview.chromium.org/1941733002
Cr-Commit-Position: refs/heads/master@{#390949}
davve
Add test for zoomed -webkit-mask-box-image
BUG=607414

Review-Url: https://codereview.chromium.org/1937903002
Cr-Commit-Position: refs/heads/master@{#390935}
mstensho
LayoutBlock::m_descendantsWithFloatsMarkedForLayout doesn't need to be mutable.
R=rune@opera.com

Review-Url: https://codereview.chromium.org/1937023002
Cr-Commit-Position: refs/heads/master@{#390925}
jl
Use v8::Object::CreateDataProperty() for object construction
When creating objects (and arrays) internally, we should typically use
CreateDataProperty() rather than Set(), since the latter may invoke
setters defined by scripts. This could potentially be used by exploits to
do evil things, but more likely is just a potential source of breakage
and/or confusion.

Also, it is typically non-conforming in the cases where exact behavior is
defined in a specification.

BUG=

Review-Url: https://codereview.chromium.org/1938943002
Cr-Commit-Position: refs/heads/master@{#390924}
davve
Revert "Straighten out zoom and border-image"
This patch reverts https://codereview.chromium.org/1819083004 patchset
#3.

Fixing SVG zoom in border-image unfortunatly broke gradients
instead. There is a difference in how scale it applied for
zooming. For SVG a source rect (unzoomed) <-> destination rect
(zoomed) scale factor is computed and used for scaling. For gradients,
the source and destination rect are always the same (both zoomed). The
individual gradients stops are zoomed instead.

BUG=607414, 596075, 561519

Review-Url: https://codereview.chromium.org/1934953002
Cr-Commit-Position: refs/heads/master@{#390920}
mostynb
remove obsolete todo note for CSS property to histogram id mapping
It was decided not to move these (necessarily) hardcoded ids.

BUG=234940
NOTRY=true

Review-Url: https://codereview.chromium.org/1937773002
Cr-Commit-Position: refs/heads/master@{#390917}
sigbjornf
Weak HTMLMediaElement::m_audioSourceNode reference must be cleared.
Weak callbacks must clear the weak references deemed not to be alive.

R=
BUG=

Review-Url: https://codereview.chromium.org/1941693002
Cr-Commit-Position: refs/heads/master@{#390910}
mostynb
remove unused WTF::dataLogFString function
BUG=439559

Review-Url: https://codereview.chromium.org/1936893002
Cr-Commit-Position: refs/heads/master@{#390877}
mostynb
remove unused placeByteAsHex template
BUG=439559

Review-Url: https://codereview.chromium.org/1937723002
Cr-Commit-Position: refs/heads/master@{#390876}
sigbjornf
gc plugin: stop recognizing old and unused options.
The options "enable-oilpan" and "warn-raw-ptr" are following r390631 no
longer being passed in as options, hence we can finally stop recognizing
them.

R=
BUG=585328

Review-Url: https://codereview.chromium.org/1941603002
Cr-Commit-Position: refs/heads/master@{#390875}
sigbjornf
Tidy up releasing of AssociatedURLLoader's client references.
Make the releasing of client references a bit more solid and consistent.

R=
BUG=606998

Review-Url: https://codereview.chromium.org/1937743002
Cr-Commit-Position: refs/heads/master@{#390873}
sigbjornf
Have htmlcollection-reachable.html force the one GC needed.
Calling window.gc() slows down test running times, and is
preferably avoided unless needed to verify behavior across
a GC.

For htmlcollection-reachable.html, we only need the
one GC to determine liveness of custom properties for
various platform objects across a garbage collection.

R=
BUG=593888

Review-Url: https://codereview.chromium.org/1934183002
Cr-Commit-Position: refs/heads/master@{#390872}
mostynb
remove unused placeByteAsHexCompressIfPossible template
This template has been unused since https://codereview.chromium.org/1778743003
landed.

BUG=584999,439559

Review-Url: https://codereview.chromium.org/1936883002
Cr-Commit-Position: refs/heads/master@{#390870}
sigbjornf
Document registration of Oilpan weak callbacks.
R=
BUG=

Review-Url: https://codereview.chromium.org/1935943002
Cr-Commit-Position: refs/heads/master@{#390860}
mstensho
Remove replacedChildren vector from inline layout.
This vector was populated during child walking and consumed right after the
walk. There should be no reason not to just process the objects right away.

Review-Url: https://codereview.chromium.org/1933633002
Cr-Commit-Position: refs/heads/master@{#390765}
fs
Minor tweaks to m_needsReordering in LayoutSVGText::layout
Nit fixes from https://codereview.chromium.org/1933193002/.

BUG=607906

Review-Url: https://codereview.chromium.org/1933413002
Cr-Commit-Position: refs/heads/master@{#390753}
fs
Simplify SVG layout attribute reordering
findFirstAndLastAttributesInVector is an identity transform, since it
only search for first/lastContext in the layout attributes vector and
return that in the out variable. Remove it. This in turn means that the
vector of layout attributes is unused, and hence also removed. Finally
tidy up the reversing loop by moving more code into the swapping helper
function, and merge the two identical sequences of item swapping code.
Drop the ASSERT that disallows having no (nullptr) user-data for the
closure to collectLeafBoxesInLogicalOrder.

BUG=607906

Review-Url: https://codereview.chromium.org/1931303002
Cr-Commit-Position: refs/heads/master@{#390751}
fs
Refactor SVGTextLayoutEngine::currentLogicalCharacterMetrics
The two methods currentLogicalCharacterAttributes and
currentLogicalCharacterMetrics on SVGTextLayoutEngine are very
interdependent, since after calling the former, the latter will be
called.
So fold most of the former into the latter, keeping the bits of the
former that advances to the next layout attribute entry, while
renaming it to nextLogicalAttributes.
The methods are also changed from returning a bool and using out-
variables to return the active SVGTextLayoutAttributes structure
instead.

BUG=607906

Review-Url: https://codereview.chromium.org/1935493002
Cr-Commit-Position: refs/heads/master@{#390736}
mstensho
Move self-collapse checking to LayoutBlockFlow and cache it completely.
Only block containers (that's LayoutBlockFlow in Blinquese) can have adjoining
top and bottom margins, since all other LayoutBlock derivates establish some
kind of formatting context (table, flexbox, etc.).

Also cache self-collapsedness completely. Previously we only used the cached
result if we had previously found that the entire subtree is self-collapsing.
The new approach eliminates the need for "mutable" too.

BUG=302024

Review-Url: https://codereview.chromium.org/1933153002
Cr-Commit-Position: refs/heads/master@{#390729}
mstensho
Move markLinesDirtyInBlockRange() from LayoutBlock to LayoutBlockFlow.
And put the implementation in LayoutBlockFlowLine.cpp.

BUG=302024

Review-Url: https://codereview.chromium.org/1933643002
Cr-Commit-Position: refs/heads/master@{#390724}
fs
Restructure LayoutSVGText::layout
"Uncascade" LayoutSVGText::layout by separating the handling of the two
flags (m_needsTextMetricsUpdate, m_needsPositioningValuesUpdate) into
sequential blocks. Add assert to verify consistency.

BUG=607906

Review-Url: https://codereview.chromium.org/1933193002
Cr-Commit-Position: refs/heads/master@{#390691}
fs
Move isEmptyValue and emptyValue to SVGCharacterData
These two helpers have a stronger tie to SVGCharacterData (on which they
operate) than to SVGTextLayoutAttributes - where they are currently
defined.
Move them as described, and also add simple query helpers to make code
using them simpler and more readable.

BUG=607906

Review-Url: https://codereview.chromium.org/1933183002
Cr-Commit-Position: refs/heads/master@{#390649}
sigbjornf
Remove oilpan build configuration vestiges.
With the updated GC clang plugin that rolled out as part of issue 604993,
we no longer need to supply enable-oilpan to it. Stop doing so along
with removing the enable_oilpan configuration option entirely.

R=haraken,jochen
BUG=585328

Review-Url: https://codereview.chromium.org/1930913002
Cr-Commit-Position: refs/heads/master@{#390640}
sigbjornf
blink_gc_plugin: drop no-op options.
With the updated GC clang plugin that rolled out as part of issue 604993,
we can now assume that the enable-oilpan and warn-raw-ptr options are
by default always on & consequently doesn't need to be passed in by
blink_gc_plugin_flags.py

R=
BUG=604463,604476

Review-Url: https://codereview.chromium.org/1926003003
Cr-Commit-Position: refs/heads/master@{#390631}
jl
Use [[DefineOwnProperty]] when converting IDL array values
This means using v8::Object::CreateDataProperty() rather than Set(), and
is in line with how the conversion is defined in WebIDL. The incorrect use
of Set() is observable by scripts that define setters on Array.prototype
for the properties "0", "1", "2" and so on.

Also apply the same fix to conversion of Vector<std::pair<>> into object.

BUG=607483

Review-Url: https://codereview.chromium.org/1936433002
Cr-Commit-Position: refs/heads/master@{#390610}
mostynb
fix ipc_mojo_unittests.isolate dependencies
BUG=604847

Review-Url: https://codereview.chromium.org/1930773006
Cr-Commit-Position: refs/heads/master@{#390606}
philipj
Drop self from API_OWNERS, OWNERS, etc.
tkent@ takes over web-platform-tests/dom and chcunningham@ joins
wolenetz@ in mediasource/OWNERS.

Review-Url: https://codereview.chromium.org/1919183004
Cr-Commit-Position: refs/heads/master@{#390604}
mstensho
Old lines may be detached / extracted during layout.
Back out over-simplified code from https://codereview.chromium.org/1915803004/

Since lines from an old layout pass that haven't yet been relaid out may not be
in the line box list at all at some given point during layout, lastRootBox()
didn't work as expected. It would either return the wrong last-line, or even
nullptr.

BUG=607451

Review-Url: https://codereview.chromium.org/1927913002
Cr-Commit-Position: refs/heads/master@{#390508}
tsniatowski
Add simple bit_cast unittests, avoid static_assert on gcc+libc++
These should work provided that the is_trivially_copyable logic is not
broken, and will fail to compile of the type traits lie. They do on
Android where we have gcc+libc++, so avoid being too strict there.

BUG=607158

Review-Url: https://codereview.chromium.org/1925683002
Cr-Commit-Position: refs/heads/master@{#390472}
sigbjornf
Refresh LocalDOMWindow post-Oilpan.
The debug flag m_hasBeenReset no longer serves a purpose +
OwnedPtrDeleter<> usage doesn't either.

R=
BUG=585328

Review-Url: https://codereview.chromium.org/1932653003
Cr-Commit-Position: refs/heads/master@{#390436}
sigbjornf
Remove RefCountedGarbageCollected<> GC plugin handling.
The RefCountedGarbageCollected<> transition type is no longer used
and has been removed. Follow up and retire the GC plugin's
checks for it.

R=haraken
BUG=604481

Review-Url: https://codereview.chromium.org/1932713002
Cr-Commit-Position: refs/heads/master@{#390421}
rune
querySelector* fast-path missing namespace check for no namespace.
querySelector* does not allow selectors with namespaces, yet selectors
with no namespace are still allowed. Check for empty namespace before
hitting the fast path for tag names.

R=esprehn@chromium.org
BUG=605502

Review-Url: https://codereview.chromium.org/1932673002
Cr-Commit-Position: refs/heads/master@{#390417}
jl
Use correct creation context when converting sequences to V8
The |creationContext| argument is often a reference to a window proxy
object, that may become incorrect to use if the frame is navigated and/or
detached during the loop that converts values.

BUG=607483

Review-Url: https://codereview.chromium.org/1924073003
Cr-Commit-Position: refs/heads/master@{#390408}
sigbjornf
GC plugin: split out reporting of errors/warnings.
Move code to handle reporting of errors and notes out
into a class of its own.

R=haraken
BUG=531879

Review-Url: https://codereview.chromium.org/1926863002
Cr-Commit-Position: refs/heads/master@{#390350}
sigbjornf
Add sigbjornf as blink_gc_plugin/ owner.
R=
BUG=
NOTRY=true

Review-Url: https://codereview.chromium.org/1928743002
Cr-Commit-Position: refs/heads/master@{#390325}
sigbjornf
Remove unused GCObject class.
This dummy class was accidentally re-introduced in PersistentNode.cpp during the
r389469 revert; remove it.

R=
BUG=

Review-Url: https://codereview.chromium.org/1925973002
Cr-Commit-Position: refs/heads/master@{#390323}
sigbjornf
Make warn-unneeded-finalizer warning usable.
The Blink GC plugin option warn-unneeded-finalizer (enabled by including
"warn-unneeded-finalizer=1" in your  "blink_gc_plugin_flags" gyp defines)
is potentially useful in identifying classes which needlessly derive from
GarbageCollectedFinalized<> where GarbageCollected<> would do.

To avoid far too many false positives to make it practically useful on
the Blink codebase, make it be more forgiving about bases with virtual
destructors + recognize class declarations with
finalizeGarbageCollectedObject() methods defined. Neither of those
two cases should be reported as warnings.

R=
BUG=

Review-Url: https://codereview.chromium.org/1922913004
Cr-Commit-Position: refs/heads/master@{#390184}
sigbjornf
Remove unnecessary uses of GarbageCollectedFinalized<>.
Classes which finalize nothing on their own should derive from
GarbageCollected<> instead.

(As identified by the warn-unneeded-finalizer=1 GC plugin option.)

R=haraken
BUG=585328

Committed: https://crrev.com/e10d108bc9cabf82607b909f35fc541c313e2366
Cr-Commit-Position: refs/heads/master@{#390070}

Review-Url: https://codereview.chromium.org/1929493002
Cr-Commit-Position: refs/heads/master@{#390165}
fs
SVG <marker> painting TLC
* Use range-based loop.
* Hide checking for an empty 'viewBox' in LayoutSVGResourceMarker.
* Simplify handling of marker scale due to 'markerUnits'.
* Add some const qualification, reorder forward decls and add missing
  full stops.

Review-Url: https://codereview.chromium.org/1914293003
Cr-Commit-Position: refs/heads/master@{#390112}
sigbjornf
Have MessagePort use Oilpan-based weak pointers.
Using WeakPtr<>/WeakPtrFactory<> with Oilpan heap objects is problematic
in the face of lazy sweeping, WeakPtr<> references aren't cleared until
the finalizer runs. Should a posted task (like for MessagePort) run
before that happens, it might then access already finalized objects that
MessagePort refers to.

Hence WeakPtr<>s should not be used for Oilpan objects unless extra
finalization care is taken _and_ the object depends on WeakPtrFactory<>'s
support for explicit revocation. Use Oilpan weak references instead.

Also clear out various redundant WeakPtr.h includes throughout Blink.

R=haraken
BUG=522357

Review-Url: https://codereview.chromium.org/1922923003
Cr-Commit-Position: refs/heads/master@{#390105}
sigbjornf
Remove unnecessary uses of GarbageCollectedFinalized<>.
Classes which finalize nothing on their own should derive from
GarbageCollected<> instead.

(As identified by the warn-unneeded-finalizer=1 GC plugin option.)

R=haraken
BUG=585328

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

Cr-Commit-Position: refs/heads/master@{#390070}
fs
Don't use a magic value for 'auto' oriented <marker>s
The value -1 (degrees) is a valid angle, so using it to indicate that
'auto' orientation should be used does not work out.
Just check 'orientType' directly instead and simplify the angle getter.

BUG=606345

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

Cr-Commit-Position: refs/heads/master@{#390029}
sigbjornf
Simplify ownership handling of HTMLImportsController.
The controller is now simply referred to and kept alive from the
associated master Document, detached of and disposed during
Document detach.

R=haraken
BUG=585328

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

Cr-Commit-Position: refs/heads/master@{#389814}
sigbjornf
Deprecate window.postMessage(m, transferables, origin) overload.
This argument-swapped legacy overload has little use, hence it
is time to try to phase it out. Deprecate with view to removing
in M54.

Intent: https://groups.google.com/a/chromium.org/d/msg/blink-dev/h4ooaB_Y9JE/nh7vXshGBwAJ

R=
BUG=425896

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

Cr-Commit-Position: refs/heads/master@{#389800}
jl
Use correct creation context during Iterable.forEach iteration
Use |thisValue| instead of |scriptState->context()->Global()|, since this
is simpler and since Global() actually returns a WindowProxy object that
may change and become incorrect to use as creation context depending on
what the callback function does.

BUG=605910

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

Cr-Commit-Position: refs/heads/master@{#389785}
sigbjornf
Tidy up representation of ScrollState::m_data.
OwnPtr<> is preferable in this context.

R=
BUG=

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

Cr-Commit-Position: refs/heads/master@{#389781}
sigbjornf
Tidy up WebGeolocationController.
Get rid of impedance-matching wrapper now that Oilpan is enabled
always.

R=
BUG=585328

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

Cr-Commit-Position: refs/heads/master@{#389777}
davve
Manually rebaseline hidpi tests
The following pixel tests needed rebaselining after switch from quirks
mode to standards mode in r389730:

fast/hidpi/broken-image-icon-hidpi.html
fast/hidpi/image-srcset-invalid-descriptor.html
fast/hidpi/resize-corner-hidpi.html
fast/hidpi/broken-image-with-size-hidpi.html
fast/hidpi/video-controls-in-hidpi.html
fast/hidpi/focus-rings.html
fast/hidpi/clip-text-in-hidpi.html
fast/hidpi/image-set-as-background-with-zoom.html
fast/hidpi/gradient-with-scaled-ancestor.html

TBR=yoav@yoav.ws
BUG=605065

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

Cr-Commit-Position: refs/heads/master@{#389758}
sigbjornf
Remove unnecessary uses of GarbageCollectedFinalized<>.
R=haraken
BUG=585328

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

Cr-Commit-Position: refs/heads/master@{#389756}
fs
Out-of-line some methods on LayoutSVGResourceMarker
Move the definition of orientType() and markerUnits() to the .cpp file.
Also make use of these helpers where possible and remove some unused
or redundant includes.

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

Cr-Commit-Position: refs/heads/master@{#389747}
fs
Don't force layout of descendants of SVG containers needing self-layout
There isn't much "layout" required for a generic SVG container - it is
sensitive to changes to its descendants and any impact a filter it
itself references has. We would however always relayout the entire
subtree of a container that had been marked as needing layout.
Like he code removed by https://codereview.chromium.org/1907273002, this
remaining part of the condition is primarily a remnant of the old way of
performing paint invalidation.
This CL changes to not force layout unconditionally based on the
self-needs-layout flag, but instead relies on the scale-factor-changed
flag (and of course specific marking of descendants) to handle this job.
To achieve this, rudimentary scale-factor-changed "detection" is added
to LayoutSVGRoot, as well as code to propagate this state to
descendants. LayoutSVGResourceMarker is modified in a similar fashion.
This is needed to counter-act the removal of the forced layout, since
previously this would propagate to descendants (unconditionally) by
forcing layout in both the root and containers. This effect is now
achieved (for the root) by using the scale-factor-changed signal
instead. This signal will be improved in future CLs.

BUG=603956

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

Cr-Commit-Position: refs/heads/master@{#389742}
davve
Modernize fast/hidpi layout tests
 * Add <!DOCTYPE html> to all tests. None of them seem to test
   quirk-mode specific issues.

 * Remove unnecessary <html>, <head> and <body> tags.

 * 4 space indentation.

 * Remove stale FIXME.

 * Drop </img> tags. <img> is a void element.

BUG=605065

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

Cr-Commit-Position: refs/heads/master@{#389730}
mstensho
Remove LayoutFlowThread stuff from line layout code.
We used to force full line layout if we had a flow thread with no column sets.
This may have made sense at some point in the past, where we created column
sets on the fly during layout, but we don't do that anymore (because we don't
mutate the layout tree structure during layout anymore). If we have no column
sets, it means that we cannot have any lines, since there's no column content
(because if there were, we'd have at least one column set). So it was a
pointless (albeit harmless) check.

There was also a flow thread check around some code that checks if previously
created lines will be affected by floats in new ways. If this is the right
thing to do for flowthread based fragmentation, it's also the right thing to do
for non-flowthread based (e.g. printing) fragmentation, so just remove the
check.

Also reordered and cleaned up checkPaginationAndFloatsAtEndLine() somewhat. We
don't have to do anything at all unless we have floats. Let's figure this out
as early as possible and bail if we can.

Also locate the last line in the block flow in a simpler way. Call
lastRootBox() instead of walking some chain of lines all the way to the end.

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

Cr-Commit-Position: refs/heads/master@{#389720}
sigbjornf
Support WeakMember<const T>.
It is entirely valid to have weak references to const objects, but
this failed to compile tracing calls over such members.

R=haraken
BUG=

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

Cr-Commit-Position: refs/heads/master@{#389553}
fs
Return the 'active' value for SVGURIReference.href.animVal
Make animVal return the currently used ('active') value instead of always
returning that of 'href'.
This should re-establish the former "invariant" that baseVal === animVal
when '(xlink:)href' is not being animated.

BUG=606200

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

Cr-Commit-Position: refs/heads/master@{#389490}
sigbjornf
Unify and generalize thread static persistent finalization.
Make ThreadState's registerAsStaticReference() generally available,
and not specific to LSan-only registration of static persistents
that must be cleared prior to performing leak detection.

By doing so, it can be used to handle thread-local static persistents
also.

Upon a thread finalizing its ThreadState, these static persistents
will be cleared & released. In order to make that safe and not leave
dangling PersistentNode references around afterwards, generalize
the release mechanism to also clear the Persistent/PersistentCollectionBase
that registered the persistent node.

R=haraken
BUG=

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

Cr-Commit-Position: refs/heads/master@{#389448}
sigbjornf
Make DOMTokenList.prototype.toString enumerable.
As 'stringifier' implies an enumerable toString(), drop the use
of [NotEnumerable] for DOMTokenList's. This also aligns with other
implementations (FF, Edge.)

R=yoav@yoav.ws, philipj@opera.com
BUG=306606

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

Cr-Commit-Position: refs/heads/master@{#389442}
davve
Manually rebaseline two tests from r389158
TBR=fs
BUG=601011

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

Cr-Commit-Position: refs/heads/master@{#389437}
sigbjornf
Require that heap collections are used over traceable elements.
While it is fully supported, having Blink GC heap collection objects
with elements not themselves being heap objects nor containing
references to such, is unnecessary. And arguably a sign that the code
is unintentionally using a heap collection.

Thus, add static_assert()s which prevent heap collections containing
no traceable references.

R=haraken
BUG=585328

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

Cr-Commit-Position: refs/heads/master@{#389435}
sigbjornf
Make Selection.prototype.toString() enumerable.
The stringifier for Selection is enumerable,

 https://w3c.github.io/selection-api/#idl-def-Selection

so align with spec and other implementations, and remove the use
of [NotEnumerable].

R=yoichio
BUG=306606

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

Cr-Commit-Position: refs/heads/master@{#389427}
sigbjornf
Remove RefCountedGarbageCollected<>.
Exposing a garbage collected object as something ref-counted is
no longer needed, hence the functionality can be removed.

R=
BUG=604481

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

Cr-Commit-Position: refs/heads/master@{#389419}
fs
Order bounds update correctly for LayoutSVGShape and LayoutSVGImage
Since SVGResourcesCache::clientLayoutChanged can set the
m_needsBoundariesUpdate flag, make sure to check it, and act, after
that call. This ensures that state is consistent. when layout() return.
Also add a comment about the delicate situation in
LayoutSVGShape::layout wrt shape vs. bounds update. Additionally rename
the local variable used to notify the parent that its bounds needs to be
updated to |updateParentBoundaries|.

BUG=603956

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

Cr-Commit-Position: refs/heads/master@{#389410}
sigbjornf
Add DataPersistent<> for copy-on-modify and use for StyleFilterData.
Emulate what DataRef<T> provides over ref-counted objects, but
for persistent heap references. DataPersistent<T> values can
be freely copied, but when access()ed before being mutated,
DataPersistent<> ensures that the mutation will happen on
an unshared copy of the underlying heap object (of type T.)

The motivation for doing is to migrate the StyleFilterData fields
that StyleRareNonInheritedData keeps over to use DataPersistent<>
rather than DataRef<>. By doing so, StyleFilterData becomes
a simple GCed object without any ref-counting extras.

R=
BUG=604481

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

Cr-Commit-Position: refs/heads/master@{#389400}
sigbjornf
Simplify PointerEventFactory::getPointerIdsOfType() return type.
A Vector<int> is sufficient.

R=
BUG=

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

Cr-Commit-Position: refs/heads/master@{#389372}
sigbjornf
Remove unnecessary use of HeapHashMap for InspectorAnimationAgent::m_idToAnimationType.
R=
BUG=

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

Cr-Commit-Position: refs/heads/master@{#389369}
sigbjornf
CSSGradientValue::getStopColors(): unnecessary use of HeapVector<>.
No need to involve HeapVector<> over Color.

R=
BUG=

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

Cr-Commit-Position: refs/heads/master@{#389368}
sigbjornf
Remove unnecessary use of HeapHashMap for EventHandler::TouchRegionMap.
R=
BUG=

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

Cr-Commit-Position: refs/heads/master@{#389367}
fs
Remove unnecessary full-subtree layouts for filtered SVG containers
The presence of a filter on a container (or the SVG root) would force
a layout of the entire subtree if any child needed a layout. This used
to serve the purpose of making sure that the entire subtree would get
repainted (an artifact of how 'filter' is handled on SVG elements.)
With the current paint invalidation system, this should however make
no practical difference, since the layout of the subtree will only
end up marking descendant LayoutObjects as "maybe needing paint
invalidation" - which the ones that didn't actually change don't - and
hence for these nothing will be invalidated.
The container itself will be invalidated via the call to
SVGResourcesCache::clientLayoutChanged, which will mark it for paint
invalidation if it has instantiated a filter resource.

BUG=603956

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

Cr-Commit-Position: refs/heads/master@{#389283}
mstensho
Remove unused LayoutObject::mapAbsoluteToLocalPoint().
Review URL: https://codereview.chromium.org/1916543002

Cr-Commit-Position: refs/heads/master@{#389266}
mstensho
Support for mapping from outer/visual to flowthread coord space in nested multicol.
Review URL: https://codereview.chromium.org/1919453002

Cr-Commit-Position: refs/heads/master@{#389249}
mstensho
Don't allow column spanners inside transforms.
Spanners want the multicol container as their containing block. Transforms want
to be the containing block of everything inside. Since it's not possible to
fulfill both wishes, just refuse objects to become spanners when inside
transforms. We already do the same when inside out-of-flow objects, and also
for anything that establishes a new formatting context.

BUG=596863

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

Cr-Commit-Position: refs/heads/master@{#389207}
davve
Align image sizes for SVG with raster image size
The background geometry calculations has heuristics for tiling image
sizes optimized for integer image sizes (at least in effective zoom ==
1). Rounding SVG image sizes before zoom application makes SVG images
fit better into the existing heuristics.

BUG=601011

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

Cr-Commit-Position: refs/heads/master@{#389158}
mstensho
ColumnBalancer: Don't leak the break-after value from the previous sibling to children.
The break-after value of an object should only be considered and joined with
the break-before value of the next in-flow sibling. Said sibling should not let
its children see this value, or anything like that. Doing that might trick the
balancer into believing that we have more forced breaks than what we actually
have.

So there's no point in storing this state as a member in ColumnBalancer. Keep
it local to each object instead.

BUG=605902

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

Cr-Commit-Position: refs/heads/master@{#389144}
mstensho
Shift visual-to-flowthread coordinate space conversion one level up in the tree.
The same was done for the opposite operation, i.e. flowthread-to-visual
coordinate space conversion, in mapLocalToAncestor(), in
https://codereview.chromium.org/1819603003 . Let's do the same in
mapAncestorToLocal(), so that we're more consistent. This doesn't fix any known
bugs, but it sure makes sense that mapLocalToAncestor() be the opposite of
mapAncestorToLocal(). This also makes it less of a headache to write unit
tests, since you can now feed transformState1 into
obj->mapLocalToAncestor(parent) and get transformState2 back, then feed
transformState2 into obj->mapAncestorToLocal(parent) and then be back at
transformState1.

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

Cr-Commit-Position: refs/heads/master@{#389143}
mstensho
Spec-compliant parsing and initial values for 'orphans' and 'widows'.
The initial values for these properties should be '2', not 'auto'. 'auto' isn't
even an allowed value in the spec. So remove support for that completely.

FWIW: 'auto' used to mean pretty much the same as '1'.

Quite a few tests have to be updated because of this change, typically because
they assume that there are no orphans and widows requirements, meaning that
there'd be no breaking restrictions between lines. In those cases, now that the
initial value is '2', we need to set 'orphans' and 'widows' to '1' explicitly
if we don't want any restrictions. There are also some non-layout tests that
expect the initial value to be 'auto' or '1'. In those cases we need to just
update the expectations to be '2' instead.

BUG=473509

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

Cr-Commit-Position: refs/heads/master@{#389061}
mstensho
Don't lose the pagination strut when a line is re-created.
If there's not enough room for a line in a column, so that it gets pushed to
the next one, and there's a float at the top of the next column, the available
line width changes, and we need to re-create the line at the new position. Do
not lose the pagination strut in the process, or the column balancer might
over-stretch the columns, since it might fail to find the lowest possible space
shortage for the next layout pass. So store the strut so that we can re-apply
it when the new line has been created.

Since we now store the strut of such lines while they're being re-created, this
can be used as a flag to skip positioning of out-of-flow objects and floats. In
other words, we can retire the logicalWidthIsAvailable flag (which was a really
confusing name anyway).

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

Cr-Commit-Position: refs/heads/master@{#388884}
sigbjornf
Have (new URLSearchParams(initString)) skip initial '?'.
The spec now requires that when a URLSearchParams is initialized from
a string, an initial '?' should be ignored from that string,

 https://url.spec.whatwg.org/#dom-urlsearchparams-urlsearchparams

It accommodating usage like (new URLSearchParams(url.search))

R=
BUG=601425

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

Cr-Commit-Position: refs/heads/master@{#388842}
mstensho
Prioritize first-lines over orphans when deciding whether to propagate a strut.
The orphans code piece simply blindly propagates the strut to the block if the
orphans requirement isn't satisfied. It's incapable of inserting a break at a
class C break point [1] (i.e. before the first line in the block), while the
first-line code piece handles this just fine (since this is easy to do when at
the first line, but not when at a later line).

If we're at a non-first line at the time of breaking, there's no support for
going back to insert a break before the first line. That has to be done when
processing the first line, not later on. Flip the priority, so that orphans
requirements aren't even checked if we're at the first line. There's no need
then. We always try to avoid breaking before the first line anyway.

[1] https://drafts.csswg.org/css-break/#possible-breaks

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

Cr-Commit-Position: refs/heads/master@{#388838}
fs
Rename transformToRoot:ish names to screenScaleFactorChanged:ish ones
This better reflects the function of this machinery, since it's used to
update the scale of fonts based on the computed "screen scale factor".

BUG=603956

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

Cr-Commit-Position: refs/heads/master@{#388749}
philipj
Measure usage of generated documents (image/media/plugin/etc)
As discussed on blink-dev:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/u79ubJvsTbI/c_kSGKrEAgAJ

This *InFrame counters are intended as an estimate of cases where a
script in the containing document could look at the generated DOM.

BUG=597380
R=esprehn@chromium.org,pdr@chromium.org
TBR=isherman@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#388723}
mstensho
Remove special-code for paginating floats followed by lines of text.
If a float is pushed to the next fragmentainer, we used to push any lines
established by consecutive sibling content along with it, even if they would
fit in the previous fragmentainer. As a contrast to this, we did not do the
same to consecutive blocks - only to lines!

What blocks do makes the most sense [1]. Do the same for lines.

[1] Discussed here: https://lists.w3.org/Archives/Public/www-style/2015Sep/0002.html

Added two new tests. The one that has a block with text following a float also
worked before this CL, but I added it to demonstrate how ridiculous it is to
behave differently here, simply depending on whether it's a line or a block.

Some existing tests needed an update, because they depended on the previous
behavior.

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

Cr-Commit-Position: refs/heads/master@{#388701}
mstensho
Translate flow thread coords to the nearest enclosing coord space when appropriate.
We used to always convert to the visual coordinate space, meaning that we
walked all enclosing fragmentation contexts. However, only the PaintLayer code
wants this behavior, while everyone else typically wants to do one
fragmentation context at a time, e.g. when walking the ancestry with
LayoutObject::mapLocalToAncestor().

For nested multicol, this caused invalidation bugs, problems with
getClientRects(), and maybe more.

Added an enum CoordinateSpaceConversion (with values "Containing" and "Visual")
for flowThreadTranslationAtOffset() to use to determine which conversion to
perform. The old behavior was to always do CoordinateSpaceConversion::Visual.

BUG=604883

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

Cr-Commit-Position: refs/heads/master@{#388692}
fs
Drop transform-change propagation from LayoutSVGHiddenContainer::layout
No real transform changes should be detected in LayoutSVGHiddenContainer
since it's used for things making up (==roots of) "isolated subtrees".

BUG=603956

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

Cr-Commit-Position: refs/heads/master@{#388578}
sigbjornf
Expose toString() as enumerable on some objects.
URL, WorkerLocation and implementations of HTMLHyperlinkElementUtils
are required per spec to expose an enumerable toString() method.

Remove uses of [NotEnumerable] for these.

R=philipj@opera.com, jochen
BUG=306606

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

Cr-Commit-Position: refs/heads/master@{#388521}
fs
Move the m_didTransformToRootUpdate flag to LayoutSVGContainer
By pushing the update of the m_didTransformToRootUpdate flag out of the
various calculateLocalTransform() implementations, we both get
implementations of those methods that are more to the point, and expose
the redundant calls to SVGLayoutSupport::transformToRootChanged().
This also means that didTransformToRootUpdate() is devirtualized,
although it was never called "virtually" before either.
Also turn m_needsBoundariesUpdate into a single-bit flag.

BUG=603956

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

Cr-Commit-Position: refs/heads/master@{#388516}
sigbjornf
Remove Disposed as a DocumentLifecycle state.
With Oilpan, Documents no longer have an observable 'disposed' state.

R=
BUG=585328

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

Cr-Commit-Position: refs/heads/master@{#388498}
sigbjornf
Avoid PageAllocator::s_allocPageErrorCode races.
R=
BUG=601579

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

Cr-Commit-Position: refs/heads/master@{#388491}
sigbjornf
Add missing IDL parser support for 'stringifier readonly attribute'.
R=
BUG=306606

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

Cr-Commit-Position: refs/heads/master@{#388484}
philipj
Make setBaseAndExtent's arguments non-optional
These arguments are already non-optional in Edge. Firefox doesn't
support setBaseAndExtent. In WebKit the arguments are still optional.

For the first three arguments, the risk is bounded by the
SelectionSetBaseAndExtentNull use counter, which rbyers@ reports as ~0%
on the stable channel. If the fourth argument is omitted the use counter
wouldn't catch that, however. (The use counter can also be triggered by
explicitly passing null, which is likely the most common case.)

BUG=460722

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

Cr-Commit-Position: refs/heads/master@{#388460}
davve
Compensate for source scaling in hidpi mode
In crrev.com/379801 scaling of hidpi nine piece image grids was
changed from using the real image size to using the "layout'ed" image
size (i.e. image size compensated by image scale factor) since that is
what Image::imageSize() returns. Instead the computed source rect was
scaled afterwards, right before drawing.

If GraphicsContext.drawTiledImage() is called with (stretch, stretch)
as tile rules, it ignores the passed scale factor and computes the
scale factor between source and destination itself. However, if one
rule is stretch and the other one repeat, or if both are repeat, the
tile scale factor is used when drawing and the relation between the
sizes of source and dest ignored.

What was missing from crrev.com/379801 was to compensate for the image
scale factor by adjusting tileScale. That meant that the (stretch,
stretch) worked fine but as soon as one repeat was specified, the
scale factor was wrong.

BUG=601544

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

Cr-Commit-Position: refs/heads/master@{#388451}
tmoniuszko
Fix GN freeze on generating Visual Studio projects
There's an infinite loop while searching for parent directory. It happens
when drive letter case is mixed in absolute paths on Windows (/C:/foo and
/c:/foo). It's easily reproducible on MSYS terminals when system-absolute
paths are used for some targets and source root-absolute (//foo/bar) paths
are used for other targets.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#388443}
ljagielski
Build: disable icf for gcc builds with bundled gold
Gold doesn't respect section alignment when merging symbols
https://sourceware.org/bugzilla/show_bug.cgi?id=17704

BUG=576197

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

Cr-Commit-Position: refs/heads/master@{#388437}
fs
Pass first child to SVGLayoutSupport::layoutChildren
Since everything depending on the "subtree root" has now been hoisted
into the callers, we can pass firstChild() instead and avoid calling
slowFirstChild().

BUG=603956

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

Cr-Commit-Position: refs/heads/master@{#388337}
fs
Hoist "layout size changed" check out of SVGLayoutSupport::layoutChildren
For LayoutSVGRoot, this predicate can be computed quite easily, so
calling layoutSizeOfNearestViewportChanged() will be an unnecessary
detour.
Also rearrange layoutSizeOfNearestViewportChanged() to avoid an
unnecessary virtual call.

BUG=603956

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

Cr-Commit-Position: refs/heads/master@{#388332}
mstensho
Make MultiColumnFragmentainerGroup::m_columnSet const.
Ideally, I'd like to get rid of the member altogether, but that would require a
lot of refactoring.

This is a preparatory patch for a fix for bug 604609.

BUG=604609

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

Cr-Commit-Position: refs/heads/master@{#388326}
fs
Hoist transformToRootChanged() out of SVGLayoutSupport::layoutChildren
This function is really only relevant for LayoutSVG*Containers, and
hence has a stronger logical tie to that part of the hierarchy. For
LayoutSVGRoot it will always return false.
Also rename the |selfNeedsLayout| argument to |forceLayout|, and the
(somewhat) corresponding local variable |forceLayout] to
|forceChildLayout|.
Eliminate an unnecessary virtual call in transformToRootChanged().
Add const qualifier to didTransformToRootUpdate().

BUG=603956

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

Cr-Commit-Position: refs/heads/master@{#388292}
fs
Get rid of SVGLayoutSupport::filtersForceContainerLayout
Save the "has filter resource" part, and rename it to hasFilterResource.
Hoist the normalChildNeedsLayout() part into the callers together with
the comment. This makes the condition for forcing layout of children
of an <svg> (outermost) root or a container more obvious.

Also update a few places to use the new hasFilterResource helper.

BUG=603956

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

Cr-Commit-Position: refs/heads/master@{#388284}
fs
Improve default value handling for SVGSVGElement.width/height
When a length attribute is either removed or set to an invalid value,
it would get set to '0'. It should however be set to the initial value
specified for the attribute (possibly presentation attribute) in
question.

The test svg/custom/disallow-non-lengths-in-attrs.html is tweaked to
accommodate for this.

BUG=604093

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

Cr-Commit-Position: refs/heads/master@{#388250}
sigbjornf
Always enable warn-raw-ptr's check of raw heap pointers.
This warning option has been default-enabled with Oilpan since 3a192c3
(2015-11-25), checking that we do not keep unmanaged raw pointers or
references in class field types. With the Blink codebase adhering
to that (desirable) constraint, this extra warning has been working
well to keep the codebase in that state.

Make the check always apply with no possibility of opting out; we want
it permanently on.

R=
BUG=604476

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

Cr-Commit-Position: refs/heads/master@{#388222}
sigbjornf
Rename URLUtils interface as HTMLHyperlinkElementUtils and update.
Follow the HTML spec for HTMLAnchorElement + HTMLAreaElement, and have
them implement the [NoInterfaceObject] HTMLHyperlinkElementUtils
interface, rather than the previous URLUtils which has now been
retired / divided up.

The other implementation of URLUtils, URL, now define the attributes
directly (with the addition of a searchParams getter.)  Update its IDL
also.

R=
BUG=604644

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

Cr-Commit-Position: refs/heads/master@{#388209}
jl
IDL: Merge stringifier/serializer definition from implemented interface
A stringifier defined in a supplemental interface was not merged into the
primary interface, which meant that no 'toString' operation was defined.

Same for serializer definitions and the 'toJSON' operation.

This does not currently change generated code; no supplemental interface
defines a stringifier or serializer.

BUG=306606,469650

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

Cr-Commit-Position: refs/heads/master@{#388191}
sigbjornf
Update Blink GC plugin to reflect that Oilpan is now always enabled.
With the Blink codebase having migrated to an Oilpan only state, update
the GC plugin accordingly:

 - drop handling of RawPtr<T>, it no longer exists.
 - remove !ENABLE(OILPAN) specific checks.

R=haraken
BUG=604463

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

Cr-Commit-Position: refs/heads/master@{#388188}
mostynb
convert //gpu to std::unique_ptr
BUG=554298
CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_optional_gpu_tests_rel;tryserver.chromium.mac:mac_optional_gpu_tests_rel
TBR=danakj@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#388176}
sigbjornf
Leave out redundant includes for postMessage() method bindings.
R=
BUG=

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

Cr-Commit-Position: refs/heads/master@{#388148}
mstensho
Support multiple fragmentainer groups per ColumnBalancer run.
Instead of specifying a fragmentainer group for the operation, we now specify a
column set and a flow thread portion (which may be the portion of one group or
many contiguous groups within the same column set).

The reason for this change is that when calculating space shortage in an inner
multicol container, we need to walk through all fragmentainer groups in one
operation, or we'll miss the column boundaries between the fragmentainer
groups, and only find those that lie between two columns in the same
fragmentainer group. This is especially bad if the inner multicol container
only has one column per fragmentainer group (row), since then *all* column
boundaries lie between two fragmentainer groups, and we wouldn't be able to
find any shortage at all.

BUG=594833

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

Cr-Commit-Position: refs/heads/master@{#388070}
mstensho
Append fragmentainer groups in outer multicols first.
We need to evaluate the need for extra fragmentainer groups in ancestral
multicol containers first, so that the inner ones can calculate their column
height restrictions correctly.

BUG=572771

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

Cr-Commit-Position: refs/heads/master@{#388017}
mostynb
allow clang toolchains to strip libs as they are built
BUG=509771

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

Cr-Commit-Position: refs/heads/master@{#388016}
sigbjornf
Abandon prerenders upon render thread shutdown.
Have PrerenderDispatcher abandon its current prerenders when
the renderer is about to shut down -- doing so later isn't
supported as Blink is about to disappear.

Along with this, on the Blink side, weaken the reference that
a Prerender object keep to its PrerenderClient. The latter
should keep the former alive, but not vice versa -- if no one
is referring to the client within Blink, it can be GCed.
This avoids prolonged retention of prerendering Blink objects.

R=
BUG=604325

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

Cr-Commit-Position: refs/heads/master@{#387912}
sigbjornf
Simplify handling of Transferable objects while (de)serializing.
Avoid unnecessary allocations and abstractions in the handling of
transferables. The Transferables now collates the different kinds of
objects that can be transferred via postMessage().

R=
BUG=haraken

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

Cr-Commit-Position: refs/heads/master@{#387867}
fs
Refactor the current text position update in SVGTextLayoutEngine
The main change is around the handling of "delta" adjustments
('dx' / 'dy'), that is changed to not require keeping state.
Additionally text-on-a-path layout is changed to track the
displacement from the path (the accumulated delta adjustments
in the perpendicular direction.) Baseline adjustments are
consolidated between code-paths and part of the "fragmentation"
condition is hoisted out of the per-"glyph" loop.

BUG=486669

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

Cr-Commit-Position: refs/heads/master@{#387694}
mostynb
move track_audio_renderer.{cc,h} to private_renderer_webrtc_sources
This unbreaks the no-webrtc build after
https://codereview.chromium.org/1891183002

BUG=596174

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

Cr-Commit-Position: refs/heads/master@{#387688}
mstensho
Invalidate column rules when the width of a multicol container changes.
BUG=587794

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

Cr-Commit-Position: refs/heads/master@{#387624}
mstensho
No reason to prevent subpixel column heights in the initial height calculation.
One test had to be updated, because Element.offsetHeight returns integers. The
column height in the test went from 34 to 33.3333333ish with this code change,
which is 33 if you ask offsetHeight.

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

Cr-Commit-Position: refs/heads/master@{#387560}
sigbjornf
Remove remaining OILPAN uses from core/events/
R=
BUG=585328

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

Cr-Commit-Position: refs/heads/master@{#387549}
mstensho
Don't call paginatedContentWasLaidOut() until we have the final layout.
Blocks may need relayout because of pagination, and calling
paginatedContentWasLaidOut() before that has taken place could make us account
for a leading pagination strut twice (once before the block child, and once
before the first line inside the block). In a nested multicol context this
could trigger creation of additional fragmentainer groups that will be
unneeded in the end.

This fixes the assertion mentioned in bug 594833, but new ones will pop up
instead, because of brokenness in the column balancer. That will be fixed in a
separate CL.

BUG=594833

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

Cr-Commit-Position: refs/heads/master@{#387548}
sigbjornf
Remove OILPAN from core/dom/shadow/
R=
BUG=585328

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

Cr-Commit-Position: refs/heads/master@{#387541}
sigbjornf
Remove OILPAN from core/dom/custom/
R=
BUG=585328

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

Cr-Commit-Position: refs/heads/master@{#387540}
sigbjornf
Remove XMLHttpRequest's non-Oilpan support for eager finalization.
R=
BUG=585328

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

Cr-Commit-Position: refs/heads/master@{#387538}
mstensho
Correct inline-block baseline calculation for multicol containers.
The last line of something inside a multicol container is in the flow thread
coordinate space, so we have to translate the baseline block offset into the
visual coordinate space.

BUG=335861

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

Cr-Commit-Position: refs/heads/master@{#387472}
fs
Replace CR/NL by space - don't remove altogether when xml:space=default
This moves handling of xml:space=default closer to the more generic
white-space handling, by not removing CR and NL characters, but rather
just replacing them with a regular space.
This modifies behavior, but means aligning with non-WebKit browser
engines.
This also simplifies the code a bit - with promise of further
simplification (or rather assimilation.)

TEST=svg/custom/text-whitespace-handling.svg
BUG=602606, 366558

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

Cr-Commit-Position: refs/heads/master@{#387440}
sigbjornf
Remove RawPtr.h
No longer used, so retire this Oilpan transitional wrapper type.

R=
BUG=585328

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

Cr-Commit-Position: refs/heads/master@{#387300}
fs
Reorder metrics iteration in LayoutSVGInlineText::updateMetricsList
This changes iteration to iterate BidiRuns and then collect metrics for
all characters in each run.

BUG=594058

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

Cr-Commit-Position: refs/heads/master@{#387283}
sigbjornf
Remove remaining binding layer RawPtr<>s.
R=haraken
BUG=585328

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

Cr-Commit-Position: refs/heads/master@{#387278}
rune
Allow multiple host pseudos in same compound.
As part of optimizing away :host(-context) selectors which never may
match, we also skipped selectors with multiple :host(-context) pseudos
in the same compound.

Removed assert in findBestRuleSetAndAdd as that would now be required
to traverse the whole compound again to cover everything.

BUG=601585

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

Cr-Commit-Position: refs/heads/master@{#387263}
sigbjornf
Remove unnecessary CanvasAsyncBlobCreator keep alive protection.
Closures keep their GCed arguments and |this| alive until completed,
hence manual keep-alive handling on top of that isn't required
for CanvasAsyncBlobCreator.

R=haraken
BUG=

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

Cr-Commit-Position: refs/heads/master@{#387260}
rune
Check willValidate() for :in-range and :out-of-range.
:in-range and :out-of-range should only match elements which are
candidates for constraint validation[1], and they are not when they are
disabled or read-only.

https://html.spec.whatwg.org/multipage/scripting.html#selector-in-range

R=tkent@chromium.org
BUG=602568

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

Cr-Commit-Position: refs/heads/master@{#387258}
sigbjornf
Safely iterate over MediaStreamSource observers.
When changing the ready state of this object, the resultant dispatching of
events by its observers may extend the observer set. Take a snapshot of
the observers, so as to be able safely iterate over it across additions.

R=
BUG=602273

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

Cr-Commit-Position: refs/heads/master@{#387243}
mstensho
ColumnBalancer: don't skip bounds checking on first or last fragmentainer groups.
There should be no need for this special-code. Whatever manages to end up
before the first column or after the last one is totally uninteresting to the
column balancer.

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

Cr-Commit-Position: refs/heads/master@{#387150}
mstensho
ColumnBalancer: Count line box overflow as space shortage.
Even if the line itself fits nicely inside a column, it may have bottom
overflow that crosses a column boundary. This needs to be counted as space
shortage, or the column balancer might end up over-stretching the columns.

LayoutTests/ietestcenter/css3/multicolumn/column-width-applies-to-007.htm
now passes when opened manually. This used to fail, at least on my machine.

BUG=543487

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

Cr-Commit-Position: refs/heads/master@{#387072}
fs
Simplify SVGElement::addToPropertyMap
Shaves a few instructions off (most prominently a call to the QualifiedName
destructor.)

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

Cr-Commit-Position: refs/heads/master@{#387024}
rune
Compare font-feature-settings as part of Font::operator==().
We only did a pointer comparison which always failed when doing a style
recalc since a style recalc always creates a new FontFeatureSetting
object.

R=eae@chromium.org
BUG=602802,602959

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

Cr-Commit-Position: refs/heads/master@{#387001}
sigbjornf
Remove never instantiated methods from PartitionAllocator.
R=
BUG=585328

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

Cr-Commit-Position: refs/heads/master@{#386944}
sigbjornf
Remove ENABLE(OILPAN) from ScriptRunner and PendingScript.
R=haraken
BUG=585328

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

Cr-Commit-Position: refs/heads/master@{#386938}
mstensho
Introduce fragmentainerGroupCapacity().
During layout, the flow thread portion of the currently last fragmentainer
group is unknown. So instead of calling logicalBottomInFlowThread() or
logicalHeightInFlowThread(), we multiply the column height with the used value
of column-count.

Seems a bit cleaner to wrap this multiplication inside a method.

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

Cr-Commit-Position: refs/heads/master@{#386817}
mostynb
remove unneeded scoped_ptr.h inclusions
BUG=554298

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

Cr-Commit-Position: refs/heads/master@{#386791}
sigbjornf
include RefCounted.h where needed, only.
R=
BUG=
CQ_INCLUDE_TRYBOTS=tryserver.chromium.win:win_optional_gpu_tests_rel;tryserver.chromium.mac:mac_optional_gpu_tests_rel

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

Cr-Commit-Position: refs/heads/master@{#386715}
mstensho
X11: Set window class for content_shell.
For Chrome, this happens in DesktopBrowserFrameAuraLinux::GetWidgetParams(),
but there was no counterpart for content_shell.

Setting a window class makes it easier to customize one's window manager for
content_shell.

R=peter@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#386657}
fs
Move SVGTextMetricsCalculator to LayoutSVGInlineText.cpp
Mostly plain code move, with some fixups in the (now folded)
updateMetricsList method. Also removes the non-const getter for the
metrics list.

BUG=594058

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

Cr-Commit-Position: refs/heads/master@{#386630}
fs
Refactor SVGTextLayoutAttributesBuilder::collectTextPositioningElements
This moves the creation of a TextPosition element for the <text> into
collectTextPositioningElements too, getting rid of the special case.

BUG=594058

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

Cr-Commit-Position: refs/heads/master@{#386622}
sigbjornf
Have bindings layer assume and insist that all interface types are GCed.
All interface types are now garbage collected, hence assume that to
hold when generating bindings code. Various simplifications become
possible as a result, like removing WrapperTypeInfo fields to per-type
de/refObject() static functions.

At the .idl level, [GarbageCollected] no longer conveys anything hence
the support (and use) for it is retired here also.

R=
BUG=585328
CQ_INCLUDE_TRYBOTS=tryserver.chromium.win:win_optional_gpu_tests_rel;tryserver.chromium.mac:mac_optional_gpu_tests_rel

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

Cr-Commit-Position: refs/heads/master@{#386620}
fs
Don't persist the SVGTextLayoutAttributesBuilder
No partial updates are performed on the structures contained within
the builder, so keeping them around between layouts only amounts to
memory wasted. With this change the builder is now more of a proper
builder. buildLayoutAttributesForTextRoot() is folded into
buildLayoutAttributes().

BUG=594058

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

Cr-Commit-Position: refs/heads/master@{#386616}
mostynb
convert //courgette to std::unique_ptr
BUG=554298

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

Cr-Commit-Position: refs/heads/master@{#386511}
mostynb
Convert //sql to use std::unique_ptr
BUG=554298

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

Cr-Commit-Position: refs/heads/master@{#386451}
tsniatowski
Use clang "--target=x" on android to help icecc
Icecc is confused by the two-argument "-target x" form, and decides to compile
everything locally. --target=x makes it happy.

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

Cr-Commit-Position: refs/heads/master@{#386419}
mstensho
Resurrect ASSERT(isFirstAfterBreak(flowThreadOffset()) || !box.paginationStrut()).
This assertion effectively became disabled by accident by
https://codereview.chromium.org/1856373002 , so that fuzzer bug 551312 stopped
asserting, although that bug is still very much present.

R=leviw@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#386418}
sigbjornf
Abandon Prerender upon finalizing PrerenderHandle.
Forcefully sever the connection to the embedder upon the PrerenderHandle
becoming unreachable and unused. Otherwise we risk Prerender leaks
and renderer shutdown crashes when the embedder tries to access Blink
after it has already been shut down.

R=haraken
BUG=602227

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

Cr-Commit-Position: refs/heads/master@{#386401}
sigbjornf
Move DOMArrayBuffer, DOMArrayBufferViews and DataView to the heap.
Thereby having all ScriptWrappable-derived types on the Oilpan heap.

R=haraken,tkent,ortuno
BUG=585328
CQ_INCLUDE_TRYBOTS=tryserver.chromium.win:win_optional_gpu_tests_rel;tryserver.chromium.mac:mac_optional_gpu_tests_rel

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

Cr-Commit-Position: refs/heads/master@{#386347}
fs
Only hit-test SVG <text> foreground
<text> doesn't have/paint any background, so performing hit-tests for
the various background is a both a waste of time, and gives rise to bugs
in some cases where poor precision renders false positives.
This also matches what LayoutSVGShape does (and <text> is a "graphics
element" just like the basic shapes.)
Rework the 'pointer-events: bounding-box' check to not rely on
nodeAtPoint. It's now somewhat consistent with how containers (<g>) are
handled.
This also affects how hit-testing works w/ 'textLength' ("artificial"
spaces will no longer be considered part of the <text> - this matches
the Firefox behavior.) Adjust svg/animations/svgenum-animation-3.html
to cater to this change in behavior.

BUG=601036

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

Cr-Commit-Position: refs/heads/master@{#386308}
fs
Use characters (not code units) when computing value list positions
The value list position is updated by one for each character, and not
at all when spaces are skipped (collapsed). When assigning value list
positions, we are currently counting surrogates as two (on for each
code unit.)
Use the text metrics data to count the number of (non-collapsed)
characters instead.

BUG=597312, 594058

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

Cr-Commit-Position: refs/heads/master@{#386305}
fs
Separate metrics update and layout attribute resolving
This splits the walkInlineText() function from SVGTextMetricsBuilder.cpp
into one function for computing the Vector of SVGTextMetrics (called
via updateTextMetrics in LayoutSVGInlineText) and one function for
computing the mapping of layout attributes (updateLayoutAttributes in
SVGTextLayoutAttributesBuilder.cpp).
This in turn mean that the UpdateAttribute helper struct is split and
done away with, similarly TreeWalkTextState.

BUG=594058

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

Cr-Commit-Position: refs/heads/master@{#386301}
fs
Invalidate text metrics when the <text> subtree is mutated
When the content of a text node is modified, we would only invalidate
positioning values and not text metrics. This would lead to incorrect or
inconsistent text metrics/fonts being used, which would lead to repaint
bugs and similar issues.
Make sure all mutations to the <text> subtree trigger text metrics re-
computation.

Also take this opportunity to move the definition of the
willBeDestroyed() method for slightly better grouping.

BUG=299497, 594058

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

Cr-Commit-Position: refs/heads/master@{#386300}
fs
Revert of Reland: Switch components/password_manager code from IPC messages to Mojo. (patchset #4 id:60001 of https://codereview.chromium.org/1866643002/ )
Reason for revert:
Appears to have caused:

FAILED: /b/build/slave/GPU_Linux_Builder/build/src/build/goma/client/gomacc ../../third_party/llvm-build/Release+Asserts/bin/clang++ -MMD -MF obj/chrome/browser/test_support_ui/password_manager_test_base.o.d -DV8_DEPRECATION_WARNINGS -DCLD_VERSION=2 -DENABLE_MDNS=1 -DENABLE_NOTIFICATIONS -DENABLE_PEPPER_CDMS -DENABLE_PLUGINS=1 -DENABLE_PDF=1 -DENABLE_PRINTING=1 -DENABLE_BASIC_PRINTING=1 -DENABLE_PRINT_PREVIEW=1 -DENABLE_SPELLCHECK=1 -DUSE_UDEV -DUI_COMPOSITOR_IMAGE_TRANSPORT -DUSE_AURA=1 -DUSE_PANGO=1 -DUSE_CAIRO=1 -DUSE_CLIPBOARD_AURAX11=1 -DUSE_DEFAULT_RENDER_THEME=1 -DUSE_GLIB=1 -DUSE_OPENSSL=1 -DUSE_NSS_CERTS=1 -DUSE_NSS_VERIFIER=1 -DUSE_X11=1 -DENABLE_WEBRTC=1 -DENABLE_EXTENSIONS=1 -DENABLE_TASK_MANAGER=1 -DENABLE_THEMES=1 -DENABLE_CAPTIVE_PORTAL_DETECTION=1 -DENABLE_SESSION_SERVICE=1 -DENABLE_APP_LIST=1 -DENABLE_SETTINGS_APP=1 -DENABLE_SUPERVISED_USERS=1 -DENABLE_SERVICE_DISCOVERY=1 -DENABLE_AUTOFILL_DIALOG=1 -DENABLE_TOPCHROME_MD=1 -DUSE_PROPRIETARY_CODECS -DFULL_SAFE_BROWSING -DSAFE_BROWSING_CSD -DSAFE_BROWSING_DB_LOCAL -DCHROMIUM_BUILD -DENABLE_MEDIA_ROUTER=1 -DFIELDTRIAL_TESTING_ENABLED -DCR_CLANG_REVISION=264915-1 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DGOOGLE_PROTOBUF_NO_RTTI -DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER -DTOOLKIT_VIEWS=1 -DGL_GLEXT_PROTOTYPES -DGTEST_HAS_POSIX_RE=0 -DGTEST_LANG_CXX11=0 -DGTEST_HAS_RTTI=0 -DSK_IGNORE_LINEONLY_AA_CONVEX_PATH_OPTS -DSK_SUPPORT_GPU=1 -DUNIT_TEST -I../.. -Igen -I../../build/linux/debian_wheezy_amd64-sysroot/usr/include/glib-2.0 -I../../build/linux/debian_wheezy_amd64-sysroot/usr/lib/x86_64-linux-gnu/glib-2.0/include -I../../third_party/protobuf/src -Igen/protoc_out -I../../third_party/protobuf/src -I../../third_party/protobuf -I../../third_party/khronos -I../../gpu -I../../testing/gtest/include -I../../build/linux/debian_wheezy_amd64-sysroot/usr/include/nss -I../../build/linux/debian_wheezy_amd64-sysroot/usr/include/nspr -I../../third_party/boringssl/src/include -I../../testing/gmock/include -I../../skia/config -I../../skia/ext -I../../third_party/skia/include/c -I../../third_party/skia/include/config -I../../third_party/skia/include/core -I../../third_party/skia/include/effects -I../../third_party/skia/include/images -I../../third_party/skia/include/lazy -I../../third_party/skia/include/pathops -I../../third_party/skia/include/pdf -I../../third_party/skia/include/pipe -I../../third_party/skia/include/ports -I../../third_party/skia/include/utils -I../../third_party/skia/include/gpu -I../../third_party/skia/src/gpu -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector -funwind-tables -fPIC -pipe -B../../third_party/binutils/Linux_x64/Release/bin -fcolor-diagnostics -fdebug-prefix-map=/b/build/slave/GPU_Linux_Builder/build/src=. -pthread -m64 -march=x86-64 -Wall -Werror -Wextra -Wno-missing-field-initializers -Wno-unused-parameter -Wno-c++11-narrowing -Wno-covered-switch-default -Wno-deprecated-register -Wno-unneeded-internal-declaration -Wno-inconsistent-missing-override -Wno-shift-negative-value -O2 -fno-ident -fdata-sections -ffunction-sections -g0 --sysroot=../../build/linux/debian_wheezy_amd64-sysroot -fvisibility=hidden -Xclang -load -Xclang ../../third_party/llvm-build/Release+Asserts/lib/libFindBadConstructs.so -Xclang -add-plugin -Xclang find-bad-constructs -Xclang -plugin-arg-find-bad-constructs -Xclang check-templates -Xclang -plugin-arg-find-bad-constructs -Xclang follow-macro-expansion -Wheader-hygiene -Wstring-conversion -Wno-header-guard -fno-threadsafe-statics -fvisibility-inlines-hidden -std=gnu++11 -fno-rtti -fno-exceptions -c ../../chrome/browser/password_manager/password_manager_test_base.cc -o obj/chrome/browser/test_support_ui/password_manager_test_base.o
In file included from ../../chrome/browser/password_manager/password_manager_test_base.cc:13:
In file included from ../../chrome/browser/password_manager/chrome_password_manager_client.h:15:
In file included from ../../components/password_manager/content/browser/credential_manager_impl.h:13:
In file included from gen/components/password_manager/content/public/interfaces/credential_manager.mojom.h:26:
gen/components/password_manager/content/public/interfaces/credential_manager.mojom-internal.h:14:10: fatal error: 'url/mojo/origin.mojom-internal.h' file not found
#include "url/mojo/origin.mojom-internal.h"

(https://build.chromium.org/p/chromium.gpu/builders/GPU%20Linux%20Builder/builds/58271/steps/compile/logs/stdio)

Original issue's description:
> Reland: Switch components/password_manager code from IPC messages to Mojo.
>
> Original CL was found breaking android gn build after landed.. #strange
> Fix BUILD.gn and reland.
>
> The original CL:
> https://crrev.com/d20fb918841354a75546fa38b5307aaba117598b
>
> Original CL description follows:
>
> Replace credential_manager_messages.h IPC to Mojo service.
>
> BUG=582391
>
> Committed: https://crrev.com/4a2f71f4c9e9e2c3ac0e4622c12e5dc0c5ebfe24
> Cr-Commit-Position: refs/heads/master@{#386290}

TBR=jochen@chromium.org,amistry@chromium.org,rockot@chromium.org,tsepez@chromium.org,vabr@chromium.org,leon.han@intel.com
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=582391

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

Cr-Commit-Position: refs/heads/master@{#386297}
fs
Add test for metrics invalidation on textnode removal
This tests that text metrics (read: collapsing info) are updated as
needed when a text node is removed.

BUG=299497, 594058

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

Cr-Commit-Position: refs/heads/master@{#386223}
mstensho
Correctly account for nested multicol top border / padding.
Top border and padding will be baked into the first LayoutColumnSet object of a
multicol container, but not until the column set is laid out. Since column sets
are laid out after flow threads, use a more reliable way to include top border
and padding.

BUG=552615

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

Cr-Commit-Position: refs/heads/master@{#386213}
mostynb
remove klundberg from build/android/OWNERS
Requested over in https://codereview.chromium.org/1875663002/

TBR=mikecase@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#386206}
mostynb
support adding symlinks to zip files
Add symlinks as symlinks to zip files, not their target
in place of the symlink.

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

Cr-Commit-Position: refs/heads/master@{#386199}
sigbjornf
Add support for URL.searchParams getter.
Add the missing piece to our URLSearchParams implementation;
the readonly attribute for URL, URL.searchParams:

 https://url.spec.whatwg.org/#dom-url-searchparams

The currently spec'ed connection between URL and URLSearchParams is
a lot less general than previous designs, hence the object lifetime
complexities it ran into (see https://codereview.chromium.org/143313002/)
falls away.

Intent to Implement and Ship (for URLSearchParams and this URL attribute):

 https://groups.google.com/a/chromium.org/d/msg/blink-dev/grHZDbldP04/JdsoQ169AQAJ

R=mkwst
BUG=303152

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

Cr-Commit-Position: refs/heads/master@{#386189}
fs
Wait for 'load' in svg/wicd/test-rightsizing-b.xhtml
BUG=444095

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

Cr-Commit-Position: refs/heads/master@{#386089}
rune
Revert of Don't apply style elements or PIs with loading imports. (patchset #2 id:20001 of https://codereview.chromium.org/1867513002/ )
Reason for revert:
This change is incompatible with what Gecko and Blink used to do when inserting an @import rule with insertRule() into a style element sheet.

Inserting a style element with script, immediately followed by an @import insertRule() behaves differently than inserting the style element containing that @import rule in the text because the <style> element is processed before the insertRule. Both Gecko and Blink (without this CL) applies the main stylesheet while the @import inserted with insertRule is loading, while they don't when @import is part of the text node child.

The behavior for inserting @import is not specified, and zcorpan reported [1].

[1] https://www.w3.org/Bugs/Public/show_bug.cgi?id=29566

Original issue's description:
> Don't apply style elements or PIs with loading imports.
>
> updateLayoutTreeIgnorePendingStylesheets may resolve styles when sheets
> are loading. For link elements, the main stylesheet is not applied if
> any of its @imports are still loading. For style elements and
> xml-stylesheets, we did apply the contents of the main stylesheet while
> its @imports were loading. That means we applied half-baked stylesheets
> and we had an inconsistency between link and style. Instead regard
> style elements and processing instructions as loading when @imports are
> loading.
>
> BUG=600733
>
> Committed: https://crrev.com/456c101025b6c470dce2a6af3b0d70cb2950a980
> Cr-Commit-Position: refs/heads/master@{#385564}

TBR=esprehn@chromium.org,timloh@chromium.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=600733

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

Cr-Commit-Position: refs/heads/master@{#386081}
sigbjornf
Clean up CompositorPendingAnimations inclusion.
No need for Document.h to include this header; remove +
follow up on various IWYU violations that surfaces as a
result.

Also tidy up IntersectionObserver inclusion + remove its
non-Oilpan code.

R=haraken
BUG=

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

Cr-Commit-Position: refs/heads/master@{#386042}
hugoh
Add ssl_error's dependency to network_time in gyp
https://codereview.chromium.org/1772143002 updated
BUILD.gn but not the corresponding ssl_errors.gypi.

Without this fix gyp-builds get undefinded references
to NetworkTimeTracker::GetNetworkTime() when linking.

BUG=589700

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

Cr-Commit-Position: refs/heads/master@{#386025}
sigbjornf
Prerender need to be on the Oilpan heap.
The object implementing the PrerenderClient is LinkLoader, which is
an object that's Oilpan heap allocated. Consequently, it cannot be
kept Prerender as a bare pointer, but needs to be traced and accounted
for during garbage collections.

The simplest way to handle that is to move Prerender to the Oilpan
heap.

R=haraken,jochen
BUG=

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

Cr-Commit-Position: refs/heads/master@{#386007}
rune
Plugin element widget may be a RemoteFrameView.
Corrected ASSERT and re-enabled test.

Removed ENABLE(OILPAN) ifdef in the neighborhood since its removal is
in progress.

R=dcheng@chromium.org,lukasza@chromium.org
BUG=601581

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

Cr-Commit-Position: refs/heads/master@{#386005}
sigbjornf
Add setIndexedDBClientCreateFunction() explanatory comment.
Follow up changes in r385772 and r385733 with a comment to
try to explain why update atomicity matters here.

R=
BUG=598551, 599011
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#386000}
mstensho
Only allow forced fragmentainer breaks at class A break points.
https://drafts.csswg.org/css-break/#possible-breaks
https://drafts.csswg.org/css-break/#forced-breaks

The essential change is that forced breaks are not allowed before a first child
or after a last child, only between siblings. Floats and auto-positioned
out-of-flow siblings after the last in-flow child still need to honor the
break-after value of said last in-flow child, though.

Updated the forced-break-before-complex-margin-collapsing.html test, since it
became invalid. Top margins after forced breaks should not be eaten by the
column boundary. It also made an incorrect assumption about inserting a forced
break in front of a first child block. That's no valid class A break point.

This change also made printing/css2.1/page-break-after-003.html pass, which
has a break-after:page block with no in-flow block following it - i.e. there'll
be no class A break point for it to have any effect. It should not create a
blank page at the end.

BUG=223068,539873

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

Cr-Commit-Position: refs/heads/master@{#385955}
mstensho
Make top-layer elements work also when the viewport is paginated.
When the viewport is paginated (by overflow:-webkit-paged-* specified on HTML
or BODY), top-layer elements are redirected to a flow thread, along with
everything else. So we have to go through the children of the flow thread, not
the children of the layout view, when looking for them.

BUG=594306

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

Cr-Commit-Position: refs/heads/master@{#385883}
mboc
Export the tablet mode checking function from base.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#385832}
sigbjornf
Avoid IndexedDBClient::create() read race.
R=haraken
BUG=598551

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

Cr-Commit-Position: refs/heads/master@{#385772}
sigbjornf
Avoid setIndexedDBClientCreateFunction() write race.
R=haraken
BUG=599011

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

Cr-Commit-Position: refs/heads/master@{#385733}
fs
Rebaseline svg/wicd/test-rightsizing-b.xhtml
Get latest result from the bots.

TBR=davve@opera.com
BUG=444095

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

Cr-Commit-Position: refs/heads/master@{#385713}
sigbjornf
Make VTTParserClient the GC mixin it needs to be.
Unsafe for the VTTParser to keep a raw pointer to the GCed object
implementing this client interface.

R=haraken
BUG=

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

Cr-Commit-Position: refs/heads/master@{#385688}
tmoniuszko
Accept absolute Windows paths without leading slash in GN commands
Leading slash is removed before path is passed to GN when command is run
on MSYS shell. See http://www.mingw.org/wiki/Posix_path_conversion.

BUG=590686

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

Cr-Commit-Position: refs/heads/master@{#385686}
tsniatowski
Add android_libcpp_lib_dir gn arg
Port android_libcpp_libs_dir from gyp, where it was possible to override
this directory. Allows using a custom libc++ easily.

BUG=359249

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

Cr-Commit-Position: refs/heads/master@{#385679}
sigbjornf
Have the mock PlatformSpeechSynthesizer ignore pause/resume sometimes.
Should pause()/resume() be attempted without nothing being currently
spoken, just ignore.

R=
BUG=600664

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

Cr-Commit-Position: refs/heads/master@{#385670}
rune
Don't persist plugins across reattach for widget updates.
HTMLPluginElement::lazyReattachIfNeeded() is called for changes where we
expect the plugin to be re-initialized. For instance, if the type or
data attributes changes on <object>. In theory, a detach() as part of a
plugin-persisting lazy re-attach done previously may already have put
the plugin widget into the persisted plugin widget member. In that case
we will return early from detach() which is why we're resetting the
persisted widget in lazyReattachIfNeeded() instead of handling it in
detach().

R=esprehn@chromium.org
BUG=567329

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

Cr-Commit-Position: refs/heads/master@{#385590}
rune
Don't apply style elements or PIs with loading imports.
updateLayoutTreeIgnorePendingStylesheets may resolve styles when sheets
are loading. For link elements, the main stylesheet is not applied if
any of its @imports are still loading. For style elements and
xml-stylesheets, we did apply the contents of the main stylesheet while
its @imports were loading. That means we applied half-baked stylesheets
and we had an inconsistency between link and style. Instead regard
style elements and processing instructions as loading when @imports are
loading.

BUG=600733

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

Cr-Commit-Position: refs/heads/master@{#385564}
mostynb
Convert //sandbox to use std::unique_ptr
BUG=554298

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

Cr-Commit-Position: refs/heads/master@{#385445}
mostynb
fix incorrect libstdc++ from GCC >= 5.1 check
Assume that libstdc++ from GCC >= 5.1 is being used only when compiling with GCC >= 5.1.

This unbreaks GCC 4.8.5 and 4.9.3 builds after https://codereview.chromium.org/1837563002/
landed.

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

Cr-Commit-Position: refs/heads/master@{#385416}
sigbjornf
Remove ENABLE(OILPAN) uses in wtf/
R=
BUG=585328

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

Cr-Commit-Position: refs/heads/master@{#385411}
mstensho
Initialize child framesets when they become part of the parent frameset grid.
The number of child frames and framesets in a parent frameset grid may be
increased by a script after initial layout. Framesets that initially were not
part of the grid were left uninitialized, i.e. their GridAxis objects are
empty, and the layout object size is 0x0. As soon as such a frameset becomes
part of the grid later on, it typically gets a size, which positionFrames()
will detect and lay it out. However, since zero-width columns and zero-height
rows are allowed, if the size of the child frameset remains at 0x0, we cannot
just base the need for layout (which initializes the frame sets) on them
getting a new size.

BUG=594834

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

Cr-Commit-Position: refs/heads/master@{#385404}
fs
Simplify layout attribute invalidation in LayoutSVGText
Move invalidation to a new method (invalidatePositioningValues), and
also make sure to clear LayoutSVGText::m_layoutAttributes to make it
more robust.

BUG=405966, 594058

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

Cr-Commit-Position: refs/heads/master@{#385274}
mstensho
Adding tall content may require insertion of more than one additional column row.
There's no guarantee that adding just one column row has created enough columns
to flow the content into. So add as many as we need.

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

Cr-Commit-Position: refs/heads/master@{#385226}
fs
Rebuild layout attributes on layout instead of on layout tree updates
What layout attributes are used (for a text node; LayoutSVGInlineText),
depends on how many "characters" precedes the node in question.
Layout attributes were updated on insertions and removals on the layout
tree, by find the node to update, and update the surrounding nodes.
It were however trying to depend on the order in which nodes were being
attached, which meant that a sequence of updates could lead to incorrect
layout attribute (indices) being computed. The process per node is also
essentially O(n) (albeit a fairly cheap such.)
Instead of updating on add/remove/update of nodes, just mark the position
data as invalid, and update on the next layout of the <text> root. This
also has the side-effect of simplifying the code quite significantly,
and should avoid repeatedly resolving the layout attribute indices.

Also take the opportunity to pass LayoutSVGText references and simplify
related code a bit.

BUG=405966, 594058

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

Cr-Commit-Position: refs/heads/master@{#385149}
sigbjornf
Update Source/platform/ to assume Oilpan only.
R=haraken
BUG=585328

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

Cr-Commit-Position: refs/heads/master@{#385145}
fs
Fold 'rotate' attribute semantics into the attribute list iterator
With a small increase in complexity in the updateCharacterData() method
in the AttributeListsIterator helper, the loop handling the 'rotate'
"tail" semantics can be folded into the loop updating all attributes.

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

Cr-Commit-Position: refs/heads/master@{#385128}
sigbjornf
Avoid unnecessary DocumentElementSetMap hash table updates.
Alter the representation of the singleton map used to track the
correspondence between Documents and their media elements.

Additions and removals become slightly cheaper as a result.

R=
BUG=

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

Cr-Commit-Position: refs/heads/master@{#385126}
fs
Iteration helper for SVGTextLayoutAttributesBuilder::fillCharacterDataMap
Add helper AttributeListsIterator that keeps the iteration state for
the x, y, dx, dy and rotate attribute lists.

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

Cr-Commit-Position: refs/heads/master@{#385124}
sigbjornf
Remove unused DEFINE_STATIC_REF_WILL_BE_PERSISTENT().
R=
BUG=585328

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

Cr-Commit-Position: refs/heads/master@{#385062}
rune
Removed TODO as non-matching host rules are skipped earlier.
The TODO comment was about non-matching selectors like "div:host" or
":host.class". Such selectors are ignored for RuleSet when returning
SelectorNeverMatches from collectFeaturesFromRuleData.

R=timloh@chromium.org,esprehn@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#385025}
mostynb
convert //mash to std::unique_ptr
BUG=554298

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

Cr-Commit-Position: refs/heads/master@{#384948}
mostynb
convert //chrome_elf to std::unique_ptr
BUG=554298

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

Cr-Commit-Position: refs/heads/master@{#384925}
sigbjornf
Improve DEFINE_STATIC_LOCAL()'s handling of Blink GCed objects.
Extend DEFINE_STATIC_LOCAL() to automatically wrap up heap objects
being exposed as static singletons -- the wrapping happening by
way of a Persistent<>.

With that in place, simplify various uses of DEFINE_STATIC_LOCAL()
along with phasing out the use of DEFINE_STATIC_REF_WILL_BE_PERSISTENT()
entirely.

R=haraken
BUG=585328

Committed: https://crrev.com/18dc8ecff5ba68d28fc536f723ae3c57eafa1b4e
Cr-Commit-Position: refs/heads/master@{#384887}

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

Cr-Commit-Position: refs/heads/master@{#384904}
sigbjornf
Simplify LifecycleNotifier and Observer.
With Oilpan permanently enabled, let go of some dead code.

R=haraken
BUG=585328

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

Cr-Commit-Position: refs/heads/master@{#384897}
sigbjornf
Revert of Improve DEFINE_STATIC_LOCAL()'s handling of Blink GCed objects. (patchset #7 id:120001 of https://codereview.chromium.org/1850413002/ )
Reason for revert:
Don't understand what happened here, but compilation breakage seen https://build.chromium.org/p/chromium.webkit/builders/WebKit%20Mac%20Builder/builds/155272

Original issue's description:
> Improve DEFINE_STATIC_LOCAL()'s handling of Blink GCed objects.
>
> Extend DEFINE_STATIC_LOCAL() to automatically wrap up heap objects
> being exposed as static singletons -- the wrapping happening by
> way of a Persistent<>.
>
> With that in place, simplify various uses of DEFINE_STATIC_LOCAL()
> along with phasing out the use of DEFINE_STATIC_REF_WILL_BE_PERSISTENT()
> entirely.
>
> R=haraken
> BUG=585328
> NOTRY=true
>
> Committed: https://crrev.com/18dc8ecff5ba68d28fc536f723ae3c57eafa1b4e
> Cr-Commit-Position: refs/heads/master@{#384887}

TBR=oilpan-reviews@chromium.org,haraken@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=585328

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

Cr-Commit-Position: refs/heads/master@{#384890}
sigbjornf
Improve DEFINE_STATIC_LOCAL()'s handling of Blink GCed objects.
Extend DEFINE_STATIC_LOCAL() to automatically wrap up heap objects
being exposed as static singletons -- the wrapping happening by
way of a Persistent<>.

With that in place, simplify various uses of DEFINE_STATIC_LOCAL()
along with phasing out the use of DEFINE_STATIC_REF_WILL_BE_PERSISTENT()
entirely.

R=haraken
BUG=585328
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#384887}
mostynb
convert //headless to std::unique_ptr
BUG=554298

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

Cr-Commit-Position: refs/heads/master@{#384880}
mostynb
convert //testing to std::unique_ptr
BUG=554298

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

Cr-Commit-Position: refs/heads/master@{#384872}
rune
Fixed ::slotted performance in pure v1 shadow documents.
Instead of traversing all m_treeBoundaryCrossingScopes matching rules
from other scopes, just walk the assignedSlot() chain for resolvers.
This makes rule matching a lot cheaper since quite a lot of components
have tree boundary crossing rules in practice (polymer apps using v0
typically have hundreds of such scopes).

The assumption here is that the assignedSlot chain most of the time
will be quite short and/or cheap to walk.

Introducing a flag set in StyleEngine if there ever exists a v0 shadow
tree to fall back to traversing m_treeBoundaryCrossingScopes when
necessary.

For the slotted.html demo in crbug.com/599833, the full recalc with
~4000 elements goes from ~800ms to ~40ms with this change when each
shadow tree has a ::slotted rule. No substantial regression for the
case without ::slotted rules.

Added a test for /deep/ being used a descendant combinator in a
document without shadow trees, as I feared I might have broken that and
I couldn't find any existing tests for it.

For later, we may choose to never collect m_treeBoundaryCrossingScopes
for pure v1 documents, but that means we would have to recreate that
collection once we add a v0 shadow to the document.

R=kochi@chromium.org,hayato@chromium.org,dglazkov@chromium.org
BUG=599833

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

Cr-Commit-Position: refs/heads/master@{#384867}
sigbjornf
Remove now-unused kConstantInModule.
TBR=thakis,wfh
BUG=550065

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

Cr-Commit-Position: refs/heads/master@{#384866}
mostynb
remove gwilson from rlz/OWNERS
Review URL: https://codereview.chromium.org/1855833002

Cr-Commit-Position: refs/heads/master@{#384857}
mostynb
convert //apps to std::unique_ptr
BUG=554298

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

Cr-Commit-Position: refs/heads/master@{#384853}
sigbjornf
Make WTF::IsGarbageCollectedType<> work for GC mixin instances.
The trick that IsGarbageCollectedType<T> uses of probing for the presence
of a "marker" type name within T to detect if T derives from a GC base
or is another kind of heap object, doesn't work for GC mixins.

For instance,

 class Mixin : public GarbageCollectedMixin { ... };
 class Use : public GarbageCollected<Use>, public Mixin {
     USING_GARBAGE_COLLECTED_MIXIN(Use);
     ...
 };

As both GarbageCollected<> and GarbageCollectedMixin<> provide the marker
type name, referring to the marker type name is ambiguous when attempted
over Use. Address the problem by overriding and defining the marker for
mixin instances also.

R=haraken
BUG=

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

Cr-Commit-Position: refs/heads/master@{#384851}
mostynb
convert //rlz to std::unique_ptr
BUG=554298

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

Cr-Commit-Position: refs/heads/master@{#384837}
mostynb
Convert //url to use std::unique_ptr
BUG=554298

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

Cr-Commit-Position: refs/heads/master@{#384831}
mostynb
Convert //gin to use std::unique_ptr
BUG=554298

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

Cr-Commit-Position: refs/heads/master@{#384830}
sigbjornf
Simplify ScriptStreamer lifetime handling.
Remove manual keep-alive ref counting for ScriptStreamer across a posted
task; unnecessary as the closure will keep a strong enough reference as-is.

R=haraken
BUG=

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

Cr-Commit-Position: refs/heads/master@{#384811}
sigbjornf
Hide PingLoader lifetime implementation detail from outside view.
The self-sustaining nature of ping loader objects while the request is
in-flight is an internal implementation detail. Reflect that by having
the class type derive from just GarbageCollectedFinalized> and instead
internally manually manage a SelfKeepAlive<> reference.

R=haraken
BUG=

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

Cr-Commit-Position: refs/heads/master@{#384810}
sigbjornf
Round out WillBe type removal.
A few leftovers.

R=haraken
BUG=585328

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

Cr-Commit-Position: refs/heads/master@{#384804}
sigbjornf
HeapSupplements are now just Supplements.
Replace occurrences of HeapSupplement with Supplement and retire the
former name (HeapSupplement.)

R=haraken
BUG=585328

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

Cr-Commit-Position: refs/heads/master@{#384803}
mstensho
All ancestor multicols must have enough rows before laying out some inner multicol.
We had code in place to insert new rows (and rows in enclosing fragmentation
contexts) when we ran out of space during layout, but we didn't make sure
initially that enough rows had been created, which would result in calculating
an incorrect column height and cause general confusion.

appendNewFragmentainerGroupIfNeeded() now needs to take a PageBoundaryRule
argument (since the new code in this CL deals with top offsets rather than
bottom offsets).

BUG=597058, 588364

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

Cr-Commit-Position: refs/heads/master@{#384800}
mstensho
Correct conversion from flowthread to visual coordinate space when there's border/padding.
If an inner multicol container has border or padding, just using the outer
block offset stored in the inner flow thread won't be good enough. We need to
find the actual first fragmentainer group in the first column set.

Or, put simply: let's do what the comment in the code actually says!

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

Cr-Commit-Position: refs/heads/master@{#384737}
ckulakowski
Make global variable gTimeDeltaForTesting lazily created.
It's a fix for compilation error: "declaration requires a global constructor [-Werror,-Wglobal-constructors]"

BUG=

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

Cr-Commit-Position: refs/heads/master@{#384724}
sigbjornf
Simplify Supplementables post Oilpan.
R=
BUG=585328

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

Cr-Commit-Position: refs/heads/master@{#384689}
fs
Use HashMap::add in SVGTextLayoutAttributesBuilder
Removes some redundancies and eliminates double-hashing.
Do the update of default values last. (Avoids assert in AddResult
destructor.)

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

Cr-Commit-Position: refs/heads/master@{#384599}
rune
Removed unused non-const accessors for stylesheet lists.
R=mstensho@opera.com

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

Cr-Commit-Position: refs/heads/master@{#384578}
fs
Move metrics list storage to LayoutSVGInlineText
It was previously stored in SVGTextLayoutAttributes (which is stored in
LayoutSVGInlineText). The connection between these two is very loose, so
letting the metrics be a part of the attributes structure doesn't feel
entirely logical. There's still a back-pointer in the attributes
structure, which means it's still reachable in the same way (albeit with
one additional indirection.)
Rename the various accessors to metricsList().

BUG=594058

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

Cr-Commit-Position: refs/heads/master@{#384450}
rune
No need to look up Document from Element.
Instead use the document() from StyleResolver.

R=kochi@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#384325}
rune
Add trace event for updateActiveStyleSheets.
Added for inspecting performance changes for async stylesheet update
and show how much time stylesheet update will account for when moved to
the updateLayoutTree part of the lifecycle.

Will not be called often enough to cause a performance issue in itself.

R=mstensho@opera.com
BUG=567021

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

Cr-Commit-Position: refs/heads/master@{#384237}
fs
Pass LineLayoutSVGInlineText to SVGTextMetricsCalculator
Slightly more on the Layout API bandwagon.

BUG=594058

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

Cr-Commit-Position: refs/heads/master@{#384137}
fs
Move SVGTextPositioningElement::elementFromLayoutObject
...to SVGTextLayoutAttributesBuilder.cpp, since that is where it's used.
Turn the entry if into an ASSERT (because it's trivial to see that the
condition always holds in this context.)

BUG=594058

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

Cr-Commit-Position: refs/heads/master@{#384136}
mboc
Avoid applying alpha twice in RenderText.
BUG=575186

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

Cr-Commit-Position: refs/heads/master@{#384055}
rune
Introduce setNeedsActiveStyleUpdate for adding/removing stylesheets.
Remove the add/remove/modify methods which did not have different
implementations anyway. The plan is to let the async active stylesheet
update detect which StyleSheetContents have been added and which have
been removed and invalidate style and caches accordingly.

I've started to write up the plan here: http://bit.ly/25uxtnU

BUG=567021

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

Cr-Commit-Position: refs/heads/master@{#384008}
rune
No need for resolverChanged from xml parser.
StyleEngine::resolverChanged now updates the list of active stylesheets.
At some point resolverChanged caused a synchronous style recalc and
layout tree update. There are indications that XSL transforms also were
hooked into that code based on the comments. XSL transforms are
triggered on XSL PI source loaded or DOM content loaded event. For CSS
stylesheets resolverChanged should be called from the StyleEngine when
sheets finishes loading etc like we do for HTML documents.

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

Cr-Commit-Position: refs/heads/master@{#383933}
rune
Ensure fullscreen.css loaded for ancestor invalidation
Using invalidation sets caused regression crbug.com/596803 because we
only ensured the fullscreen.css had features available for style
resolving in the fullscreened element's document. This CL ensures the
features are up-to-date for all fullscreen related pseudoStateChanged.

I was not able to reproduce the problem in 596803, but 448721 also
regressed and I've confirmed this CL fixes that regression.

The added layout test does not fail without this fix because the
full screen implementation in content_shell is different and
setMediaType() for fullscreen on resize causes a full recalc of
everything in content_shell before we try to apply fullscreen style
changes. However, if mediaQueryAffectingValueChanged was smarter when
changing media type to fullscreen. That test would have failed.

BUG=596803

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

Cr-Commit-Position: refs/heads/master@{#383711}
fs
Regenerate Win7/Android baselines for a few SVG letter-spacing tests
Didn't appear successful on the first try.

TBR=dgrogan@chromium.org
BUG=583298

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

Cr-Commit-Position: refs/heads/master@{#383226}
fs
Always create a BidiRun in SVGTextMetricsBuilder
Create a BidiRun for the 'override' case too, to avoid a bunch of
special cases. Since we always have a BidiRun now, null-checks can be
removed, and code simplified a bit. (Hopefully even more in the future.)
Also make "8-bit" (latin1) strings take this code-path. (This was
handled by the SimpleShaper path previously.)

BUG=594058

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

Cr-Commit-Position: refs/heads/master@{#383224}
fs
Add spacingDisabled() check to ShapeResultSpacing
SVGTextLayoutEngine applies letter-spacing and word-spacing itself, so
without this we'd apply the spacing properties twice.
This is essentially a bandaid work-around, until we can figure out how
to handle this in a better way.

BUG=583298

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

Cr-Commit-Position: refs/heads/master@{#383078}
tmoniuszko
Convert GN group targets to Visual Studio projects
BUG=596895

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

Cr-Commit-Position: refs/heads/master@{#383042}
fs
More explicit SVGTextMetrics construction
This makes SVGTextMetrics dumber - essentially POD - leaving all
measuring etc. to whoever creates one (SVGTextMetricsBuilder/Calculator)
for a minor "cost" in complexity.
This makes SVGTextMetrics not depend on LineLayoutSVGInlineText.

Drop SVGTextMetrics::setWidth too since it's unused.

BUG=594058

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

Cr-Commit-Position: refs/heads/master@{#382944}
fs
Move SVGTextMetrics::constructTextRun to SVGTextMetricsBuilder
New resting place is the SVGTextMetricsCalculator helper class.
This avoids using this function to create runs based on the wrong BiDi
context.
Also wrap the static bits of SVGTextMetricsBuilder.cpp in an unnamed
namespace, removing a few 'static' keywords.

BUG=596721, 594058

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

Cr-Commit-Position: refs/heads/master@{#382938}
davve
Document how effective zoom relates to StyleImage sizing
BUG=561519

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

Cr-Commit-Position: refs/heads/master@{#382859}
tmoniuszko
Make some chrome feature flags customizable in GN build
These flags are customizable in GYP build.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#382854}
davve
Straighten out zoom and border-image
The border-image-slice property determines how the image is sliced
into the nine piece pattern. Since border-image-slice are not lengths,
they are not automatically zoomed in computed style. Thus the zoom
factor hasn't been applied to the image size either. For border-image
the image size has no impact on the destination area anyway, so this
part is fine.

However, the default object size is in zoomed coordinates and unless
the default object size is unzoomed, there will be a mix of zoomed and
unzoomed coordinates when calculating the final image size for image
sizes that depend on the default object size, e.g. SVG with no
intrinsic size.

For this reason, unzoom the default object size before using it to
compute the image size.

Since the zoom passed to StyleImage::image() should represent the zoom
applied to the image size, it follows from this that the zoom should
be one.

BUG=596075, 561519

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

Cr-Commit-Position: refs/heads/master@{#382842}
fs
Use the line box's direction in computeGlyphOverflow
Use SVGInlineTextBox::constructTextRun in order to get the direction as
determined by the BiDi algorithm rather than the what is specified on
the element. (This should also get the right override value for similar
reasons.)

BUG=596721

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

Cr-Commit-Position: refs/heads/master@{#382655}
fs
Remove unused SVGTextMetrics constructor
This version of the SVGTextMetrics constructor is no longer used after
SVGTextMetrics::measureCharacterRange was removed by
https://codereview.chromium.org/1773403002.

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

Cr-Commit-Position: refs/heads/master@{#382573}
fs
Optimize the characterNumberAtPositionCallback text query
Refactor the calculateGlyphPositionWithoutTransform and
calculateGlyphBoundaries helpers to get logicalGlyphPositionToPhysical
and physicalGlyphExtents.
Use the new methods to implement characterNumberAtPositionCallback as an
iteration over the contributing glyphs, thereby avoiding the O(n^2) for
glyph bounds calculation.

Also fold calculateFragmentBoundaries into
characterNumberAtPositionCallback, because it is trivial, and most of it
is needed for the remaining part of the function too.

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

Cr-Commit-Position: refs/heads/master@{#382557}
fs
Make the findMetricsForCharacter SVGTextQuery-helper return an iterator
Convert the helper to return an iterator into the metrics vector. Then
use that new property in the calculateGlyphRange helper to avoid O(n^2)
runtime.

Also remove modifyStartEndPositionsRespectingLigatures, because all
users of it (indirectly through
mapStartEndPositionsIntoFragmentCoordinates) now uses the pre-computed
text metrics - which should account for the same thing automatically.
Also fix up the TODO in endPositionOfCharacterCallback by doing what it
says.

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

Cr-Commit-Position: refs/heads/master@{#382536}
tmoniuszko
Make rebase_path() aware of Windows drive letter capitalization
Make sure rebase_path() supports both capital and non-capital Windows path
drive letters. It's unable to find common path prefix otherwise.

BUG=596072

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

Cr-Commit-Position: refs/heads/master@{#382532}
rune
Use LocalStyleChange for text direction changes.
Changing the dir attribute or inserting text content into the document
may affect the CSS direction property through presentation style. The
code traversed and marked the parent elements affected by such changes
but use SubtreeStyleChange which recalculate more style than necessary.
Instead use LocalStyleChange as that will also cause inheritance to
happen appropriately.

R=kojii@chromium.org
BUG=596509

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

Cr-Commit-Position: refs/heads/master@{#382442}
rune
Use invalidation sets for fullscreen pseudos.
Schedule invalidation sets on elements changing state for
:-webkit-full-screen and:-webkit-full-screen-ancestor.

Lazily load the UA style for fullscreen, but before we enter fullscreen
the first time to have the invalidation sets available for style
invalidation

BUG=442239

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

Cr-Commit-Position: refs/heads/master@{#382405}
rune
Clear baseComputedStyle when text-autosizing changes.
baseComputedStyle is an optimization for animations where the computed
style before animations are applied is cached and cloned to have
cheaper style recalcs for per-frame animation changes. An assumption is
that the computed style for the layout object only changes in
styleForElement or pseudoStyleForElement. That assumption is not true
for text autosizing as the computed style may be changed during layout.
Then, for the next animation frame, the text autosizing factor may be
different even though the style has not been marked for recalc, and the
sanity check for an unchanged baseComputedStyle will trigger an assert.

Make sure we clear the baseComputedStyle for an element when the text
autosizing factor changes.

R=pdr@chromium.org,drott@chromium.org
BUG=596018

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

Cr-Commit-Position: refs/heads/master@{#382350}
mstensho
Shift flowthread-to-visual coordinate space conversion one level up in the tree.
The conversion now takes place between the flow thread and its parent multicol
container, rather than between the flow thread and its children.

This is both conceptually more correct, and it also matches what
mapToVisibleRectInAncestorSpace() already does. Having all machineries do this
at the same place in the tree is what fixes the editing-specific bug 596070.

As for layer clipping bug 527709, it just so happens that we specify the flow
thread as ancestor in mapLocalToAncestor(), which is invoked via
localToAncestorPoint() from PaintLayerClipper::calculateClipRects().
PaintLayerClipper does its work *before* fragments have been collected and set
up for a given layer, so it doesn't want mapLocalToAncestor() or anyone to
change to the visual coordinate space.

BUG=527709,596070
R=leviw@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#382339}
fs
Make calculateGlyphBoundaries helper return the computed bounds
Review URL: https://codereview.chromium.org/1821613002

Cr-Commit-Position: refs/heads/master@{#382275}
fs
Push ScriptWrappable inheritance down from SVGAnimatedPropertyBase
Rather than letting the base inherit and then override for actually
wrappable subclasses, put the inheritance in the subclasses.
This avoids having "dead" ScriptWrappables on subclasses that don't need
this functionality.
Since this removes the last user of the DEFINE_WRAPPERTYPEINFO_NOT_REACHED
macro, remove that too.

BUG=596011

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

Cr-Commit-Position: refs/heads/master@{#382265}
mstensho
Untangle multicol coordinate space conversion from offsetFromContainer().
The various offsetFromContainer() implementations used to convert from flow
thread coordinates to visual coordinates if the container was a flow thread.
That works when mapping a position relatively to some ancestor, but not when
mapping a position relatively to some descendant. Put differently: It works
fine when walking upwards in a tree, but not so fine when walking it downwards
(we need the opposite operation in that case; convert from visual to flow
thread coordinates). That was the reason for some mess in mapAncestorToLocal(),
since we had to cancel out the shenanigans carried out by
offsetFromContainer().

So, instead, perform this flowthread-to-visual coordinate space conversion
where we need it, and don't cause trouble for those who don't need it.

No behavior changes intended. This is also why we're keeping this coordinate
space conversion in CaretBase for now, even if it's wrong (see bug 596070).
Simply removing that *now* wouldn't fix the bug anyway, just alter it (probably
for the better, but who knows -- still buggy). A proper fix will land shortly.

BUG=568492
R=leviw@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#382153}
rune
Moved resolverChanged for mq updates into StyleEngine.
The placement of resolverChanged() needs a bit of explanation. We
incorrectly only clear the rulesets of active stylesheets when media
query evaluation changes. That currently causes crbug.com/589083.
Updating the active stylesheets (resolverChanged) before clearing the
ruleset will at least make sure that rule set for @media rules inside
sheets with a media attribute changing evaluation will be cleared
correctly. Moving resolverChanged() would have made the effects of
589083 worse.

BUG=567021

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

Cr-Commit-Position: refs/heads/master@{#381921}
sigbjornf
Remove unnecessary WebGLRenderingContextBase unregistration.
The garbage collector takes care of clearing out weak references to
WebGLRenderingContextBase objects that the |forciblyEvictedContexts()|
and |activateContexts()| sets keep, before the objects are finalized.

Hence no need to additionally attempt to remove; just assert
non-membership.

R=haraken
BUG=
CQ_INCLUDE_TRYBOTS=tryserver.chromium.win:win_optional_gpu_tests_rel;tryserver.chromium.mac:mac_optional_gpu_tests_rel

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

Cr-Commit-Position: refs/heads/master@{#381916}
rune
Dirty tree scopes are always a subset of active tree scopes.
No need to walk dirty tree scopes when clearing media dependent rule
sets after walking the active tree scopes.

Also clear m_dirtyTreeScopes in StyleEngine::detachFromDocument.
Currently, m_dirtyTreeScopes are synchronously updated and cleared
right after they are marked dirty, but that is supposed to change.

BUG=567021

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

Cr-Commit-Position: refs/heads/master@{#381909}
philipj
Measure the impact of a proposed media element load algorithm change
https://github.com/whatwg/html/issues/869#issuecomment-196189743

R=mlamouri@chromium.org,isherman@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#381787}
philipj
Remove use counters for Element methods that have been settled in spec
https://dom.spec.whatwg.org/#interface-element

This also moves the non-spec'd webkitMatchesSelector,
insertAdjacentElement and insertAdjacentText.

The use counter for webkitMatchesSelector is left in place, because it
it's somewhat interesting to follow its decline. The usage ought to be
dominated by old versions of jQuery and other libraries, and so it says
something about how long it takes for those libraries to be dropped or
upgraded in the wild. jQuery and other libraries were updated around the
time that the unprefixed matches was shipped in Blink, and usage of
webkitMatchesSelector has roughly halved every year since. (Since it's
now implemented in all engines, it's still unlikely to ever be removed.)

Original commits:
https://crrev.com/d92494c5c13990d8ab8d8cd73b0a20b8b2dee1e9
https://crrev.com/a706ad3cd488d6827cfcc99cd67cc30625296928
https://crrev.com/709823c231eb406d6928938c745effb16d6b3b3c
https://crrev.com/45b5b0427c403ba30d0067921b2639a31f0190df
https://crrev.com/6bcc2fb1c405cca7971ef6f361d94f8e8c63e726

BUG=460722

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

Cr-Commit-Position: refs/heads/master@{#381701}
sigbjornf
(Only) poison unmarked heap objects prior to sweeping.
Drop the unnecessary restriction that eagerly finalized objects aren't
allowed to touch access other eagerly finalized, but live, objects during
finalization. They're allowed to access live objects in other heaps/arenas,
so the same-heap restriction makes little sense.

Simplify the HeapPage poisoning methods as a result.

R=haraken
BUG=594129

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

Cr-Commit-Position: refs/heads/master@{#381554}
davve
Move computeIntrinsicSizingInfo to LayoutReplaced
It's only used on replaced content anyway so having an empty LayoutBox
implementation is pointless.

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

Cr-Commit-Position: refs/heads/master@{#381445}
philipj
Welcome isSameNode back as a per-spec method
The spec change has been reverted:
https://www.w3.org/Bugs/Public/show_bug.cgi?id=27424#c21
https://dom.spec.whatwg.org/#interface-node

There's no need to measure usage any longer, as not further change is
likely to ever happen.

BUG=460722
R=yosin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#381420}
sigbjornf
Stop scheduling in-order script execution upon hitting failed script.
R=haraken
BUG=581425

Committed: https://crrev.com/10cb02165d6d68a66007a3522f23a89fcb8a69d5
Cr-Commit-Position: refs/heads/master@{#381217}

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

Cr-Commit-Position: refs/heads/master@{#381281}
sigbjornf
Stop scheduling in-order script execution upon hitting failed script.
R=haraken
BUG=581425

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

Cr-Commit-Position: refs/heads/master@{#381217}
tommyt
bluetooth: android: Confirm the notify session after the descriptor has been written.
This change also implements WriteRemoteDescriptor and
ReadRemoteDescriptor. Because of this, I've also added quite a few
descriptor unit tests. These tests are pretty much the same as the
read/write tests for characteristics.

BUG=584369

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

Cr-Commit-Position: refs/heads/master@{#381088}
sigbjornf
Remove unused WorkerThread::postDelayedTask().
Unused since Blink r195402 ( https://codereview.chromium.org/1130413003 )

R=kinuko
BUG=

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

Cr-Commit-Position: refs/heads/master@{#380943}
davve
Rework embeddedContentBox into embeddedReplacedContent
In preparation for removing computeIntrinsicSizingInfo from LayoutBox
and only have it on LayoutReplaced.

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

Cr-Commit-Position: refs/heads/master@{#380902}
sigbjornf
Sync SlowTests expectations following r380895.
TBR=yosin
BUG=356957
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#380898}
sigbjornf
Space out issuing of spellcheck requests to speed up layout test.
Avoid issuing all spellcheck requests (by focusing elements) in one go
as this queues up a number of tasks and timers that it will require going
back to the event loop many times to process and handle. As the actual
test also relies on timers and setTimeout() this delays the completion
of the test considerably.

Restructure the test, interleaving the element focusing (=> spellcheck
request) with asynchronously checking the spellcheck result. Test completes
earlier as a result.

R=haraken
BUG=356957
TEST=editing/spelling/spellcheck-editable-on-focus.html

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

Cr-Commit-Position: refs/heads/master@{#380895}
mstensho
Only honor break-* values when appropriate.
Only honor column-specific break property values if inside a multicol
container, and only honor pagination-specific break property values if inside
some kind of pagination container (printing or paged overflow).

For breaking inside paged overflow containers, honor page values, not column
values. The paged overflow implementation sits on top of the multicol
implementation, which means that it's flowthread-based. But that's just an
implementation detail. Paged overflow containers don't establish columns -- it
establishes pages. Had to update one test, since it relied on
-webkit-column-break-* working inside a paged overflow container, which no
longer is the case. Some unit tests needed an update too.

R=leviw@chromium.org
BUG=223068

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

Cr-Commit-Position: refs/heads/master@{#380797}
davve
Propagate media session id into MediaPlayerAndroid
The media session id will be used to implicitly activate a user defined media session.

BUG=497735, 581728

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

Cr-Commit-Position: refs/heads/master@{#380632}
mstensho
Class A fragmentainer break points also exist between zero-height blocks.
We used to base class A break point [1] detection on whether we were at the
start of the container, location-wise (atBeforeSideOfBlock). That's not
sufficient. It's obviously okay to collapse margins through a zero-height
block, and basically pretend that it doesn't exist for the sake of margin
collapsing. But this isn't true for fragmentation. Class A break points [1]
exist between any two in-flow blocks, regardless of the height of said blocks.
Therefore we cannot propagate the pagination strut caused by a line inside a
block following an empty first-child block. We still need to keep the check for
whether we are at the start of the container, though, because if we aren't, it
means that we have a class C break point [1].

This CL introduces the BlockChildrenLayoutInfo class, which is used as a state
object during block children layout. This replaces MarginInfo and LayoutUnit
previousFloatLogicalBottom, which is what we used to pass back and forth. They
have now been wrapped into BlockChildrenLayoutInfo, along with a new piece of
information: whether we're laying out the first in-flow child or not. This
information is what we now use to detect if we're at a class A break point [1]
or not.

[1] https://drafts.csswg.org/css-break/#possible-breaks

R=leviw@chromium.org
BUG=223068

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

Cr-Commit-Position: refs/heads/master@{#380625}
mstensho
Remove special-code for removing anonymous blocks around pseudo elements.
We now have more generic code to take care of this, in
makeChildrenInlineIfPossible().

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

Cr-Commit-Position: refs/heads/master@{#380617}
sigbjornf
Simplify StackFrameDepth's handling of stack limits.
The handling of enabled/disabled and limits has become unnecessarily
complex. Especially so now that supported targets all have reasonable
estimates about safe thread stack sizes. Simplify asserts and limit checks
accordingly.

R=haraken
BUG=420515

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

Cr-Commit-Position: refs/heads/master@{#380566}
sigbjornf
Check if stylesheet resource was cached before marking it as such.
Should the memory cache already have an entry for a resource other
than the stylesheet resource we're trying to add, do not mark
the underlying StyleSheetContents as being "cached".

Given the possibility that the StyleSheetContents may not be
memory cached, retire the sanity-checking assert that a stylesheet
resource must have been evicted from that cache when finalized.

R=japhet
BUG=
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#380559}
sigbjornf
If under stack pressure, do not enable eager stack use.
The Oilpan marking pass safely utilizes the system stack of the
marking thread when tracing the object graph. Should GC be
invoked when stack use is already considerable, the estimated stack
threshold for when it is no longer known safe to continue
consuming system stack, may already have been exceeded. If so,
leave the stack threshold limit & check disabled.

This addresses an assertable condition only; the stack limit
check handles GCing under stack pressure as wanted.

R=haraken
BUG=420515

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

Cr-Commit-Position: refs/heads/master@{#380426}
mstensho
Remove special-code used by the old (removed) multicol implementation.
In regular block flow, anonymous blocks always have inline children, unless
it's the part of a continuation chain that contains blocks (which should never
be merged with siblings). Anonymous blocks with block-children also occur in
flexbox (flex items), and in the ruby implementation, but otherwise never in
regular block container layout.

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

Cr-Commit-Position: refs/heads/master@{#380381}
sigbjornf
Revert of IntersectionObserver: use an idle callback to send notifications. (patchset #6 id:100001 of https://codereview.chromium.org/1776493002/ )
Reason for revert:
Tests added are leaking, https://build.chromium.org/p/chromium.webkit/builders/WebKit%20Linux%20Leak/builds/18011

Original issue's description:
> IntersectionObserver: use an idle callback to send notifications.
>
> With this change, the tests can no longer use setTimeout(0) to wait
> for notifications to be delivered.  Instead, use takeRecords() to
> proactively grab notifications right after they are generated
> (typically in a RAF right after a layout change).
>
> BUG=540528
> R=ojan@chromium.org,haraken@chromium.org
>
> Committed: https://crrev.com/2c168f38b5c0e4e50374be4e54c44901c60738a9
> Cr-Commit-Position: refs/heads/master@{#380278}

TBR=ojan@chromium.org,haraken@chromium.org,skyostil@chromium.org,szager@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=540528

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

Cr-Commit-Position: refs/heads/master@{#380375}
philipj
Drop remaining [LegacyInterfaceTypeChecking] for Selection
With [LegacyInterfaceTypeChecking], any invalid type is treated as null,
and the risk of this change is therefore bounded by the
SelectionCollapseNull (also hit by setPosition) and
SelectionSetBaseAndExtentNull use counters:
https://www.chromestatus.com/metrics/feature/timeline/popularity/1083
https://www.chromestatus.com/metrics/feature/timeline/popularity/1084

Unfortunately chromestatus.com is not updating, but rbyers@ has checked
the stable channel data and reports usage as ~0 for both. The majority
of this tiny usage still ought to be actual null input, in cases like
collapse(something.firstChild).

The behavior of other engines was tested with this test:
http://software.hixie.ch/utilities/js/live-dom-viewer/saved/3970

Edge already throws for non-Node-or-null argumens to collapse and
setBaseAndExtent, but doesn't support setPosition.

Gecko already throws for collapse, but doesn't support setPosition or
setBaseAndExtent.

Overall, this ought to be very low risk.

BUG=561338
R=yoichio@chromium.org,rbyers@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#380339}
sigbjornf
Have DataObject create less copies of mime type lists.
R=dcheng
BUG=

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

Cr-Commit-Position: refs/heads/master@{#380244}
davve
Remove Image::computeIntrinsicDimensions()
There were only one user of Image::computeIntrinsicDimensions() left,
SVGImagePainter. It was used to calculate the container size in such a
way to force non-uniform scaling in case of
preserveAspectRatio=none. Use SVGImage::concreteObjectSize to get the
viewport size for SVG images.

BUG=581357

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

Cr-Commit-Position: refs/heads/master@{#380204}
fs
Simplify CullRect computation in LineBoxList::hitTest; fixing off-by-one
In the old formulation, we were essentially trying to "restore" the
margins from the HitTestLocation bounding-box and point, to compute a
"slice" to cull with. The "width" and "height" expressions for the slice
however trivially simplify to just the corresponding dimension of the
HitTestLocation bounding-box. For the "x" and "y" expressions however
the left/top margin is computed using the rounded point - which for
certain values of x/y will end up shifting the cullrect left/up by one
additional "unit" (pixel).
When the font size is small, one "unit" will be a lot, meaning that lines
can be missed entirely.

Change the computation of the cull rect to just use the bounding-box
from directly rather than restoring it from the (re)computed margin.
This gets rid of the last user of the HitTestLocation::*Padding()
methods, so remove those.

BUG=466617

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

Cr-Commit-Position: refs/heads/master@{#380194}
fs
Avoiding losing too much precision when hit-testing SVG <text>
Using flooredIntPoint() will lose all fractional precision - which is
too much considering that the location is actually at least a
LayoutPoint.
Use the HitTestLocation(const FloatPoint&) constructor instead - which does flooredLayoutPoint() behind scenes but also retains the FloatPoint.
Do the same for LayoutSVGForeignObject, since it has similar requirements.

BUG=466617

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

Cr-Commit-Position: refs/heads/master@{#380144}
sigbjornf
No need for ListHashSet<> in FrameSerializer.
Insertion ordering isn't made use of.

R=haraken
BUG=

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

Cr-Commit-Position: refs/heads/master@{#380112}
sigbjornf
Revert of MediaStream audio object graph untangling and clean-ups. (patchset #10 id:200001 of https://codereview.chromium.org/1721273002/ )
Reason for revert:
Broke a number of mediastream/ tests, e.g., https://build.chromium.org/p/chromium.webkit/builders/WebKit%20Linux%20Trusty/builds/9786

Original issue's description:
> MediaStream audio object graph untangling and clean-ups.
>
> This change consists of a number of "clean-up" changes that are being
> done to make the soon-upcoming refactoring of these classes go much more
> smoothly.  These are:
>
> 1. Public content MediaStreamApi functions cleaned up.  Removed
> "duplicated" functions that don't really do the same thing.  Removed
> hard-coded audio parameters from AddAudioTrackToMediaStream().
>
> 2. Eliminated ref-counting of WebRtcAudioCapturer and
> WebAudioCaptureSource.  Removed unnecessary references to these from
> WebRtcLocalAudioTrack.  Not only did this improve encapsulation of some
> code, but it also allowed for the removal of several dozen lines of
> "dead weight" testing set-upcode throughout the directory.
>
> 3. Renamed MediaStreamAudioTrack::GetTrack() method to From(), to be
> consistent with how this pattern is used in other parts of libcontent,
> and added a MediaStreamAudioSource::From().
>
> 4. Moved audio level calculations out of WebRtcLocalAudioTrack and into
> WebRtcAudioCapturer.  This way, when multiple tracks are present, the
> calculation is only being done once on the same audio.
>
> 5. Eliminated call to WebRtcCapturer::Stop() from
> WebRtcAudioDeviceImpl::Terminate(), which are each supposed to run on
> different threads.  From testing, DCHECKs should have been firing, but
> weren't, so the Terminate() method seems to be dead code.
>
> 6. Miscellaneous other "compaction" and comment updates.
>
> BUG=577881, 577874
> TBR=peter@chromium.org
>
> Committed: https://crrev.com/26bfd80549511a7e05f23c9941c41ced104ddf28
> Cr-Commit-Position: refs/heads/master@{#380065}

TBR=jochen@chromium.org,finnur@chromium.org,mcasas@chromium.org,olka@chromium.org,peter@chromium.org,tommi@chromium.org,miu@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=577881, 577874

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

Cr-Commit-Position: refs/heads/master@{#380103}
sigbjornf
Avoid WeakProcessingHashTableHelper<> type redefinitions.
R=haraken
BUG=

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

Cr-Commit-Position: refs/heads/master@{#379820}
davve
Support canvas size as default object size
By adding a defaultObjectSize parameter to

 * CanvasImageSource::elementSize,
 * CanvasImageSource::defaultDestinationSize
 * CanvasImageSource::getSourceImageForCanvas

we can support the default sizing algorithm in HTMLImageElement for
images that lack an intrinsic size. This affects both drawImage() and
createPattern().

At time of writing there doesn't exist clear spec text for how
createPattern should behave. In
https://github.com/whatwg/html/issues/735 the behavior in this CL has
been suggested as a reasonble starting point.

BUG=581357, 475009

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

Cr-Commit-Position: refs/heads/master@{#379818}
sigbjornf
Remove Resource::assertIsAlive().
Temporary release assert to diagnose a crash that got stuck.

R=dcheng
BUG=352043

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

Cr-Commit-Position: refs/heads/master@{#379810}
davve
Merge image sizing algorithms
Let users of StyleImage use StyleImage::imageSize() to get the image
size instead of fetching intrinsic information and calculating the
size outside StyleImage. This let's us remove the sizing algorithm in
LayoutBoxModelObject::calculateImageIntrinsicDimensions.

By passing along the default object size to StyleImage::imageSize, we
can remove the sizing algorithm in LayoutBoxModelObject and reuse the
one in SVGImage instead for the one image type that needs the
complicated sizing algorithm. Simpler algorithms can remain simple,
e.g. for generated images with no fixed size, the default object size
is returned unmodified.

SVGImage::concreteObjectSize almost had the necessary bits to
support full sizing of SVG images within a style context, i.e. through
StyleImage. The only missing bit was the the contain constraint on the
default object size added by this patch.

Some zoom juggling needed since the provided default object size is
sometimes zoomed and SVGImage has no notion of zoom. Thus the zoom is
removed before calling SVGImage::concreteObjectSize() and reapplied on
the result afterwards.

Background images and other decorative images should never respect the
exif rotation[1], so StyleImage::imageSize now requests the image size
from ImageResource without exif rotation applied. Presumably
StyleImage::imageSize() was broken but unused in this regard before.

In contrast to LBMO::calculateImageIntrinsicDimensions(),
StyleImage::imageSize returns the size for layout, i.e. the size
compensated for the image scale factor. This fixes two hidpi bugs, one
for list item marker images and one for shape-outside.

BUG=581357, 591935, 591939, 592888, 592886

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

Cr-Commit-Position: refs/heads/master@{#379801}
sigbjornf
Remove dangling LeakExpectations pointers.
TBR=kouhei,yutak@chromium.org
BUG=364411,364417,506754
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#379793}
sigbjornf
Fix non-Oilpan following r379558.
R=
BUG=580169

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

Cr-Commit-Position: refs/heads/master@{#379786}
rune
deviceScaleFactorChanged() handles style recalc.
No need to do an additional frame tree walk for marking style dirty
right before.

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

Cr-Commit-Position: refs/heads/master@{#379764}
rune
No need to re-collect stylesheets for setting type StyleChange.
Style recalc for all frames necessary, though.

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

Cr-Commit-Position: refs/heads/master@{#379763}
rune
Move preferred stylesheet logic into StyleEngine.
To understand the code better:

We don't support selecting alternate stylesheets in Blink, although the
API for Document.selectedStylesheetSet is present. The way it works, is
that the effective selected stylesheet set is either empty or the
preferred set. Setting selectedStylesheetSet has no effect.

This CL should not impose any functional changes, but a resolverChanged
with no effect has been removed.

The next step for async active stylesheet update is to move the setting
of the preferred set name to where the the dom mutations happen as the
order of mutations is what defines which stylesheet title has
precedence.

BUG=567021

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

Cr-Commit-Position: refs/heads/master@{#379762}
rune
Remove unnecessary setNeedsRecalcStyleInAllFrames for fonts.
Instead of walking the frame tree twice, nuking the style world the
second time, do normal font cache invalidation which lets StyleEngine
handle the change in StyleEngine::fontsNeedUpdate.

TEST=fast/text/update-sans-serif-and-recalc-style.html

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

Cr-Commit-Position: refs/heads/master@{#379761}
rune
Added tests for preferred sheet insertion order.
Which stylesheet wins setting the preferred stylesheet set based on the
title attribute depends on the insertion order, and not the tree order,
since it's done as part of adding a stylesheet[1], as part of creating
a stylesheet[2], which is done on closing a style element, on inserting
or removing the style element [3].

Added two tests to make sure this is still true after active stylesheet
update has been made async.

[1] https://drafts.csswg.org/cssom/#add-a-css-style-sheet
[2] https://drafts.csswg.org/cssom/#create-a-css-style-sheet
[3] https://html.spec.whatwg.org/#update-a-style-block

BUG=567021

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

Cr-Commit-Position: refs/heads/master@{#379760}
sigbjornf
Remove WebFormElement::wasUserSubmitted.
As autofill is no longer using this (as of r339061), drop this
this public API.

R=
BUG=

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

Cr-Commit-Position: refs/heads/master@{#379683}
fs
Add more SVG-related mapLocalToAncestor/mapAncestorToLocal tests
Written while looking at crbug.com/592316. Tests viewBoxes with a
non-zero x/y component.

BUG=592316, 568614

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

Cr-Commit-Position: refs/heads/master@{#379600}
auygun
Set debug color for borders of compressed tiles.
BUG=434699
CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel

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

Cr-Commit-Position: refs/heads/master@{#379582}
mostynb
export blink::Platform symbols in shared_library builds
This unbreaks GCC component=shared_library builds, which fail to link
libblink_platform.so due to missing vtable, since CL 1660383002 landed.

BUG=548254

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

Cr-Commit-Position: refs/heads/master@{#379577}
davve
Shortcut ImageResource::canRender()
Move the little work ImageResource::canRender() does out of fetch/ and
into the respective call sites. A small step towards getting rid of
ImageResource::imageSize() and limiting ImageResource to fetch related
functionality.

It's assumed that ImageResource::image() never returns the nullptr and
that !errorOccurred() implies the an image or the nullImage if no
image is available.

BUG=581357

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

Cr-Commit-Position: refs/heads/master@{#379549}
fs
Handle '<something>' to 'none' changes of 'transform' for SVG
Only the value of the new style was observed and triggered an update.
Check the StyleDifference flag for simplicity.

BUG=592206

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

Cr-Commit-Position: refs/heads/master@{#379546}
fs
Don't expand <symbol> elements in <use> that are not targets
When a <use> was referencing a subtree which contained a <symbol>
element, the <symbol> would get replaced by the "replace <symbol>" part
of the <use> expansion. This would result in content being rendered that
should not (since only <symbol>s that are directly referenced by <use>
should render.)
Instead of blindly expanding <symbol> elements, replace them directly
when producing the instance clone.

Replace the old faulty test svg/custom/use-on-g-containing-symbol.svg
with a new test.

Test from: https://bugs.webkit.org/show_bug.cgi?id=154576

BUG=589682

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

Cr-Commit-Position: refs/heads/master@{#379532}
rune
Re-collect rule features for watched selectors.
Instead of nuking the StyleResolver and re-collecting all stylesheets,
clear the current rule features on StyleResolver and mark them for
re-collection. We need to re-collect because the rule features on
StyleResolver are a union of the rule features from stylesheets and the
watched selectors from the declarativeContent css api for extensions.

A bonus is that this change avoids a synchronous active stylesheets
update.

R=dstockwell@chromium.org
BUG=567021

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

Cr-Commit-Position: refs/heads/master@{#379529}
rune
Avoid nuking everything when injecting stylesheet.
Instead do an analyzed update of the Document scope.

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

Cr-Commit-Position: refs/heads/master@{#379528}
philipj
Measure the many aspects of HTMLAllCollection
Multiple spec changes to HTMLAllCollection are under discussion:
https://github.com/whatwg/html/issues/775
https://github.com/whatwg/html/pull/780

To help inform the discussion and estimate risk, measure some of the
aspects that are currently not per spec, as well as a few extra bits for
comparison purposes.

BUG=591605

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

Cr-Commit-Position: refs/heads/master@{#379484}
sigbjornf
Remove now-unused Visitor::m_isGlobalMarkingVisitor field.
R=haraken
BUG=420515

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

Cr-Commit-Position: refs/heads/master@{#379469}
fs
Correct initial width/height for <use>d <symbol>s
The initial values for width/height on the <svg> generated for the
<symbol> should be "100%".
Since the <symbol> element had been replaced by a <svg> element by the
time the attributes were transferred the wrong set of rules were used.

Adjust svg/custom/use-attribute-invalidations.html to be correct.
svg/custom/relative-sized-shadow-tree-content-with-symbol.xhtml now
renders correctly.

BUG=592063

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

Cr-Commit-Position: refs/heads/master@{#379350}
sigbjornf
Simplify mock web speech recognizer's "onend" handling.
..and fix a bug introduced by r378252 in the process, it assuming
a different interpretation of speech recognizer handle equality than
what's (reasonably) provided.

i.e., handle the completion of a speech recognition via one
task rather than two.

R=tommi,jochen
BUG=591298

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

Cr-Commit-Position: refs/heads/master@{#379299}
fs
Add SVGUseElement::createInstanceTree helper
Add a new method used to create a new instance subtree from a <use>-
targetted element. Re-use where possible.

Also make isDisallowedElement(...) take a Element& (it's no longer
called on Nodes) and remove a redundant call to
removeDisallowedElementsFromSubtree in <symbol> expansion (no new clones
are produced here expecpt the <svg> on replacing the <symbol>.)

BUG=589682

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

Cr-Commit-Position: refs/heads/master@{#379298}
fs
Remove SVGUseElement::buildShadowTree
SVGUseElement::buildShadowTree() steps out for a moment to regain
strength. In its absence, open-code the sequence using other helper
functions.

BUG=589682

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

Cr-Commit-Position: refs/heads/master@{#379290}
fs
Factor addReferenceTo()-calls out of SVGUseElement::buildShadowTree
This factors the registering of references to first degree nested <use>
elements out of the buildShadowTree, getting rid of the |foundUse|
parameter. This brings us one step closer to more streamlined shadow-
tree construction. It also avoids calling isStructurallyExternal() more
than once.

Also cleanup the instanceTreeIsLoading() method by letting it traverse
all the SVGUseElement descendants of the shadow root using the
Traversal<> helpers.

BUG=589682

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

Cr-Commit-Position: refs/heads/master@{#379289}
sigbjornf
Retire expectation for fast/dom/webtiming.html
No longer coming through as flaky.

TBR=skyostil
BUG=520172
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#379272}
sigbjornf
Avoid PageMemoryRegion::m_numPages data race.
R=haraken
BUG=591217

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

Cr-Commit-Position: refs/heads/master@{#379228}
fs
Eliminate SVGUseElement::referencedScope()
During "shadow tree fixup" (SVGUseElement::expand*) we can use the
document of the original (corresponding) element rather than
referencedScope(), because the Document of those elements will be the
external or the "local" respectively depending on source for the initial
clone operation.
This leaves a few users in buildPendingResource() which can be
eliminated by folding the method into it.
Hopefully this will also allow future cleanups to
isExternalURIReference, since now it's not called unnecessarily for each
nested <use>. (Possibly minor perf effect from eliminating the calls to
referencedScope().)

BUG=589682

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

Cr-Commit-Position: refs/heads/master@{#379074}
fs
Replace cloneNodeAndAssociate with Element::cloneElementWithChildren
Use the Element::cloneElementWithChildren to do a "straight" clone, and
then post-process it to associate the cloned nodes with their
corresponding elements.
Move the call to removeDisallowedElementsFromSubtree() into the cloning
sequence since it will have nothing to do if there's no target. The
root has already been verified to be "allowed", so the different
starting element makes no difference on the result.

BUG=589682

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

Cr-Commit-Position: refs/heads/master@{#379046}
fs
Use references some more in SVGUseElement
Mostly changes to pass SVGElement& rather than SVGElement* - and some
cleanup/removal of dead null-checks etc. as a consequence.

BUG=589682

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

Cr-Commit-Position: refs/heads/master@{#379031}
rune
Don't call updateLayoutTree twice.
In updateLayoutTreeIgnorePendingStylesheets we would call
updateLayoutTree twice when having nodes with placeholder style.
Removed the first call.

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

Cr-Commit-Position: refs/heads/master@{#379007}
sigbjornf
Fix non-Oilpan following r378744.
R=haraken,fs@opera.com
BUG=535429

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

Cr-Commit-Position: refs/heads/master@{#378996}
fs
Remove SVGUseElement helper subtreeContainsDisallowedElement
The related helper removeDisallowedElementsFromSubtree() already walks
the same subtree and checks with the same predicate[1], so letting the
removing function do all the work should not be a problem.

Also change isDisallowedElement to take a const Node&, and tighten the
type of the subtree root passed to removeDisallowedElementsFromSubtree
(it's always either a SVGSVGElement or a SVGGElement.)
Move the lengthy - and somewhat outdated - comment above
removeDisallowedElementsFromSubtree to just above its definition.
(We aim to align the current behavior to it though, so keeping it
around unchanged.)

[1] subtreeContainsDisallowedElement() was walking the Nodes of the
    tree, while removeDisallowedElementsFromSubtree() walks the
    Elements. Thus they did not look at the exact same set of nodes.
    Since the removal took place on the smaller set though there should
    be no change in behavior.
    Previously we could end up walking the entire subtree looking for
    something to remove (in removeDisallowedElementsFromSubtree)
    eventhough we wouldn't find it (like for example a COMMENT node.)

BUG=589682

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

Cr-Commit-Position: refs/heads/master@{#378993}
fs
Clean up reparenting in SVGUseElement::expand*
Add a helper moveChildrenToReplacementElement() and use that instead of
an open-coded loop.
Split transferUseAttributesToReplacedElement() into two, getting rid of
one by open-coding the call to cloneDataFromElement(), and make the other
one static (while renaming it.)

BUG=589682

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

Cr-Commit-Position: refs/heads/master@{#378992}
davve
Pass media session id over IPC
Add media_session_id to the MediaPlayerHostMsg struct in preparation
for letting the browser process create media players with user created
media sessions.

BUG=497735, 581728

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

Cr-Commit-Position: refs/heads/master@{#378983}
rune
One instead of three resolverChanged replacing source in inspector.
resolverChanged() was called three times when replacing the stylesheet
text from the inspector. Two mutation scopes and an explicit call at
the end.

Kept one of the mutation scopes. Two shouldn't be necessary, and I have
confirmed that the crash tests for which this was justified earlier
don't crash when removing one of the scopes.

Moved the stylesheet modifications into CSSStyleSheet::setText().

Also moved clearing of the CSSOM wrappers before the mutation scope
declaration as the mutation scope constructor would unnecessarily
re-attach wrappers which would then be cleared right after.

R=esprehn@chromium.org,pfeldman@chromium.org
BUG=591599

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

Cr-Commit-Position: refs/heads/master@{#378978}
rune
Removed unnecessary resolverChanged call.
Changing disabled state of a stylesheet link caused active stylesheet
update to happen twice. Once from setDisabled() on the stylesheet and
once directly from LinkStyle::setDisabledState(). Removed the one
called directly from LinkStyle::setDisabledState.

R=esprehn@chromium.org
BUG=591559

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

Cr-Commit-Position: refs/heads/master@{#378922}
sigbjornf
Revert of Use a bitmap to record PageMemoryRegion usage. (patchset #1 id:1 of https://codereview.chromium.org/1748363005/ )
Reason for revert:
Using a bitmap is problematic as pages within a region may belong to different threads (see https://crbug.com/591217 ).

Revert back to previous and use a separate bool per thread to avoid overlap.

Original issue's description:
> Use a bitmap to record PageMemoryRegion usage.
>
> R=haraken
> BUG=420515
>
> Committed: https://crrev.com/648b0ff04620c688b1d8926b06220f45da3e4598
> Cr-Commit-Position: refs/heads/master@{#378449}

TBR=oilpan-reviews@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=420515

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

Cr-Commit-Position: refs/heads/master@{#378756}
philipj
Make DeviceOrientationEvent.prototype.absolute non-nullable
This is to match the spec and Gecko:
http://w3c.github.io/deviceorientation/spec-source-orientation.html#deviceorientation
https://hg.mozilla.org/mozilla-central/file/85e218929a7a/dom/webidl/DeviceOrientationEvent.webidl

BUG=460722

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

Cr-Commit-Position: refs/heads/master@{#378747}
fs
Simplify SVGUseElement::expand* methods
 * Use Traversal<Type> helpers.
 * Start at the ShadowRoot.

BUG=589682

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

Cr-Commit-Position: refs/heads/master@{#378722}
rune
Remove unnecessary feature flag update.
The feature flags in StyleEngine were always reset from
StyleResolver::finishAppendAuthorStyleSheets right before we called
combineCSSFeatureFlags with the exact same feature set.

R=dstockwell@chromium.org
BUG=401359,567021

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

Cr-Commit-Position: refs/heads/master@{#378719}
fs
Implement mapAncestorToLocal for LayoutSVG{ModelObject,Block}
This CL adds an implementation of mapAncestorToLocal for SVG
LayoutObject types via a helper in SVGLayoutSupport.
This should help cases which use any of the LayoutObject::ancestorTo*
methods (or similar/wrappers.) Examples of users are various form
controls and scrollbars.

BUG=568614

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

Cr-Commit-Position: refs/heads/master@{#378716}
rune
Remove unused createdByParser flags and arguments.
Review URL: https://codereview.chromium.org/1754863002

Cr-Commit-Position: refs/heads/master@{#378711}
philipj
Remove the always-enabled Media from RuntimeEnabledFeatures
This has been enabled everywhere since
https://codereview.chromium.org/590083002

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

Cr-Commit-Position: refs/heads/master@{#378686}
philipj
Remove Selection TODO that was fixed by a spec change
BUG=460722
R=yoichio@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#378667}
fs
Clone non-markup event listeners for <use> in a separate pass
This brings us closer to be able to use cloneNode(true) for the initial
clone.

BUG=589682

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

Cr-Commit-Position: refs/heads/master@{#378604}
fs
Remove redundant check in SVGUseElement::buildShadowTree
We already perform this check on |target| in all callers (the method
itself and buildShadowAndInstanceTree), so this condition will never be
true at this point. Remove it (replace with assert.) Since this gets rid
of the only way for buildShadowTree to return false, change the return-
type to 'void' and simplify accordingly.

BUG=589682

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

Cr-Commit-Position: refs/heads/master@{#378504}
sigbjornf
Add missing DevToolsEmulator field initialization.
Introduced in r371567.

R=
BUG=581115

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

Cr-Commit-Position: refs/heads/master@{#378491}
sigbjornf
Keep XHR progress throttle interval an implementation detail.
R=
BUG=

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

Cr-Commit-Position: refs/heads/master@{#378487}
sigbjornf
Retire WebLocalFrameScope.
Retire this test-supporting scope object; no longer needed to ensure timely
release and closing of WebLocalFrames in CreateLocalChildWithPreviousSibling

R=dcheng
BUG=

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

Cr-Commit-Position: refs/heads/master@{#378454}
sigbjornf
Use a bitmap to record PageMemoryRegion usage.
R=haraken
BUG=420515

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

Cr-Commit-Position: refs/heads/master@{#378449}
sigbjornf
Remove unused HashSet<>::isValidValue().
R=
BUG=

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

Cr-Commit-Position: refs/heads/master@{#378435}
sigbjornf
Sync leak expectations following r378252.
TBR=dmazzoni
BUG=506529
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#378431}
sigbjornf
Node.h #include parsimony.
Node.h is slurped in throughout Blink, hence it makes sense to have it
not include unnecessary headers.

R=tkent
BUG=

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

Cr-Commit-Position: refs/heads/master@{#378427}
tmoniuszko
Update GN docs about Visual Studio generators
BUG=

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

Cr-Commit-Position: refs/heads/master@{#378419}
philipj
Renew deprecation messages for Web Audio doppler effects
Intent to Deprecate:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/-1SI1GoHYO8/6XUjRs-fdv4J

BUG=439644

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

Cr-Commit-Position: refs/heads/master@{#378409}
rune
Allow simple selectors after ::content for compat.
Allow simple selectors which are not pseudo elements after ::content in
compound selectors. Polymer 0.5 content sometimes use ::content[attr]
instead of [attr]::content. This was made invalid with r369760.

R=timloh@chromium.org
BUG=589252

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

Cr-Commit-Position: refs/heads/master@{#378331}
sigbjornf
Make HTMLSelectElementTest.DefaultToolTip work non-Oilpan
R=tkent
BUG=

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

Cr-Commit-Position: refs/heads/master@{#378324}
sigbjornf
Reduce weak callback stack reservation for non-main threads.
Tune the initial reservation for Oilpan threads other than the main
thread; very few uses of weak references and collections happen off
the main thread. Adjust the initial allocation accordingly.

R=
BUG=

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

Cr-Commit-Position: refs/heads/master@{#378318}
sigbjornf
Have mock speech recognizer reset and release its recognizer upon ending.
Take care of leaks attributed to this mock object - it unnecessarily
retaining a WebSpeechRecognitionHandle beyond completion of the final
'ended' notification to it.

R=dmazzoni
BUG=506529

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

Cr-Commit-Position: refs/heads/master@{#378252}
sigbjornf
Fix PointerEventFactoryTest unit tests non-Oilpan following r377576.
TBR=oilpan-reviews
BUG=583331

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

Cr-Commit-Position: refs/heads/master@{#378242}
philipj
Move Deprecation helpers into an anonymous namespace
willBeRemoved is used in the first Deprecation::deprecationMessage so
unfortunately these can't be kept right next to second
Deprecation::deprecationMessage where they are used most.

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

Cr-Commit-Position: refs/heads/master@{#378206}
philipj
Remove unused UseCounter features
Review URL: https://codereview.chromium.org/1740153002

Cr-Commit-Position: refs/heads/master@{#378185}
sigbjornf
Remove unused NodeIntersectionObserverData predicates.
R=haraken
BUG=none

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

Cr-Commit-Position: refs/heads/master@{#378140}
sigbjornf
Reduce ephemeron stack size reservation.
The ephemeron stack is used by the Oilpan GC to handle key-value pairs
over weak references as wanted (i.e., the value is strongly referenced
until the key becomes unreachable). The marking process will push
hash tables containing such onto a stack processing for later processing.

Blink only has a handful of hash tables requiring ephemeron processing,
hence tune down the initial size of the stack accordingly.

As a data point, browsing around on various popular sites resulted in
ephemeron stacks no deeper than in the mid-20s.

R=haraken
BUG=

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

Cr-Commit-Position: refs/heads/master@{#378131}
perja
bluetooth: android: register for adapter on/off events.
Register for BluetoothAdapter.ACTION_STATE_CHANGED and reflect the
state changes in the device chooser dialog.

BUG=543060

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

Cr-Commit-Position: refs/heads/master@{#377982}
fs
After expanding <symbol> in <use>, expand its siblings
If the siblings are not expanded at this point, the loop of the children
of the ancestor will lose the siblings because it's still referencing
the old <symbol> element.
This little loop fell out in https://codereview.chromium.org/272523002.

BUG=589682

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

Cr-Commit-Position: refs/heads/master@{#377922}
sigbjornf
Remove unused Document auxiliary methods.
R=
BUG=

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

Cr-Commit-Position: refs/heads/master@{#377879}
fs
Fix synchronization of SVGAnimatedAngle (<marker orient>)
Since SVGAnimatedAngle also wraps the SVGAnimatedEnumeration for the
enumeration representation of the 'orient' attribute, and both of them
synchronize to said attribute, we need to override the synchronization
methods to take the synchronization status of them both into account
(as opposed to previously where only the SVGAnimatedAngle itself was
considered.) Rewrite the existing synchronizeAttribute() implementation
to just delegate rather than do the actual work itself.

Also change reference from SVGMarkerElement to just SVGElement and
include the specific header - SVGAngle.h rather than SVGAngleTearOff.h.

BUG=589808

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

Cr-Commit-Position: refs/heads/master@{#377875}
tmoniuszko
Limit the set of Visual Studio projects generated by GN
BUG=589099

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

Cr-Commit-Position: refs/heads/master@{#377871}
philipj
Adjust deprecation messages to match Estimated Stable Dates
These dates are from https://www.chromium.org/developers/calendar and
match the branch date + 6 weeks rule.

It would be unfortunate if developers think they have more time to adapt
than they actually do.

BUG=590143

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

Cr-Commit-Position: refs/heads/master@{#377870}
sigbjornf
Parameterize CallbackStack over initial block size.
CallbackStack keeps a chain of blocks, extending it as needed. So as to
allow stacks with varying block sizes, have its constructor take the
block size to use as argument.

R=haraken
BUG=420515

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

Cr-Commit-Position: refs/heads/master@{#377865}
sigbjornf
Ignore setting of navigation starting points for detached documents.
Address non-Oilpan leaks.

R=tkent
BUG=454172

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

Cr-Commit-Position: refs/heads/master@{#377679}
fs
Don't use SVG resource documents with an unrecognized MIME-type
Before parsing/creating the actual document of a DocumentResource, make
sure that the resource in question was actually served as a reasonable
MIME-type - one of:

  image/svg+xml,
  text/xml,
  application/xml or
  application/xhtml+xml

Use the original Content-Type from the HTTP header when possible and
treat empty as invalid (matches Gecko).
This could help mitigate some issues with content sanitation. It seems
to match what Gecko is doing so is hopefully not too web-incompatible.

Move the commonly recurring *Resource::mimeType() helper from subclasses
to the baseclass (Resource) and rename it httpContentType() since that
should be a better match for what it is.

BUG=527514

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

Cr-Commit-Position: refs/heads/master@{#377560}
fs
Don't apply the SandboxPlugins flag until we know a plugin will be used
Move the check of the SandboxPlugins flag out of the pluginIsLoadable
function and to just before the actual load/instantiation of the plugin
is initiated. This means the URL and MIME-type is still subject to
SecurityOrigin, (some) CSP and Mixed-Content checks, but the flag will
not block resources if they will not use a plugin.

Split pluginIsLoadable into one part that checks if the URL/MIME-type is
allowed, and one part that checks if the plugin itself can be
loaded/instantiated. The former is allowedToLoadObject while the latter
is allowedToLoadPlugin. Only call the latter if we determine that a
plugin will be used to view the content (URL or not). Sink the
allowedToLoadPlugin check into loadPlugin, which in turn means it will
apply to the code-path through createPluginWithoutLayoutObject() as well,
while adding a call to allowedToLoadObject there as well.

Also make sure that shouldUsePlugin() sets the |useFallback| out-
variable before all returns. (Could previously be used uninitialized.
Found by code inspection.)

BUG=578916

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

Cr-Commit-Position: refs/heads/master@{#377559}
philipj
Remove dead code related to Web Audio doppler effects
Doppler already has no effect on AudioBufferSourceNodes, as the only
call to setPannerNode was removed in time for M41:
https://codereview.chromium.org/783273002/

PannerHandler::dopplerRate becomes unreachable next, and pulling at the
thread of unreachable things ends up removing quite a lot.

PannerNode's setVelocity is revealed to have no effect at all, although
it remains in the spec. A spec issue was filed:
https://github.com/WebAudio/web-audio-api/issues/730

BUG=439644
R=rtoy@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#377507}
sigbjornf
Have EventSender mouseups unwind better on cancellation during dragover.
Follow up on changes brought by r376733 and check if handling of dragover
cancelled our ongoing drag. Leave early, if so.

R=dcheng,rbyers
BUG=589426

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

Cr-Commit-Position: refs/heads/master@{#377392}
mostynb
only include xdg_util_unittest.cc on desktop linux
Review URL: https://codereview.chromium.org/1726613003

Cr-Commit-Position: refs/heads/master@{#377373}
philipj
Remove SVGElement.offsetParent/offsetTop/offsetLeft/offsetWidth/offsetHeight
Intent to Remove:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/jjwLLSG_hGY/Ovi-nvEeDwAJ

BUG=463116

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

Cr-Commit-Position: refs/heads/master@{#377283}
philipj
Update SVG tests ahead of offset* removal
This converts some SVG tests to use getBoundingClientRect() instead of
the deprecated offset* attributes, so that the removal CL is minimized
and thus easier to revert in case of trouble.

smil-scheduled-in-inactive-document-crash.html didn't actually run the
problematic code because of a early finishJSTest(), which was moved.

BUG=463116
R=fs@opera.com

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

Cr-Commit-Position: refs/heads/master@{#377261}
mstensho
Ability to return the height of fragmentainer groups that don't yet exist.
When the flow thread offset is out of range (i.e. it comes after the logical
bottom of the last fragmentainer group created so far) when asking for a column
height, estimate how tall the next fragmentainer group will be, instead of
returning the height of the last fragmentainer group.

It was dodgy of LayoutBlockFlow::adjustLinePositionForPagination() to call
paginatedContentWasLaidOut() before the final position of the line had been
determined, but we did so in order to create the necessary fragmentainer
groups, so that we could get the right column height. However, since we may
decide to drop the strut calculated if a line is taller than the column, we'd
better not pretend that we applied the strut. Otherwise we may create more
fragmentainer groups than necessary, causing mild confusion and assertion
failures in the multicol machinery.

To fix this, we need LayoutBlock::pageLogicalHeightForOffset() to be able to
return the height of columns in a fragmentainer group that has't yet been
created (and perhaps never will). The rationale behind this solution is that it
seems better to deal with this inside the multicol implementation, than to add
more complexity in adjustLinePositionForPagination(). Leaving LayoutBlockFlow
blissfully unaware of multiple fragmentainer groups seems like a good thing.

BUG=552615

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

Cr-Commit-Position: refs/heads/master@{#377256}
landell
Include errno.h
BUG=

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

Cr-Commit-Position: refs/heads/master@{#377254}
sigbjornf
Retire stale leak expectations.
Both these tests are no longer reported as leaking, sync expectations
accordingly.

R=haraken
BUG=582376
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#377237}
mostynb
simplify glib condition for including message_pump_glib_unittest.cc
We should use the use_glib variable instead of alternative
conditions throughout the build configuration.

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

Cr-Commit-Position: refs/heads/master@{#377053}
sigbjornf
Re-order unregistration and detachment of failed ScriptLoader.
For a ScriptLoader that fails to load its script resource, unregister
with the associated ScriptRunner before dispatching 'error'. This avoids
potential trouble should the onerror handler trigger nested access to
the ScriptRunner's (sync) script queue, if it ends up loading script
resources of its own.

R=haraken
BUG=570012

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

Cr-Commit-Position: refs/heads/master@{#376986}
davve
Prepare SVGImage for the default sizing algorithm
This patch aligns sizing in SVGImage with sizing done in
LayoutBoxModelObject::calculateImageIntrinsicDimensions()

Split SVGImage::containerSize() into two parts. On part that
calculates the concrete size.

The other part return containerSize(), with concrete object size as
fall-back for direct SVGImage::draw() users (webgl being the only one
known).

The long term plan is to only keep this sizing implementation and
remove the one in LayoutBoxModelObject. As long as SVG is the only
user of the complex version of the algorithm it makes sense to keep it
as SVG-only code.

BUG=581357

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

Cr-Commit-Position: refs/heads/master@{#376965}
davve
Clean up computeIntrinsicDimensions
No need to carry around Length for intrinsic width or height
anymore. A FloatSize does fine when all lengths are fixed.

BUG=581357, 585467

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

Cr-Commit-Position: refs/heads/master@{#376956}
sigbjornf
Sync leak expectations following r376816.
TBR=yosin,tkent
BUG=587424
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#376939}
philipj
Add TODOs to convert from video-test.js to testharness.js
BUG=588956
R=mlamouri@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#376938}
mstensho
Spec-compliant shorthand parsing of foo-break-(after,before,inside).
The CL that introduced the generic break-after, break-before and break-inside
properties deliberately violated the spec when it came to parsing the
page-break-(after,before,inside) shorthand properties. This was in order to
reduce the risk of a big revert, and instead remain as compatible as we could
with how we used to handle it prior to the introduction of the new generic
properties, i.e. when we parsed and stored separate properties for
page-break-foo and -webkit-column-break-foo, rather than treating them as
shorthands for break-foo.

BUG=223068

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

Cr-Commit-Position: refs/heads/master@{#376896}
rune
Removed Document::addedStyleSheet.
Replace it with resolverChanged(). It was only a call from StyleEngine
into Document and back into StyleEngine. Removed a couple of comments
referring to the removed method which were confusing/out-of-date.

Moved call to resolverChanged() immediately following
modifiedStyleSheetCandidateNode() into the latter method.

Made StyleEngine::markDocumentDirty() private.

No functional changes.

BUG=567021

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

Cr-Commit-Position: refs/heads/master@{#376894}
rune
Trigger options width update when option text changes.
Previously this was triggered by doing a full host subtree recalc on
shadow redistribution, but that recalc was removed as an optimization.

R=tkent@chromium.org
BUG=588585

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

Cr-Commit-Position: refs/heads/master@{#376880}
julienp
SingleSplitView did not take the view border into account when handling the splitter position. This fixes that.
Review URL: https://codereview.chromium.org/1702473002

Cr-Commit-Position: refs/heads/master@{#376876}
sigbjornf
Stop async spellchecker before running the leak detector.
Should a test finish up before all the spellcheck requests that
it (inadvertently?) generates have been asynchronously processed
and completed, it risks beomg reported as leaking.

These requests have no bearing on the correctness of the test
(if they did, the test would have to arrange to wait on their
outcomes), and can safely be cancelled before leak detection goes
ahead. Along with stopping the async spellchecker, this avoids
unnecessary flakiness from tests that involve spellchecking.

R=
BUG=587424

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

Cr-Commit-Position: refs/heads/master@{#376816}
mstensho
Run update_use_counter_css.py for r376249, r376148 and r376051.
R=holte@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#376787}
rune
Ignore title attribute for style elements in shadow trees.
Title attributes on style elements in shadow trees should not set the
preferred stylesheet name for the whole document. Also, title on style
elements in shadow trees should not respond to the preferred stylesheet
set in the top document.

BUG=588718

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

Cr-Commit-Position: refs/heads/master@{#376776}
sigbjornf
Gracefully handle nested eventSender.beginDragWithFiles() attempts.
Programmatic drag operations in test code may attempt to initiate nested
file drag operations, something eventSender nor anyone else is prepared
for. Throw an error and cancel the current drag operation to discourage
(fuzzer?) code from attempting this.

R=dcheng,mkwst
BUG=479216

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

Cr-Commit-Position: refs/heads/master@{#376733}
philipj
Fix grammar (does->do) in border-image-sans-border-style deprecation
BUG=559258
R=cavalcantii@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#376724}
auygun
Reland Allow one-copy and zero-copy task tile worker pools to use compressed textures.
BUG=434699
CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel

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

Cr-Commit-Position: refs/heads/master@{#376711}
davve
Carry WebMediaSession in WebMediaPlayerParams
While general, this is Android focused in the short-term. It prepares
WebMediaPlayerAndroid for propagating its media session id, if any,
over IPC to the browser process where the media session integration
with the platform happens.

BUG=497735, 581728

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

Cr-Commit-Position: refs/heads/master@{#376707}
rune
Don't expose HTMLSlotElement if Shadow DOM V1 is not enabled.
Invoking toString on the element serialized to [object HTMLSlotElement]
which is not correct until we ship.

R=hayato@chromium.org,kochi@chromium.org
BUG=531990

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

Cr-Commit-Position: refs/heads/master@{#376701}
rune
Don't try to find a slot in a v0 shadow tree.
ElementShadow::assignedSlotFor asserts that it's only called for V1
ElementShadows and doesn't null check m_slotAssignment. Guard with an
if-check for V1 when assignedSlotFor from Node::assignedSlot like we
already do from Node::assignedSlotForBinding.

R=hayato@chromium.org,kochi@chromium.org
BUG=588209

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

Cr-Commit-Position: refs/heads/master@{#376699}
rune
Use invalidation sets to invalidate slotted elements.
Mark invalidation sets as invalidating slotted elements when the
invalidation set features come from a ::slotted pseudo element.

When we encounter a <slot> element during style invalidation, match the
invalidation sets marked as invalidating slotted elements against the
distributed nodes list for the <slot>.

R=hayato@chromium.org,kochi@chromium.org,ericwilligers@chromium.org
BUG=587746

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

Cr-Commit-Position: refs/heads/master@{#376698}
sigbjornf
Switch BlinkGCPluginConsumer to use ranged for-loops.
Modernize and consistently use ranged for-loops where possible.

R=haraken,thakis
BUG=

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

Cr-Commit-Position: refs/heads/master@{#376656}
rune
Trigger repaint on first paint only on pending stylesheet decrement.
Also, since Document::styleResolverChanged() is now just a call to
StyleEngine::resolverChanged(), remove it.

This is in preparation for splitting (style)resolverChanged() into more
descriptive methods on StyleEngine for what is necessary to nuke and
rebuild in the various cases. That, in turn, is in preparation for the
componentized style resolver and asynchronous update of active
stylesheets.

BUG=401359,567021

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

Cr-Commit-Position: refs/heads/master@{#376594}
fs
Rename -webkit-text to -internal-quirk-inherit, limiting it to UA style
Stop accepting the -webkit-text value for color properties in quirks mode.
Rename it to -internal-quirk-inherit to better match the naming in the
quirks mode spec [1].
Usage of this property value is low [2].

[1] https://quirks.spec.whatwg.org/#the-tables-inherit-color-from-body-quirk
[2] https://www.chromestatus.com/metrics/feature/timeline/popularity/942

BUG=586485

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

Cr-Commit-Position: refs/heads/master@{#376506}
asaka
Use std::isnan instead of isnan in global ns
BUG=

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

Cr-Commit-Position: refs/heads/master@{#376477}
fs
Add test from issue 50819
BUG=50819

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

Cr-Commit-Position: refs/heads/master@{#376463}
rune
Reland: Propagate inherited properties into slotted elements on recalc.
When we reach a <slot> element during recalc, we need to trigger recalc
of elements distributed to that slot for inheritance. This is similar
to what is done for InsertionPoint. I have however not found a case
where we need a bigger cannon than LocalStyleChange on the distributed
elements.

Made a few override methods final, expecting no inheritance of
HTMLSlotElement.

R=kochi@chromium.org,hayato@chromium.org
BUG=587797

Committed: https://crrev.com/e6491c6e66c3393363402f04f625959e29ba236c
Cr-Commit-Position: refs/heads/master@{#376406}

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

Cr-Commit-Position: refs/heads/master@{#376461}
sigbjornf
Fix non-Oilpan ref pointer usage over DOMTokenLists.
R=
BUG=584612
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#376434}
tmoniuszko
[GN] Don't rewrite files with the same contents
Reland of https://codereview.chromium.org/1656253003 with fix.

Reason for revert:
Need to revert this patch according https://sites.google.com/a/chromium.org/dev/developers/tree-sheriffs/sheriffing-bug-queues. This patch added a flaky test FilesystemUtils.WriteFileIfChanged.

-----

It's a test flake:
1) Try to find the patch that caused the flake. It should be recent (e.g. last day or two) in all likelihood.
2) If successful with finding that patch, revert the patch. This is especially true if the flake is from a new test introduced in that patch.
3) Close the bug.

-----

The test has failed in the following builds:

http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_rel_ng/builds/176911
http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_rel_ng/builds/176911
http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_rel_ng/builds/176735
http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_rel_ng/builds/176715
http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_rel_ng/builds/176715
http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_rel_ng/builds/176561
http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_rel_ng/builds/176462
http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_rel_ng/builds/176375

-----

Example failure:

[ RUN      ] FilesystemUtils.WriteFileIfChanged
../../tools/gn/filesystem_utils_unittest.cc:610: Failure
Expected: (last_modified) != (file_info.last_modified), actual: 2016-02-04 18:06:36.920 UTC vs 2016-02-04 18:06:36.920 UTC
[  FAILED  ] FilesystemUtils.WriteFileIfChanged (3 ms)
[315/315] FilesystemUtils.WriteFileIfChanged (3 ms)
Retrying 1 test (retry #2)
[ RUN      ] FilesystemUtils.WriteFileIfChanged
../../tools/gn/filesystem_utils_unittest.cc:610: Failure
Expected: (last_modified) != (file_info.last_modified), actual: 2016-02-04 18:06:36.936 UTC vs 2016-02-04 18:06:36.936 UTC
[  FAILED  ] FilesystemUtils.WriteFileIfChanged (2 ms)
[316/316] FilesystemUtils.WriteFileIfChanged (2 ms)
Retrying 1 test (retry #3)
[ RUN      ] FilesystemUtils.WriteFileIfChanged
../../tools/gn/filesystem_utils_unittest.cc:610: Failure
Expected: (last_modified) != (file_info.last_modified), actual: 2016-02-04 18:06:36.952 UTC vs 2016-02-04 18:06:36.952 UTC
[  FAILED  ] FilesystemUtils.WriteFileIfChanged (2 ms)
[317/317] FilesystemUtils.WriteFileIfChanged (2 ms)
1 test failed:
    FilesystemUtils.WriteFileIfChanged (../../tools/gn/filesystem_utils_unittest.cc:579)

-----

More details in http://crbug.com/584548.

Original issue's description:
> [GN] Don't rewrite files with the same contents
>
> BUG=
>
> Committed: https://crrev.com/f8ea5cceefcedd4a01935d5ac4d2ba71e23ac13e
> Cr-Commit-Position: refs/heads/master@{#373544}

BUG=584548

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

Cr-Commit-Position: refs/heads/master@{#376430}
fs
Remove support of the -webkit-text value from {-webkit-,}background-clip
Usage is essentially/rounding to zero [1].

[1] https://www.chromestatus.com/metrics/feature/timeline/popularity/941

BUG=586485

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

Cr-Commit-Position: refs/heads/master@{#376421}
philipj
Remove support for TreatReturnedNullStringAs=Null|Undefined
document.defaultCharset was the last user and is now removed:
https://codereview.chromium.org/1707473002

BUG=497982

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

Cr-Commit-Position: refs/heads/master@{#376419}
rune
Propagate inherited properties into slotted elements on recalc.
When we reach a <slot> element during recalc, we need to trigger recalc
of elements distributed to that slot for inheritance. This is similar
to what is done for InsertionPoint. I have however not found a case
where we need a bigger cannon than LocalStyleChange on the distributed
elements.

Made a few override methods final, expecting no inheritance of
HTMLSlotElement.

R=kochi@chromium.org,hayato@chromium.org
BUG=587797

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

Cr-Commit-Position: refs/heads/master@{#376406}
mstensho
Unprefix multicol properties.
The prefixed versions will be retained as aliases for the unprefixed ones.
Might take some decades before the world wide web has stopped using them,
so we probably cannot deprecate (and remove) them any time soon.

Most tests are still prefixed. Will clean that up in due course. For now, just
unprefix one random unit test and one random LayoutTest.

BUG=492297

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

Cr-Commit-Position: refs/heads/master@{#376249}
philipj
Remove document.defaultCharset
Intent to Deprecate and Remove:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/pWSb_tq13Kg/Dmk59Fb9AQAJ

The removed Android test depended on defaultCharset. There is already
another test that verifies that the setting affects the default
encoding: LayoutTests/http/tests/download/default-encoding.html

BUG=567738

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

Cr-Commit-Position: refs/heads/master@{#376170}
mstensho
Enable CSS column-fill by default (in stable).
There are already plenty of tests for this in LayoutTests/fast/multicol/

BUG=492297

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

Cr-Commit-Position: refs/heads/master@{#376167}
mstensho
Add CSS parser support for break-after, break-before and break-inside.
Note that this only adds support for these properties on specified and computed
style level, and does not extend the functionality in the layout engine. In
particular, we don't support break-(after|before):(avoid|left|right) any better
than before (i.e. we just recognize the values and do nothing about them in the
engine).

The (page|-webkit-column)-break-(after|before|inside) properties are treated as
shorthands for their break-(after|before|inside) counterparts, in accordance
with the spec.

This CL intends to make as few behavioral changes on computed style level as
humanly possible, apart from actually allowing the new properties. In order to
achieve that, we go against the spec when it comes to mapping between the three
modern break-(after|before|inside) properties and the old-fashioned ones. More
specifically, we map "right" and "left" values to "always", and we even support
those values on -webkit-column-break-(after|before), which is just bogus, but
this is how it's always been. We also violate the spec when it comes to mapping
"avoid" values. While the spec says that e.g. page-break-inside:avoid should
simply map to break-inside:avoid, we map it to avoid-page, so that the computed
value of -webkit-column-break-inside isn't affected by such a declaration.

There WILL be some minor behavioral changes, no matter how hard we try, though:
Since there's now just one property for each of before, after and inside
(instead of two - one for page and one for column), declaration sequences like
"page-break-inside:avoid; -webkit-column-break-inside:auto;" will not behave
like before. This will now become "break-inside:auto" (from the
-webkit-column-break-inside declaration), effectively allowing page breaks
inside.

The new test behaves exactly as it would have without the code changes in this
CL, apart from recognizing break-after, break-before and break-inside.

BUG=223068,492297

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

Cr-Commit-Position: refs/heads/master@{#376148}
mstensho
Merge most of LayoutBox::mapLocalToAncestor() into LayoutObject.
Just kept the part that updates the IsFixed MapCoordinatesMode, since it wasn't
intertwined with the rest and is unique to LayoutBox-derived classes.

BUG=568492
R=leviw@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#376126}
sigbjornf
Fix non-Oilpan PassRefPtr<> usage following r375261.
Add required RefPtr<> local bindings of incoming PassRefPtr<>s.

R=haraken
BUG=583376

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

Cr-Commit-Position: refs/heads/master@{#376122}
rune
Don't add rule feature data for rules which may never match.
:host and :host-context must always be in the rightmost compound with
no other simple selectors except a succeding pseudo element in order to
match as the host element is feature-less in that context. It's however
not an invalid selector according to the CSS Scoping spec, so we
shouldn't drop it at parse time.

We could potentially skip adding other selectors to rulesets as well
including selectors like:

:hover:not(:hover), div:not(div), ::content and ::slotted not in
shadow trees, etc.

R=kochi@chromium.org,ericwilligers@chromium.org
BUG=489481

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

Cr-Commit-Position: refs/heads/master@{#376116}
rune
Don't add to uncommonAttributeRules for non-sharable cases.
Like for siblingRules in [1], we don't need to add rules to
uncommonAttributeRules if the attribute selectors are left of ::content,
::slotted, :host, or :host-context as two elements only may share style
if they match the same elements left of the two former, and anything
left of the two latter may never match.

[1] https://codereview.chromium.org/1695393002/

R=kochi@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#376106}
rune
Fixed comment about :host in SelectorChecker.
- Only non-functional :host has no selector list.
- Removed misplaced specificity comment.

R=kochi@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#376076}
mstensho
Introduce maxColumnLogicalHeight() and clean up a little.
Looks like MultiColumnFragmentainerGroup::calculateMaxColumnHeight() isn't
going to be the only place where we need this functionality.

No functional changes intended.

R=leviw@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#376075}
sigbjornf
Eagerly unregister PostMessageTimer as a context observer.
The effective lifetime of a PostMessageTimer is over once its callback
fires; unregister as an observer at that point to avoid unnecessary work
during the following GC.

R=haraken
BUG=587012

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

Cr-Commit-Position: refs/heads/master@{#375885}
fs
Simplify SVGAnimatedHref
Let SVGAnimatedHref hold the actual value for 'href' and just wrap the
object for 'xlink:href'. This means we can get rid of most of the
overrides.

BUG=584142

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

Cr-Commit-Position: refs/heads/master@{#375861}
philipj
Remove internal use of Document::defaultCharset
This is in preparation for removing document.defaultCharset itself.

The third argument for FormDataBuilder::encodingFromAcceptCharset was
added in https://codereview.chromium.org/25417007 to handle a situation
where a form was inserted into an ImageDocument, which did not have an
encoding.

In https://codereview.chromium.org/1180793002 the charset attribute and
its aliases was made to never return null by initializing
DocumentEncodingData to UTF-8, and so the fallback to defaultCharset in
encodingFromAcceptCharset is now unreachable.

While in the area, clean up encodingFromAcceptCharset slightly to take
an explicit fallback encoding that must be valid, and use a range-based
for loop for readability.

TEST=LayoutTests/fast/images/image-page-injected-script-crash.html
BUG=567738

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

Cr-Commit-Position: refs/heads/master@{#375835}
fs
Don't report errors when SVG attributes are removed
In some cases, SVGAnimated*, and the parser for the underlying object,
will return an error when encountering a null String object (which it
will be passed when the attribute it reflects is removed.) This can be
misleading, so suppress error reporting in these cases.

Also let SVGAnimatedViewBoxRect::setBaseValueAsString delegate to its
superclass rather than open-coding the same thing. This could prove
beneficial if adding additional logic for handling attribute removals.

BUG=523685

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

Cr-Commit-Position: refs/heads/master@{#375833}
sigbjornf
If pthread stack size can't be determined, make a conservative guess.
Default the underestimated stack size for pthreads-based (non OSX) to
512k.

R=haraken
BUG=581913

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

Cr-Commit-Position: refs/heads/master@{#375814}
davve
Deprecate SVGZoomEvent and SVGZoomEvents
Deprecate the SVGZoomEvent interface and the corresponding onzoom
attribute. Show deprecation message to the user when creating the
event or when setting up an event handler using onzoom="..." on
<svg:svg>.

Intent to deprecate:

https://groups.google.com/a/chromium.org/d/msg/blink-dev/5PEUh2qHa7c/IUGlM4a9CQAJ

BUG=367890

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

Cr-Commit-Position: refs/heads/master@{#375771}
philipj
Remove KeyboardEvent.prototype.keyLocation (alias of location)
Intent to Remove:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/lqknEaUYCJM/UbNahDDMAwAJ

BUG=568261

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

Cr-Commit-Position: refs/heads/master@{#375759}
fs
Consider focusability even when tabs-to-links is enabled for <svg:a>
SVGAElement::isKeyboardFocusable could end up returning 'true' even when
the element wasn't focusable (because it had "display: none" and hence
no LayoutObject) because the value of the 'tabsToLinks' setting would be
returned without further checks. Because it wasn't focusable
setFocusedElement would not do anything, and focus would remain where it
was previously.
Make sure the focusable check is considered in this case. This makes the
SVGAElement version of this code look the same as the HTMLAnchorElement
version.

BUG=586200

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

Cr-Commit-Position: refs/heads/master@{#375713}
fs
Add David Vest to core/OWNERS
Review URL: https://codereview.chromium.org/1695383003

Cr-Commit-Position: refs/heads/master@{#375609}
mstensho
Combine 4 bools into GeometryInfoFlags.
This should be more readable and less error-prone than passing 4 bool
parameters to LayoutGeometryMap::push().

"false, false, false, false" -> "0"

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

Cr-Commit-Position: refs/heads/master@{#375600}
davve
Mark StyleGeneratedImage::m_fixedSize as const
Make it obvious that a generated image doesn't go from fixed size to
non-fixed size or vice versa during its life time.

BUG=581357

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

Cr-Commit-Position: refs/heads/master@{#375571}
mostynb
avoid 'may be used uninitialized' warnings in work_queue.cc
GCC gives 'may be used uninitialized' warnings for enqueue_order
and other_enqueue_order, so let's ensure that they're initialized.

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

Cr-Commit-Position: refs/heads/master@{#375558}
fs
Fix arguments order to EXPECT_EQ in HTMLParserIdiomsTest
BUG=586135

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

Cr-Commit-Position: refs/heads/master@{#375541}
rune
Don't add to siblingRules for features left of ::slotted.
Like for ::content distributed elements in shadow dom v0, slotted
elements do not share style if they are assigned/distributed to
different slots. Hence, we don't need to add rules to siblingRules when
the combinators or simple selectors are left of the ::slotted pseudo.

We need to add "::slotted(:nth-child(odd)" to siblingRules, but not
".a + ::slotted(.b)" nor ":nth-of-type(3)::slotted(*)".

Similarly, nothing left of :host or :host-context will ever match, so
we can treat those the same way. Selectors like "div + :host" or
":only-child:host-context(.a)" will never match. There is nothing in
the CSS Scoping spec which says they're invalid, hence they're not
dropped.

There was a bug in https://codereview.chromium.org/1683923003/ which
made us detect adjacent combinators before we had noticed the ::content
following it. The detection of sibling dependent pseudo classes like
:emtpy, :nth-child, etc and adjacent combinators have therefore been
split in this CL so that we handle the simple selectors in a compound
before we handle the combinator. Corresponding unit tests have been
added.

R=kochi@chromium.org,hayato@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#375531}
mostynb
add a mechanism to define clang tarball mirrors
This patch adds a CDS_CLANG_BUCKET_OVERRIDE environment variable
which can be used to override the default google storage api
URL from which clang tarballs are downloaded.

The goal here is to minimize load on the google storage mirrors,
which can become blocked for external contributors, since it is
apparently quite difficult to figure out why and how to get
un-blocked.

BUG=586146

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

Cr-Commit-Position: refs/heads/master@{#375472}
rune
Check IsFixed specifically instead of presence of other flags.
LayoutSVGRoot::mapLocalToAncestor has an assert to check that there is
no fixed content in the SVG layout tree. However, it did incorrectly
rely on MapCoordinatesFlags being non-0. Changed the assert to check
for the Fixed flag explicitly instead.

R=mstensho@opera.com
BUG=586478

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

Cr-Commit-Position: refs/heads/master@{#375458}
sigbjornf
Tidy heap snapshotting implementation.
Adjust the division of labor between BaseHeap::takeSnapshot() and
the heap page implementations of takeSnapshot() --

 - have BaseHeap::takeSnapshot() handle creation of page dump objects
   (and their naming scheme.)
 - tally the heap free count+size in a separate object; only added to
   by "normal" heap pages.

R=
BUG=

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

Cr-Commit-Position: refs/heads/master@{#375455}
rune
Don't add siblingRules with combinator left of ::content.
RuleFeatureSet::siblingRules are collected because we need to skip
style sharing between elements which do not match the same set of
sibling selectors. Style sharing only happens if two elements' parent
chain of computed styles are common. That means that descendants of
their common ancestor also need to share style.

Due to this check in SharedStyleFinder::canShareStyleWithElement:

  if (!sharingCandidateDistributedToSameInsertionPoint(candidate))
    return false;

Elements with distributed nodes in their ancestor chain need to be
distributed to the same insertion points in order to share style. That
is, two elements which may share style match the same insertion points
for all selectors containing the ::content pseudo. Which also means
that any sibling selectors left of any ::content pseudo will match the
same sibling combinations for all elements which may share style.

Hence, we don't need to reject style sharing based on selectors like:

  .a + .b ::content .c

because the sharing would already be rejected because of insertion
point mismatch in the ancestor chain.

This CL skips adding rules to RuleFeatureSet::siblingRules if we have
seen a ::content combinator before we see any sibling selectors.

We currently rejecting style sharing for slots checking
isChildOfV1ShadowHost() in Element::supportsStyleSharing(), so we could
have skipped adding any of the ::slotted rules to siblingRules. I'm not
doing that here as that might change since ::slotted is work in
progress.

If continue to skip style sharing past different slots, this means we
will only need to consider siblingRules from the same TreeScope when
for Shadow DOM V1, which means we don't need a global set of
siblingRules.

R=kochi@chromium.org,hayato@chromium.org,esprehn@chromium.org
BUG=401359

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

Cr-Commit-Position: refs/heads/master@{#375454}
fs
Check length of String before checking if it's 8/16 bit
String::is8Bit() can't be called on 'null' Strings, so check if the
length is zero first.

BUG=586135

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

Cr-Commit-Position: refs/heads/master@{#375451}
rune
Added redistribution recalc test.
Adding a style recalc test for [1]. Elements redistributed to the same
position in the same insertion point should not need a style recalc.

[1] https://codereview.chromium.org/1677463002/

R=kochi@chromium.org
BUG=584177

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

Cr-Commit-Position: refs/heads/master@{#375430}
sbergner
Make AW state_serializer handle restoring also legacy format
This ensures that even if an app attempts to restore a state saved
before upgrading WebView (using the new state version) the old version
will still be successfully restored.

BUG=584693

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

Cr-Commit-Position: refs/heads/master@{#375418}
davve
Align IntrinsicSizingInfo with computeIntrinsicDimensions
Store aspect ratio as a ratio between two floats rather than a double,
in the same way as is done in Image::computeIntrinsicDimensions().

BUG=581357

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

Cr-Commit-Position: refs/heads/master@{#375364}
sigbjornf
Fix non-Oilpan build following r375261.
TBR=oilpan-reviews
BUG=583376
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#375354}
sigbjornf
Avoid data race on Database::m_opened.
Upon closing, the database thread will transition m_opened
to |false|. Do that atomically so as to avoid a race when
other threads check opened() status.

R=michaeln
BUG=580994

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

Cr-Commit-Position: refs/heads/master@{#375353}
mstensho
Merge LayoutInline::mapLocalToAncestor() into LayoutObject.
Avoids code duplication and maybe also makes the LayoutObject implementation
more correct. It was typically only LayoutText objects that used the
LayoutObject implementation of mapLocalToAncestor() prior to this change.

Some extra care was needed when calling style() members, since text nodes just
copy their parent's computed style instead of just inheriting the inheritable
ones. Apart from that, it's basically just about replacing the LayoutObject
implementation with that of LayoutInline.

BUG=568492
R=leviw@chromium.org,ojan@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#375269}
fs
Add support for 'href' (w/o XLink NS) for various SVG elements
This CL adds a new wrapper type SVGAnimatedHref that wraps 'href' (the
new, null/default NS version) and '(xlink:)href' (the XLink NS version).
This wrapper type is used by SVGURIReference and thus most uses of
'href' is covered by this part. SVGAnimatedHref is intended as a wrapper
for accessing the underlying value of either 'href' or 'xlink:href'. Any
updates due to setAttribute or will go directly to the underlying values
which means that synchronization etc. does not apply to the wrapper.
This is one of the "pro"s of this approach - it does not require any
modification to synching between the SVGString object and the attribute
in certain cases (like when the "active" attribute is removed). A "con"
would be that there's a lot of dead space in the object since the
wrapper itself still needs to implement the SVGAnimatedString interface
even if just forwards to the actual SVGString.
The UseCounter for href.baseVal/animVal are moved to the new wrapper.

For cases where SVGURIReference is not used, new code-paths are added to
select the right attribute.

Animation code is updated to target the 'href' in the null/default NS.

BUG=584142

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

Cr-Commit-Position: refs/heads/master@{#375192}
rune
Avoid overwrite of existing PaintLayerReflectionInfo.
The check for an existing reflectionInfo on PaintLayer before
allocating a new one fell out of [1]. This fixes the crash in the
original report in crbug.com/585699.

[1] https://codereview.chromium.org/1636563003

R=chrishtr@chromium.org
BUG=585699

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

Cr-Commit-Position: refs/heads/master@{#375169}
sigbjornf
Fix non-Oilpan build following r375129.
R=haraken
BUG=543198

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

Cr-Commit-Position: refs/heads/master@{#375160}
davve
Count document.createEvent() usage
Count all document.createEvent() calls outside what's listed in:

https://dom.spec.whatwg.org/#dom-document-createevent

BUG=569690

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

Cr-Commit-Position: refs/heads/master@{#375149}
sigbjornf
Tidy GrammarMarkerIndex spelling.
R=
BUG=

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

Cr-Commit-Position: refs/heads/master@{#375148}
mstensho
Unit tests for LayoutObject::mapLocalToAncestor() (and overrides).
BUG=568492

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

Cr-Commit-Position: refs/heads/master@{#375145}
rune
markDocumentDirty() before styleResolverChanged().
markDocumentDirty() was called after the active stylesheet list was
updated which left the tree-scope dirty after everything else was clean.

Switched the order of the statements.

R=hayato@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#375139}
rune
Invalidate :-webkit-any-link for visited state changes.
We did style invalidation for :visited and :link, but UA style uses
color: -webkit-link with :-webkit-any-link and let -webkit-link be
translated into two different colors in the implementation instead of
using :visited and :link in the stylesheet.

Adding style invalidation of :-webkit-link as well. We already did that
for attribute changes on <a> and <svg:a>.

R=tkent@chromium.org
BUG=586190

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

Cr-Commit-Position: refs/heads/master@{#375138}
sigbjornf
Have ASan ignore ObjectAliveTrait<>::isHeapObjectAlive() applied to mixins
When Heap::willObjectBeLazilySwept<T>() is used on a lazy-sweepable
object where T is a mixin, the mixin's isHeapObjectAlive() virtual will
have to be used to adjust the object pointer to the head of the object.

It is unlikely that a compiler will devirtualize that call hence
mark the isHeapObjectAlive() as ASan ignorable.

R=
BUG=

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

Cr-Commit-Position: refs/heads/master@{#375137}
mstensho
Cannot do simplified layout on an object that contains a column-spanner.
Introducing LayoutFlowThread::canSkipLayout(). The implementation of this
method needed two pieces of simple functionality that already existed in other
methods. Refactored them into separate functions, instead of duplicating the
code.

BUG=512757

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

Cr-Commit-Position: refs/heads/master@{#375071}
mstensho
Remaining page height should never be 0 when told to AssociateWithLatterPage.
However, the laws of nature behave differently as LayoutUnit approaches
infinity. Just use the fragmentainer height instead of zero, but assert that
we're actually dealing with saturated arithmetic.

BUG=524882

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

Cr-Commit-Position: refs/heads/master@{#375059}
davve
Pass executionContext to document.createEvent()
In the long run, createEvent() should only work for whitelisted event
interfaces. An execution context is needed for taking the first steps
by adding use counters and doing deprecations.

BUG=569690

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

Cr-Commit-Position: refs/heads/master@{#374913}
sigbjornf
Add missing opener frame null check.
Opening a new window requires access to the calling window's frame, and
isn't supported otherwise. Add missing null check.

R=
BUG=541010

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

Cr-Commit-Position: refs/heads/master@{#374912}
davve
Expand IntrinsicSizingInfo for SVG
Add fields to IntrinsicSizingInfo specifying whether the intrinsic
width and height are specified or not. For SVGs there is a distinction
between missing width/height and setting width/height to 0. There is
code in LayoutReplaced that has specific hooks into the SVG code to
make this distinction. By having separate fields in
IntrinsicSizingInfo this entanglement can be broken.

BUG=585467

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

Cr-Commit-Position: refs/heads/master@{#374909}
philipj
Use effectivePreloadType() where possible
preloadType() is still used in two places where it ideally should not,
HTMLMediaElement::setPlayerPreload and HTMLMediaElement::seek, but
changing those would probably be observable and need tests.

Drive-by: Drop two unused HTMLMediaElement state bits

R=fs@opera.com

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

Cr-Commit-Position: refs/heads/master@{#374897}
sigbjornf
Oilpan: ImageObserver needs to be a GC mixin.
R=haraken
BUG=

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

Cr-Commit-Position: refs/heads/master@{#374896}
fs
Factor out the <textPath> positioning mapping code into a helper class
Since <textPath> will be getting a bunch of smaller new features - all
which essentially revolving around how the actual position is computed,
or how the actual path is setup, wrap the code that performs the
mapping from a location to a point on the path in a helper. The helper
is called PathPositionMapper, and for now resides with
LayoutSVGTextPath since that's the object that sets up the path data.

BUG=366559

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

Cr-Commit-Position: refs/heads/master@{#374893}
sigbjornf
Fix adopt-iframe-src-attr-after-remove.html flaky failure, attempt 2.
Test still flaky following r374872; make the ordering between timer
operations explicit -- requiring the onload's GC to have completed
before running the main part of this test.

(Semi-blind attempt, unable to reproduce locally.)

R=haraken
BUG=584209

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

Cr-Commit-Position: refs/heads/master@{#374889}
sigbjornf
Fix adopt-iframe-sec-attr-after-remove.html failure.
Delay GC until back at the event loop.

R=haraken
BUG=584209

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

Cr-Commit-Position: refs/heads/master@{#374872}
sigbjornf
Fix non-Oilpan build following r371046.
TBR=oilpan-reviews
BUG=552289

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

Cr-Commit-Position: refs/heads/master@{#374772}
sigbjornf
Fix non-Oilpan build following r374308.
TBR=oilpan-reviews
BUG=503491

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

Cr-Commit-Position: refs/heads/master@{#374724}
philipj
Rename XMLHttpRequestProgressEventThrottle to ProgressEventThrottle
XMLHttpRequestProgressEvent is no more.

BUG=357112
R=chrishtr@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#374683}
mostynb
gn: make device/battery build on embedded linux
The logic for when to include the linux dbus implementation
falls into three cases: chromeos, non-chromeos linux with
dbus, and non-chromeos linux without dbus.

By using just the is_chromeos, is_linux and use_dbus
variables, this code will also build successfully on
embedded linux targets.

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

Cr-Commit-Position: refs/heads/master@{#374654}
davve
Introduce IntrinsicSizingInfo
Prepare for passing more information along, specifically whether
intrinsic sizes are specified, when computing intrinsic sizing
information. Do this by introducing a struct carrying the relevant
information. No functional change expected.

Factor out a part of computeAspectRatioInformationForLayoutBox (now
named computeIntrinsicSizingInfoForLayoutBox) and put in a separate
function constrainIntrinsicSizeToMinMax. In the process remove a FIXME
about moving code back to some undefined previous state that's
confusing now that the code has moved around even more.

BUG=585467

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

Cr-Commit-Position: refs/heads/master@{#374635}
rune
Remove unnecessary recalc of host subtree on distribute.
Nodes which need style recalculations after being distributed to new
insertion points, new positions within insertion points, or simply not
distributed anymore, are being reattached in
InsertionPoint::setDistributionNodes().

R=hayato@chromium.org,kochi@chromium.org,esprehn@chromium.org
TEST=fast/dom/shadow,fast/css
BUG=584177

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

Cr-Commit-Position: refs/heads/master@{#374629}
sigbjornf
Add registerNodeListWithIdNameCache() assert.
Follow up r374385 and catch out unsupported multiple registrations.

R=haraken
BUG=585054

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

Cr-Commit-Position: refs/heads/master@{#374614}
sigbjornf
Retire temporary cssTextCache() release assert.
R=
BUG=584692

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

Cr-Commit-Position: refs/heads/master@{#374611}
fs
Remove unused LayoutSVGTextPath::m_layoutPath
This member was probably intended for caching the path at some point in
time, but it isn't used at all at the moment. Remove it for now - maybe
something like it will make a comeback in the future.

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

Cr-Commit-Position: refs/heads/master@{#374490}
fs
Remove references to SVGPathElement from SVGAnimatedPath
There's no longer a need for being this specific. Just use SVGElement.

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

Cr-Commit-Position: refs/heads/master@{#374447}
fs
Move pathLength scale-factor computation to SVGPathElement
There'll eventually be more users of it. Maybe by means of the bug
referenced below.

BUG=366559

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

Cr-Commit-Position: refs/heads/master@{#374446}
philipj
Remove XMLHttpRequestProgressEvent (position and totalSize)
Intent to Remove:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/bpbq0Rcpauk/cnpJtHddAgAJ

BUG=357112

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

Cr-Commit-Position: refs/heads/master@{#374434}
davve
Make object-sizing-zero-intrinsic-width-height a javascript test
A javascript test can detect failures at a more fine-grained level and
is potentially less performance intensive.

BUG=585467

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

Cr-Commit-Position: refs/heads/master@{#374408}
sigbjornf
Do not re-register cached id-name HTMLCollection at same invalidation type.
An HTMLCollection creates an id-name cache for namedItem()/item() lookups.
To handle document tree invalidations following id-name mutations, the
HTMLCollection must then register with the document has having such a
cached collection.

This is done "by proxy", registering the HTMLCollection as being
dependent on id-name invalidation. This registration for the cache being
quite possibly in addition to the collection invalidation type that the
HTMLCollection is already registered at. The HTMLCollection implementation
then naturally taking care to unregister if the cache is invalidated and
cleared.

With Oilpan, the document keeps a weak set of references to these
live collections. So in the event that the HTMLCollection is already
an id-name collection and it registers its id-name cache (by proxy)
with the document, it will re-register the same collection object.
Upon invalidation of the id-name cache the unregistration will then
remove the HTMLCollection entirely as being dependent on id-name
related invalidation notifications. That lack of invalidations can
in certain circumstances lead to failure (see test.)

Address the problem by having id-name HTMLCollections not bother
with (un)registering the id-name cache as (another) live collection.
It adds no value, the collection object is already registered.

(This worked out non-Oilpan as the document there keeps bin counts
per collection invalidation type, allowing "duplicates" from the
same object.)

R=haraken
BUG=585054

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

Cr-Commit-Position: refs/heads/master@{#374385}
rune
Only cache nth-indices when child count > 32.
When matching :nth-* selectors, we sparsely cache the child index count
into a hashmap for the parent element. Doing this regardlessly gave us
a performance penalty for small number of children as where noticed in
a performance degradation for [1].

The new approach is to not cache any indices until we match an :nth-*
selector for which we walk more than 32 siblings. The number 32 were
proposed in the bug report, and it turns out to be quite suitable given
the experiments which were done comparing the implementation not using
a cache at all, and the implementation where we cached regardlessly.

We trigger caching for nth-of-type indices based on the sibling count
as well, but not the sibling-of-type count as that would cause terrible
performance if the elements of the same type were sparse compared to
other siblings.

Gives a > 40% performance improvement for [1].

[1] blink_perf.css:PseudoClassSelectors.

BUG=483338
TEST=blink_perf.css:PseudoClassSelectors

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

Cr-Commit-Position: refs/heads/master@{#374356}
mostynb
update obsolete code.google.com documentation links
This is a documentation-only change.

Disabling presubmit checks, due to "noparent" settings for the following files:
components/policy/resources/policy_templates.json
content/common/font_config_ipc_linux.h

BUG=567488
NOPRESUBMIT=true
TBR=atwilson,dcheng

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

Cr-Commit-Position: refs/heads/master@{#374213}
perja
bluetooth: android: Fix a couple of crashes when adapter is turned on/off.
These changes fixes the crashes found when toggling the adapter on/off
when device chooser dialog is used in web-bluetooth.

BUG=570610

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

Cr-Commit-Position: refs/heads/master@{#374145}
fs
Add override qualifier to SVGStaticStringList::setBaseValueAsString
Overrides method from SVGAnimatedPropertyBase.

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

Cr-Commit-Position: refs/heads/master@{#374127}
sigbjornf
Conditionally define PersistentNode destructor.
R=
BUG=

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

Cr-Commit-Position: refs/heads/master@{#374093}
sigbjornf
Improve MediaStreamTrack's hasPendingActivity predicate.
Make the predicate more precise; MediaStreamTrack objects only need
to have their lifetimes prolonged in certain non-ended states. See
comment for details.

R=haraken
BUG=583264

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

Cr-Commit-Position: refs/heads/master@{#374090}
sigbjornf
Tidy up inclusion of WebScheduler.h
Hygiene; insist on IWYU for WebScheduler.h also.

R=haraken
BUG=

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

Cr-Commit-Position: refs/heads/master@{#374055}
sigbjornf
Fix non-Oilpan build following r373473.
TBR=oilpan-reviews,rune@opera.com
BUG=

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

Cr-Commit-Position: refs/heads/master@{#374040}
sigbjornf
Revert of Don't set the origin twice when navigating for javascript: URLs (patchset #2 id:20001 of https://codereview.chromium.org/1670173002/ )
Reason for revert:
Number of MSan failures reported, https://build.chromium.org/p/chromium.webkit/builders/WebKit%20Linux%20MSAN/builds/8451

Original issue's description:
> Don't set the origin twice when navigating for javascript: URLs
>
> As javascript: navigations will end up with a document that has the
> original document's URL, we shouldn't run the algorithm to determine
> origin on the original URL, especially since we'll override the origin
> later anyways.
>
> BUG=583445
> R=japhet@chromium.org,dcheng@chromium.org,mkwst@chromium.org
>
> Committed: https://crrev.com/75b27bda96f0fe77d40b502642d6669531981a49
> Cr-Commit-Position: refs/heads/master@{#373917}

TBR=dcheng@chromium.org,japhet@chromium.org,mkwst@chromium.org,jochen@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=583445

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

Cr-Commit-Position: refs/heads/master@{#374021}
fs
Remove the SVG parsing "generic error" reporting special case
With most error-reporting sites switched to using non-generic errors, the
workaround for the generic error message can be removed - giving all messages
a similar structure ("<context>: <message>").

BUG=231612

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

Cr-Commit-Position: refs/heads/master@{#373941}
fs
Error reporting for number-or-percentage
Move parseNumberOrPercentage from SVGParserUtilities to SVGNumber (since
it's the only user) and simplify it.

BUG=231612

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

Cr-Commit-Position: refs/heads/master@{#373899}
fs
Error reporting for SVGAngle
Refactor the local helepr stringToAngleType(...) to only advance past
complete matches (of units).

BUG=231612

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

Cr-Commit-Position: refs/heads/master@{#373888}
fs
Cleanup includes of XLinkNames.h
Remove includes which are not used, and use the imageSourceURL() method
in one place to abstract away future uses of 'href'.

BUG=584142

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

Cr-Commit-Position: refs/heads/master@{#373866}
sigbjornf
Do not let go of MediaStreamTracks too early.
Add missing hasPendingActivity() predicate.

R=haraken
BUG=583264

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

Cr-Commit-Position: refs/heads/master@{#373864}
sigbjornf
Avoid data race on CrossThreadPersistents during thread detachment.
As part of detaching a thread from Oilpan and emptying its heap, the
CrossThreadPersistent<>s pointing into that heap are cleared. Doing
so entails traversing the collection of such persistents and checking
their heap membership -- that traversal might race with other threads
who are not at any safepoint.

To avoid the race, insist that updates to CrossThreadPersistent<>s are
atomic along with the corresponding read when doing the above
traversal.

R=haraken
BUG=584250

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

Cr-Commit-Position: refs/heads/master@{#373814}
rune
Fixed for-loop increments in InsertionPoint::setDistributedNodes.
When we reached the end of the old/new distributed nodes in the inner
for-loop, we would do an extra increment of the index of the new/old
distributed nodes which would then lead to skipping reattach for one of
the elements.

Also removed the special treatment of reattaching fallback elements as
they would be part of the new/old vector and shouldn't need special
treatment.

The added test is currently not failing as it's hidden by a
SubtreeStyleChange on the host element which I'll try to remove in a
separate CL.

R=hayato@chromium.org,kochi@chromium.org,esprehn@chromium.org
BUG=584617

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

Cr-Commit-Position: refs/heads/master@{#373805}
sigbjornf
Split out fallback stack limit determination.
In case we're unable to get an estimate of the stack size for a platform
thread, a small stack size is assumed and its effective upper bound is
then probed and computed.

Do that in a separate method to avoid compiler-injected stack exhaustion checks
(MSVC's _chkstk()) from being always run for StackFrameDepth::enableStackLimit().
This also facilitates running GCs when up against stack pressure on Windows
platforms.

R=haraken
BUG=582819

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

Cr-Commit-Position: refs/heads/master@{#373787}
bratell
Set DOM Storage buffer size so that not everything ends up in RAM
When a database is opened the log file is read and if the write
buffer is large then it stays in memory, and this happens
every time the browser starts. By reducing the write buffer
the log file will be written into the database the first time
and then very little RAM will be used for that data.

BUG=583629

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

Cr-Commit-Position: refs/heads/master@{#373780}
landell
Use std::isnan instead of isnan in global ns
BUG=

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

Cr-Commit-Position: refs/heads/master@{#373548}
tmoniuszko
[GN] Don't rewrite files with the same contents
BUG=

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

Cr-Commit-Position: refs/heads/master@{#373544}
sigbjornf
Annotate TimerBase::CancellableTimerTask destructor as ASan ignorable.
Just like its run() method, the destructor may touch its Timer owner when
it is in a to-be-swept state; allow it.

R=haraken
BUG=581448

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

Cr-Commit-Position: refs/heads/master@{#373534}
mstensho
Remove unreachable code from TransformState::move().
Review URL: https://codereview.chromium.org/1661153002

Cr-Commit-Position: refs/heads/master@{#373530}
davve
Inline SVGImage::setContainerSize() and remove extra resize call
DrawInternal() is responsible for resizing the frame to the new
container size. Setting the frame size to the old container size
temporarily ought to be a redundant operation.

BUG=581357

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

Cr-Commit-Position: refs/heads/master@{#373517}
sigbjornf
If marking system stack is unknown, be more forgiving about stack depths.
In case we're unable to determine the stack size available for the GC
marking pass, a very conservative fallback size is used -- that size
being used to decide if the marking pass should switch to using lazy
marking instead.

If the fallback size is in effect, have the debug assert intended to catch
out unintentionally deep trace chains be more forgiving.

R=
BUG=581913

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

Cr-Commit-Position: refs/heads/master@{#373514}
sigbjornf
Reorder ScriptLoader fields to help diagnose object inconsistency.
crbug.com/570012 is showing signs of a ScriptLoader field update not
persisting on some platforms; reorder the fields to speculatively try
to perturb status.

R=
BUG=570012

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

Cr-Commit-Position: refs/heads/master@{#373505}
tmoniuszko
Support different project toolchains
Solution may contain projects configured to use non-default toolchains.
For instance solution with "Debug|Win32" configuration may contain some
projects with "Debug|x64" configuration.

BUG=305761

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

Cr-Commit-Position: refs/heads/master@{#373503}
fs
Don't propagate bbox for empty <text> to ancestors
If we have a <text> element which is "empty" (essentially has no text
content after collapsing spaces), then its bounding box would be empty,
but would still be propagated to the bounding boxes of the ancestors -
which could span them out to be bigger than expected. Similarly they
could be subject to their userspace transform with a similar effect.

Skip propagation of empty <text> element - where "empty" is defined as
"has no line boxes".

BUG=450229

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

Cr-Commit-Position: refs/heads/master@{#373501}
davve
Atomic scaling in ImageResource::imageSize()
Since https://codereview.chromium.org/1634133003/ there is only
hasRelativeSize(), no hasRelative{Width,Height}(). The code affected
by this patch was written under the latter assumption. With only
hasRelativeSize() the code can be simplified a bit to either scale or
return early.

Also remove useless ASSERT. |multiplier| is always non-equal to one in
that code branch so the assert doesn't check anything meaningful.

BUG=581357

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

Cr-Commit-Position: refs/heads/master@{#373496}
sigbjornf
Allow cssTextCache to be used on the main thread only.
https://codereview.chromium.org/864143006 tentatively made this
singleton cross-thread usable. (Repeated) testing doesn't indicate
that it is used outside the main thread, hence switch back to using
DEFINE_STATIC_LOCAL().

R=haraken,timloh
BUG=549732

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

Cr-Commit-Position: refs/heads/master@{#373493}
fs
Additional errors for SVG transform list parsing
This adds specific error messages for missing/incorrect transform
functions and missing '(' at the start of a transform function argument
list.

BUG=231612

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

Cr-Commit-Position: refs/heads/master@{#373491}
tmoniuszko
Make sure VS projects order is always the same in solution
Solution file is being rewritten and reloaded by Visual Studio if projects
order changes during 'gn gen' command.

BUG=305761

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

Cr-Commit-Position: refs/heads/master@{#373486}
rune
Incorrect setHasMediaQueries() when @media rule is dropped.
Trying to insert an @media rule into a stylesheet were incorrectly
marking the stylesheet as containing media queries before the media
rule was dropped because it was inserted before an @namespace rule.

That caused unnecessary rebuilding of rule sets for the stylesheet with
the dropped rule when a media query evaluation changed in some other
stylesheet.

R=timloh@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#373473}
fs
Rename local limit variable in SVG transform argument parsing
Rename maxPossibleParams to requiredWithOptional to more precisely
describe what it is.

BUG=231612

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

Cr-Commit-Position: refs/heads/master@{#373217}
mstensho
Introduce RenderingTest::getLayoutObjectByElementId().
Because it's boring to type document().getElementById("foo")->layoutObject().

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

Cr-Commit-Position: refs/heads/master@{#373150}
fs
Support 'pathLength' for stroking operations on <path>
This implements support for the 'pathLength' attribute on <path>.

BUG=536217

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

Cr-Commit-Position: refs/heads/master@{#373110}
fs
Error reporting for SVG transform lists
Report too short/long argument lists to transform functions as well as
trailing garbage (separators). Could still be improved wrt invalid
transform functions and missing opening parenthesis.

BUG=231612

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

Cr-Commit-Position: refs/heads/master@{#373100}
tommyt
Call BluetoothGatt#close() after disconnecting
This fixes the problem where connections are never properly removed,
causing the BluetoothAdapter to eventually not be able to connect at
all.

BUG=576819

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

Cr-Commit-Position: refs/heads/master@{#372986}
tmoniuszko
Use ElapsedTimer to measure VS files generation time in GN
BUG=305761

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

Cr-Commit-Position: refs/heads/master@{#372912}
sigbjornf
Support reviving a disposed plugin container.
When a plugin element updates its 'persisted' renderless widget (a plugin
container most likely), we notify the previous one kept as having been
detached and disposed of. The plugin container must then promptly clear
the reference to its external WebPlugin (and others), for safety.

It is however possible for the embedder to still keep references to that
plugin container and afterwards revive it by assigning it a replacement
plugin. Support such revivification.

R=haraken
BUG=582811

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

Cr-Commit-Position: refs/heads/master@{#372907}
mstensho
LayoutBox cannot be non-atomic inline.
Don't account for such a situation. Instead, just assert that
it doesn't happen.

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

Cr-Commit-Position: refs/heads/master@{#372823}
davve
Document lifecycle violation workaround
Add comments describing how scheduleSVGFilterLayerUpdateHack's
lifecycle violation is handled and remove stale comments about
<iframe> compositioning long fixed.

NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#372715}
bratell
Handle NaN in the Audio delay curves.
Since switching from std::min to clampTo NaN has caused ASSERTs.
This restores the old behaviour of no ASSERT and a delay interpreted
as maxDelayTime.

BUG=582699
R=rtoy@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#372710}
sigbjornf
Make copyToVector() robust against conservative GCs.
When resizing copyToVector()'s incoming vector to match the size of
the collection being copied from, do this in a manner that locks out
GCs across that vector backing store allocation.

If not, there's a risk that the collection's size might shrink across
that GC, and leave the vector as having an overestimated size.
copyToVector() will in that case unexpectedly encounter empty
elements in the tail, and fail.

This can only happen for Oilpan heap collections having weak references..
and that collection is not directly stack-reachable when a conservative
GC triggers. Rare, but copyToVector()'s obligation to make that safe
rather than its callers.

R=haraken
BUG=581698

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

Cr-Commit-Position: refs/heads/master@{#372693}
fs
Refactor parsing in SVGTransformList
In preparation for extended error reporting.

Split SVGTransform creation out of parseTransformOfType, and then fold
the remains into parseTransformParamList - naming the result
parseTransformArgumentsForType. Use a Vector with suitable
initial-capacity rather than a float[]. Change the handling trailing
commas so that it is not triggered when the maximum number of arguments
are reached. (This will allow for better errors to be reported in some
cases.)
Change parseAndSkipTransformType to return the parsed type via the
return value rather than an out parameter.
Reduce the number of calls to skipOptionalSVGSpaces in parseInternal
and parseTransformArgumentsForType, and make better use of the return
value from it.

Also make SVGTransformList::consolidate() and add() use initialize(...)
rather than open-coding it.

BUG=231612

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

Cr-Commit-Position: refs/heads/master@{#372656}
fs
Use StylePath instead of (Path)StyleMotionPath
Replace uses of PathStyleMotionPath with StylePath and remove the former
as well as the StyleMotionPath base-class. The methods length() and
isClosed() are transferred to StylePath.
Pass const CSSValue& to StyleBuilderConverter::convertPath (fixup to
https://codereview.chromium.org/1545713003) necessitating mutability.
Convert motion-path style building to use a converter.

BUG=535429

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

Cr-Commit-Position: refs/heads/master@{#372643}
sigbjornf
Fix safepoint entering when waiting for a debugger task.
When attempting to run worker debugger tasks, a timed wait is made on
the underlying task queue. While doing so, we are at a safepoint wrt
Blink GCs for the worker, and enter a safepoint scope.

The worker thread's stack will not be empty and clear of potential heap
references at that point; enter the safepoint with an appropriate
stack state.

R=
BUG=582710

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

Cr-Commit-Position: refs/heads/master@{#372570}
mostynb
support symlinks in zip files in build_utils.ExtractAll
Without this, extracting zip files which contain symlinks does not
work- instead of creating symlinks, regular files are written with
the symlink target.

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

Cr-Commit-Position: refs/heads/master@{#372557}
mstensho
Refuse to paginate if page height is 0.
When printing a document with an IFRAME, we first call
Document::setPrinting(true) on the root document and lay it out, then call
setPrinting(true) on the IFRAME document and lay it out. When we're done
printing, we first call setPrinting(false) on the root document and lay it out.
If this layout pass causes the IFRAME to be resized, we'll lay out the document
inside the IFRAME as well. When reaching LayoutView::layout() for the IFRAME
now, shouldUsePrintingLayout() will return true [1], and we'll establish a
ViewFragmentationContext for the child frame. This is harmful, since page
logical height is 0, and we'd end up dividing by zero when attempting to figure
out how much space we have left on a page for a given offset inside a multicol
container.

[1] shouldUsePrintingLayout() normally returns true for root frames only, with
one exception: if the child document is printing(), while the parent isn't. The
intention with this exception is to be able to print only an IFRAME
(iframeElement.contentWindow.print()), but in this case it had a nasty
side-effect.

BUG=578726
R=leviw@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#372454}
fs
Error reporting for SVGInteger and SVGIntegerOptionalInteger
Also includes a minor cleanup of SVGInteger::setValueAsString.

BUG=231612

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

Cr-Commit-Position: refs/heads/master@{#372401}
sigbjornf
Keep (Heap)TerminatedArray in a consistent state while building.
When building a (Heap)TerminatedArray<T>, be careful to always have a
'last marker' set while doing so. Otherwise, should a conservative GC
strike while building, there's no last marker to terminate the tracing
of the HeapTerminatedArray<> elements.

R=haraken
BUG=581698

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

Cr-Commit-Position: refs/heads/master@{#372367}
bratell
[BinarySize] Filter duplicate lines in nm output.
nm just outputs the symbols it finds in the debug sections of the binary
and sometimes the same symbol appears more than once, with the exact
same data.

The binary_size tool would think that it was two different symbols that
shared the same address so it would get the numbers right, but the
output would be confusing since the memory would be split in two
halves.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#372359}
tmoniuszko
Visual Studio generators for GN
BUG=305761

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

Cr-Commit-Position: refs/heads/master@{#372354}
rune
No pseudo elements in SelectorChecker::Mode QueryingRules.
QueryingRules mode is used by the Selectors APIs and when selecting
distributed nodes from the select attribute of the <content> element in
Shadow DOM V0.

CSSSelector::isCompound called from HTMLContentElement::validateSelect
makes sure we don't pass selectors with pseudo element selectors to the
rule collector.

Here we introduce a check which skips adding a selector to the selector
list in SelectorDataList if it will match a pseudo element. Such
selectors are still valid, and won't throw, but will result in an empty
result. If no selectors are added to SelectorDataList, we just skip the
DOM traversal.

This means we can replace the QueryingRules check in checkPseudoElement
with an assert.

BUG=489481

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

Cr-Commit-Position: refs/heads/master@{#372342}
rune
Add use counter for indirect adjacent selectors.
R=ojan@chromium.org
BUG=378058

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

Cr-Commit-Position: refs/heads/master@{#372341}
fs
Refactor away SVGPathSource
This CL moves the SVGPathParser::initialCommandIsMoveTo functionality into
the path data sources that needs this check - eliminating the need for the
SVGPathSource method peekSegmentType.
This leaves SVGPathParser::parsePath as a fairly trivial loop doing
parseSegment + emitSegment. Converting this function to a templated one,
The remaining two methods of the SVGPathSource interface no longer need to
be (called) virtual(ly) - allowing us too remove the interface entirely,
and simplify and inline code (hasMoreData) accordingly.
The net effect on (binary) code size is a roughtly 1.5k reduction.
Also rename and refactor some of the helpers in SVGPathStringSource.cpp
to try to better illustrate what they are used for.

BUG=467592

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

Cr-Commit-Position: refs/heads/master@{#372329}
sigbjornf
Support weak WebPrivatePtr<>s.
Parameterize WebPrivatePtr<> over the strength of the reference it maintains:

 WebPtrivatePtr<T, crossThreadDestruction, strongOrWeak>

where

 crossThreadDestruction = WebPrivatePtrDestruction{SameThread, CrossThread}
 strongOrWeak = WebPrivatePtrStrength::{Normal, Weak}

If Normal, the reference is the normal strong kind, which means either
a RefPtr<> or a strong off-heap (CrossThread)Persistent<T> Oilpan reference.

If Weak, the Oilpan reference will be (CrossThread)WeakPersistent<T>, meaning
that the WebPrivatePtr<> will not keep the object alive on its own. Any
dereference of the WebPrivatePtr<> will consequently have to check if the
reference has been cleared before using.

The abstraction doesn't currently support weak non-Oilpan references.

R=
BUG=

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

Cr-Commit-Position: refs/heads/master@{#372324}
fs
Don't give 'order' semantic errors special treatment
Just set the parse status to the (new) error code for "zero value" or
"negative value" and let it propagate.
This makes SVGDocumentExtensions::reportWarning dead, so remove it.

BUG=231612

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

Cr-Commit-Position: refs/heads/master@{#372176}
sigbjornf
Speculatively handle weak member clearing while creating iteration vector.
CSSFontSelector keeps a set of weakly referenced clients; when notifying
those the set is copied into a temporary heap vector before iterating.

Allocating that vector might potentially cause a GC, which in turn
could cause some of the weak references to be cleared. With the outcome
that the temporary vector will contain empty tail elements.

Speculatively check&handle that eventuality when iterating.

R=haraken
BUG=568173

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

Cr-Commit-Position: refs/heads/master@{#372112}
sigbjornf
Fix non-Oilpan build following r372015.
TBR=oilpan-reviews,tkent
BUG=477839
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#372091}
sigbjornf
RenderViewTest: really drain the event loop before shutting down Blink.
And with that in place, undo the partial fix by r371169.

R=haraken,jochen
BUG=581948
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#372088}
sigbjornf
Let notifyScriptLoadError() handle already detached ScriptLoaders.
If a ScriptRunner has been disposed of already, allow ScriptLoaders
to notify of their failure without asserting.

R=haraken
BUG=570012

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

Cr-Commit-Position: refs/heads/master@{#372075}
sigbjornf
Revert of Let notifyScriptLoadError() handle already detached ScriptLoaders. (patchset #3 id:40001 of https://codereview.chromium.org/1644483002/ )
Reason for revert:
The change here assumes PendingScripts are separately allocated objects, an M50 change. This makes for more difficult backporting. Unnecessarily so.

Hence reverting and will reland a variation ( https://codereview.chromium.org/1642863002/ ) that works for older branches.

Original issue's description:
> Let notifyScriptLoadError() handle already detached ScriptLoaders.
>
> If a ScriptRunner has been disposed of already, allow ScriptLoaders
> to notify of their failure without asserting.
>
> R=haraken
> BUG=570012
>
> Committed: https://crrev.com/e7bf58190483dffac8e78506884170720165b198
> Cr-Commit-Position: refs/heads/master@{#371772}

TBR=haraken@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=570012

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

Cr-Commit-Position: refs/heads/master@{#372058}
rune
Moved element style recalc count and stats to StyleEngine.
There are two element style recalc counters, one in Document, and one
in StyleResolver. The one in StyleResolver includes pseudo elements in
that count. We are unifying thesie counts keeping pseudo elements
included which means that the element recalc count will be higher for
tracing and the inspector, but unchanged for
internals.updateStyleAndReturnAffectedElementCount().

Also the StyleResolverStats is moved from StyleResolver to StyleEngine.
This means the stats will survive a clearResolver().

This change is motivated around item 6 and 9 in the design document for
crbug.com/401359.

R=dstockwell@chromium.org
BUG=401359

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

Cr-Commit-Position: refs/heads/master@{#372045}
rune
::before/::after are not features for invalidation.
We store a flag for finding ::before or ::after in
InvalidationSetFeatures, yet they are not added as features to
invalidation sets. That means we need to handle *::before as a universal
selector and cause subtree invalidations.

R=ericwilligers@chromium.org
BUG=581675

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

Cr-Commit-Position: refs/heads/master@{#372035}
fs
Implement specced parsing algorithm for <area coords>
This implements the parsing algorithm for "list of floating point
numbers" and uses it to parse the 'coords' attribute on <area>.
The fractional part of numbers are no longer discarded.
The old parsing code in platform/Length.cpp is no longer used and is
removed.

BUG=578114

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

Cr-Commit-Position: refs/heads/master@{#371940}
fs
Use SET_NESTED_VAR instead of SET_VAR where possible in ComputedStyle
In some cases this could save a copy of the outer object
(rareNonInheritedData in all cases.)
This also saves almost 3.5k of binary footprint.

BUG=581413

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

Cr-Commit-Position: refs/heads/master@{#371860}
fs
Lazily create the Path in StylePath
Instead of creating the Path object up front - when the StylePath is
created - create it on first access/use (usually on paint/layout.)

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

Cr-Commit-Position: refs/heads/master@{#371850}
fs
Extended error reporting for SVG path parsing
Adds reporting of errors for the errors detected:

 * Missing starting moveto
 * Missing command verb
 * Unexpected input type (number, arc flag)

The parsing helper parseArcFlag() is adjusted to not consume any
character on error.

BUG=231612

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

Cr-Commit-Position: refs/heads/master@{#371849}
fs
Fix typo(s) in css3/filters/effect-reference-composite*.html
y=20" -> y="20"

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

Cr-Commit-Position: refs/heads/master@{#371819}
mstensho
Display -webkit-filter objects in any column (instead of only in the first one).
Most of our painting-related operations take place after fragmentation, i.e.
via PaintLayerPainter::paintFragmentWithPhase(). All such operations can just
sit back and relax and not worry about fragmentation, since translation and
clipping for a given fragmentainer (column) has already taken place.

This is not the case for filters, though. They are set up before fragmentation.
Therefore, we need to make the bounding box of the layer visual (convert out of
the flow thread coordinate space) on our own. We now do this specifically for
filters, or we'd upset other parts of the code, such as clip path.

BUG=530074
R=wangxianzhu@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#371808}
tmoniuszko
Move trace_event.h include from v8_platform.h to .cc file
trace_event.h is redundant in header file. It also causes compilation
issues when Blink precompiled headers are used on Windows (Bug 495697).

BUG=

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

Cr-Commit-Position: refs/heads/master@{#371801}
tmoniuszko
Fix //chrome/app/test_support dependency on //chrome/browser/policy:path_parser
BUG=

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

Cr-Commit-Position: refs/heads/master@{#371790}
bratell
Report PeriodicWave memory usage to v8 so GC can be properly scheduled
A PeriodicWave object can use half a MB and v8 needs to know about that
or it will not schedule garbage collects when memory usage increases.

BUG=578351

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

Cr-Commit-Position: refs/heads/master@{#371777}
mstensho
Remove support for -webkit-column-span:1
This was an "alias" for -webkit-column-span:none. '1' is not a valid value,
according to the spec. The only valid values are 'none' and 'all'. In an older
version of the spec, '1' and 'all' were the valid values. In the latest version
(2011), '1' was changed to 'none'.

It's highly unlikely that removing this should cause compatibility problems.
The initial value is 'none' (which is what '1' was mapped to), so in order to
cause trouble, one would need a declaration -webkit-column-span:all to be
overridden by a -webkit-column-span:1. I went through httparchive to verify.
No sites were found to do this.

R=timloh@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#371773}
sigbjornf
Let notifyScriptLoader() handle already detached ScriptLoaders.
If a ScriptRunner has been disposed of already, allow ScriptLoaders
to notify of their failure without asserting.

R=haraken
BUG=570012

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

Cr-Commit-Position: refs/heads/master@{#371772}
fs
Avoid unnecessary CoW for outer DataRef when applying transform-origin
Even if the transform-origin is the same as the current value,
rareNonInheritedData will still be copied.
Add a new macro SET_NESTED_VAR, similar to the existing SET_VAR, but
allowing an intermediate |base| field to be specified, avoiding the
access in the dereference of that field from the group.

BUG=571183

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

Cr-Commit-Position: refs/heads/master@{#371766}
davve
Condense Image::hasRelative{Width,Height}() into one
Image::hasRelative{Width,Height} always return the same result so
there is no need for two functions. Since
https://codereview.chromium.org/26390004 there is no reason to have
these separate since the SVGImage implementations are gone.

BUG=581357

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

Cr-Commit-Position: refs/heads/master@{#371764}
davve
Consistency in LayoutReplaced::computeReplacedLogicalWidth()
All other return values pass through
computeReplacedLogicalWidthRespectingMinMaxWidth, let this one do so
too.

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

Cr-Commit-Position: refs/heads/master@{#371761}
rune
Marked parsing as failed for invalid compound.
If we return nullptr trying to consume a compound, and all tokens have
been consumed, we don't recognize that as a parse failure if a valid
selector precedes the compound. Set m_failedParsing to true to notice
we have an invalid selector.

R=timloh@chromium.org
BUG=581257

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

Cr-Commit-Position: refs/heads/master@{#371760}
fs
Negative or zero radius for <area shape=circle> gives an empty shape
Step 7 in

https://html.spec.whatwg.org/multipage/embedded-content.html#processing-model

BUG=578125

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

Cr-Commit-Position: refs/heads/master@{#371742}
fs
The missing value default for <area shape> is 'rect'
There is no invalid value default, so the missing value default will
apply in that case too.
The 'Unknown' HTMLAreaElement::Shape enumeration value is no longer
needed, so remove it.

Also add support for the non-conforming <area shape> values:

 * 'circ'     (alias for 'circle')
 * 'polygon'  (alias for 'poly')
 * 'rectangle (alias for 'rect')

Because 'rect' (and hence 'rectangle') is the same as the missing
value default we don't need any explicit checks for these values.

https://html.spec.whatwg.org/multipage/embedded-content.html#attr-area-shape

BUG=578125

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

Cr-Commit-Position: refs/heads/master@{#371731}
philipj
Remove superfluous semicolons around IPC message macros
These macros are defined such that trailing semicolons (or inner
semicolons) have no effect, and they are overwhealmingly used without
semicolons, as per the documentation in ipc_message_macros.h.

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

Cr-Commit-Position: refs/heads/master@{#371706}
mstensho
Adjust column rows' height better for their offset in the multicol container.
We were missing the case where the first object in a multicol container was a
spanner (the call to previousSiblingMultiColumnSet() should have been
previousSiblingMultiColumnBox(), to catch spanner placeholders in addition to
column sets).

But instead of having a special code path depending on whether we're dealing
with the first box or not (to avoid subtracting the multicol container's top
border and padding from an uncalculated logical top of a column set), always
subtract the margin top edge of the first column box instead.

R=leviw@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#371661}
sigbjornf
Promptly let go of WebURLLoader objects.
The objects keeping their own WebURLLoaders (and thus being
WebURLLoaderClients) must promptly let go of their ownership upon
becoming garbage. Not doing so risks the embedder calling the client
while it is in a sweepable state.

R=
BUG=568173

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

Cr-Commit-Position: refs/heads/master@{#371639}
davve
Avoid calling imageForCurrentFrame needlessly on SVGImageForContainer
Propagate SVGImage::isTextureBacked() through SVGImageForContainer to
make https://codereview.chromium.org/1438663002 effective in more
cases.

BUG=552406

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

Cr-Commit-Position: refs/heads/master@{#371535}
davve
Media Session: prepare for implicit activation of user created session
Provide an optional WebMediaSession to embedder when creating a
WebMediaPlayer. A null WebMediaSession means the player should belong
to the default media session.

BUG=497735

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

Cr-Commit-Position: refs/heads/master@{#371530}
fs
Use ASCII case-insensitive matching for ident-likes in the CSS parser
This CL replaces CSSParserToken::valueEqualsIgnoringCase and
CSSParserString::equalIgnoringCase with valueEqualsIgnoringASCIICase
and equalIgnoringASCIICase respectively - calling the similarly named
function in WTF.
Some cases where CSSParserToken::value() was coerced to a String is
changed to avoid the coercion - using the CSSParserToken method
directly.
Similarly some cases that use the CSSParserString overload for
equalIgnoringCase is changed to use the method on CSSParserToken.
The dead equalIgnoringCase(const CSSParserString&, ...) function in
LegacyCSSPropertyParser.cpp is removed.

BUG=581001

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

Cr-Commit-Position: refs/heads/master@{#371500}
davve
Drop contradictory condition in min-width clamping
isMaxSizeNone() is nonsensical for min-width. Zero (but represented as
Auto) is initial Length value for min-width, not MaxSizeNone. This
stands out after the rename from isUndefined() to isMaxSizeNone(). But
in this case it seems |style()->logicalMinWidth().isMaxSizeNone()| was
a just long alias for |false| so remove it.

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

Cr-Commit-Position: refs/heads/master@{#371494}
fs
Match <area shape> ASCII case-insensitively
The 'shape' attribute on HTMLAreaElement is an "enumerated attribute"
[1], which means that it should be matched ASCII case-insensitively[2].

To get a proper overload of equalIgnoringASCIICase(...) that matches the
required use (AtomicString against string literal/const char*),
restructure the definition of equalIgnoringASCIICase() to do away with
the templated version in favor of a generic StringImpl* version, and
specific wrappers around that one for AtomicString/String.
Also add a specialization for comparing against char/LChar.

No effect on the specified test because:
a) Invalid/missing value default is not per spec, so the unexpected shape
is picked anyway.
But more importantly:
b) the way case-folding is implemented/specified, no non-ASCII character
is case-folded to something in the ASCII-range.

[1] https://html.spec.whatwg.org/multipage/embedded-content.html#attr-area-shape
[2] https://html.spec.whatwg.org/multipage/infrastructure.html#enumerated-attribute

TEST=fast/html/area-shape.html
BUG=578125

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

Cr-Commit-Position: refs/heads/master@{#371478}
sigbjornf
Precisely account for required buttons in a radio group.
As part of processing the name attribute for a radio button, it is
added to the current radio button group. For buttons that are
additionally "required", that leads to double accounting for the
group's count of such required buttons, as the radio button group
doesn't keep track what has been registered as "required" already
or not.

Address by having the button group track the registered "required"
state of its members/buttons.

R=keishi,tkent
BUG=

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

Cr-Commit-Position: refs/heads/master@{#371476}
fs
Use even-odd fill rule for <area shape=poly>
See step 8, "Polygon state" in

https://html.spec.whatwg.org/multipage/embedded-content.html#processing-model

BUG=578125

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

Cr-Commit-Position: refs/heads/master@{#371371}
rune
Serialize namespaced type/* selectors according to CSSOM spec.
See https://drafts.csswg.org/cssom/#serializing-selectors.

The serialize-namespaced-type-selectors.html test is a stripped version
of this pull request: https://github.com/w3c/csswg-test/pull/1020
Gecko (Firefox 43) passes all those tests.

As part of this we are fixing problems with universal selectors being
incorrectly marked as explicit (for serialization) in certain cases.

When we have pseudo elements which require an implicit shadow combinator
to match across shadow boundaries, we need to add an implicit universal
selector to make the combinator combine the pseudo with some parent when
the original selector doesn't have any other simple selectors.

video::cue(i) can add the combinator between video and ::cue(i), while
::cue(i) requires a universal selector in the internal representation
to have ::cue(i) -> /implicit-shadow-crossing/ -> *.

For ::cue(i), the universal selector were marked correctly as implicit
to avoid it being serialized as *::cue(i). However, with an explicit
universal selector in the source *::cue(i), the universal selector were
marked as explicit due to an incorrect isNull() check. Explicit
universal selectors were already dropped from the serialization of
selectors like *::before.

BUG=579043

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

Cr-Commit-Position: refs/heads/master@{#371363}
sigbjornf
Have WebGeolocationController always wrap up its private controller object
Until Oilpan is firmly enabled, always use GeolocationControllerPrivate
to wrap up the non-owned GeolocationController* object. The previous
implementation was performing an untidy downcast with undefined behavior;
no need for such shortcuts here.

R=
BUG=581112

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

Cr-Commit-Position: refs/heads/master@{#371341}
fs
Error reporting for SVGLength and SVGLengthList
LoFi error reporting for SVGLength (LoFi because it uses the CSS
parser, and hence can't provide locus information.)
Minor cleanup in SVGLengthList, hoisting the call to clear().
Adding SVGParsingError::offsetWith to support the nested parsing going
on in SVGLengthList.

BUG=231612

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

Cr-Commit-Position: refs/heads/master@{#371288}
rune
Fix selector namespace prefix resolution.
When parsed without a stylesheet context, there are no prefix to
namespace URI mapping, so a ns name prefixed selector should be
invalid. Instead, we mapped "ns|e" to "*|e".

Here, we instead make "ns|e" invalid in contexts where there is no
stylesheet. However, "|e" and "*|e" should still be valid, so that part
of the prefix resolution is moved from the stylesheet to the selector
parser.

This meant that prefix resolution was incorrect for the select
attribute of the content element.

Also, prefixes in Selectors API were handled outside of the selector
parsing instead. Now we handle it inside the selector parsing instead
which means that we throw a SyntaxError instead of a NamespaceError for
unresolved namespace prefixes in the Selectors API. This is in line
with the specifications[1][2] and Gecko.

Another issue, was that setting selectorText of StyleRule did not pass
a stylesheet to the selector parser, so namespace resolution did not
work for setting selectorText.

[1] https://www.w3.org/TR/selectors-api2/#resolving-namespaces
[2] https://dom.spec.whatwg.org/#scope-match-a-selectors-string

R=timloh@chromium.org
BUG=580023,580445

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

Cr-Commit-Position: refs/heads/master@{#371275}
sigbjornf
Fix g++ builds by avoiding early HeapSupplement<Document> instantiation.
Building ToT with g++ (component build) currently breaks when using
the Oilpan type HeapSupplement<Document>:

 ...
 error: type attributes ignored after type is already defined [-Werror=attributes]
 ...
 .../dom/Document.h:179:51: note: in expansion of macro ‘WillBeHeapSupplement’
 extern template class CORE_EXTERN_TEMPLATE_EXPORT WillBeHeapSupplement<Document>;

It appears that g++ cannot be kept happy if it implicitly instantiates
a template at a type and then later sees an extern decl like the above
with some extra attributes attached.

Hence, bring the required types into scope for FontFaceSet's declaration
to avoid that unfortunate situation.

R=haraken,thakis
BUG=

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

Cr-Commit-Position: refs/heads/master@{#371270}
fs
Add tests for HTMLAreaElement coords/shape and processing model
This makes local copies of:

 html/semantics/embedded-content/the-area-element/area-coords.html
 html/semantics/embedded-content/the-area-element/area-processing.html
 html/semantics/embedded-content/the-area-element/area-shape.html
 html/semantics/embedded-content/the-area-element/support/hit-test.js

in fast/html/ and adjust them so that they can run correctly in the
test runner. The adjustment amounts to referencing a different image
than the original, and doing so using a relative path, and putting
hit-test.js in the local resources/ directory in fast/html.

BUG=578125,578114,498120

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

Cr-Commit-Position: refs/heads/master@{#371246}
fs
Match 'i' attribute selector modifier case-insensitively
The 'i' should be treated as an identifier, so matching should be ASCII
case-insensitive.

BUG=580446

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

Cr-Commit-Position: refs/heads/master@{#371228}
rune
Missing m_failedParsing=true for unresolved namespace.
When we already have an accepted compound and we return nullptr for a
second fully consumed compound, we were relying on non-consumed tokens
like trailing spaces to detect that the selector was invalid. Setting
m_failedParsing=true fixed it.

R=timloh@chromium.org
BUG=580496

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

Cr-Commit-Position: refs/heads/master@{#371202}
fs
Remove use of minimumValueForLength in HTMLAreaElement::getRegion
While the 'coords' attribute on HTMLAreaElement is stored as a
Vector<Length>, the Lengths will all be of the type 'Fixed'. This means
that the only effect of minimumValueForLength() will be to round-trip
through LayoutUnit - resulting in a clamp to the allowed range of
LayoutUnit. Replace the uses of minimumValueForLength() with a new
function (clampCoordinate) that only does this clamping.

No functional changes.

BUG=578114

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

Cr-Commit-Position: refs/heads/master@{#371184}
rune
Add regression test for crbug.com/408957
Issue 408957 was fixed when fixing 557440. This CL is just adding a
test for it.

R=ericwilligers@chromium.org
BUG=408957

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

Cr-Commit-Position: refs/heads/master@{#371180}
sigbjornf
Insist on a Blink GC on RenderViewImpl unit test teardowns.
Without it, flaky LSan reports are a risk, depending on GC timing and
on tests allowing posted GC tasks to be processed before many of them
abruptly clear posted messages as part of their operation.

R=haraken
TBR=jochen
BUG=

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

Cr-Commit-Position: refs/heads/master@{#371169}
philipj
Fix typo in link to ccache for Mac
R=andybons@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#371150}
sigbjornf
Also transfer pending in-order scripts upon element moving to new document
Extend the ScriptLoader script runner reassociation that happens when a
script element moves to a new document to also include pending in-order
scripts.

Having this be restricted to async scripts unnecessarily confuses the
ScriptLoader when it notifies the ScriptRunner.

R=haraken
BUG=570012

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

Cr-Commit-Position: refs/heads/master@{#371145}
landell
Include stdlib.h for bsearch
BUG=

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

Cr-Commit-Position: refs/heads/master@{#371057}
rune
Removed selector matching check for invalid pseudo elements.
The check removed checked that only custom pseudo elements and
::selection allow other simple selectors to follow. This is now handled
entirely at parse time.

R=esprehn@chromium.org,timloh@chromium.org
BUG=489481

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

Cr-Commit-Position: refs/heads/master@{#371054}
fs
Extended error reporting for SVGNumber/Point/Rect and related types
Add extended error reporting for "number-based" types - SVGNumber,
SVGNumberList, SVGNumberOptionalNumber, SVGPoint, SVGPointList and
SVGRect.

Also clean up some of the parsing functions and eliminate some
unnecessary clear() calls in the list types.

BUG=231612

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

Cr-Commit-Position: refs/heads/master@{#371022}
sigbjornf
Keep PlatformSpeechSynthesisVoice off the Oilpan heap.
Keeping this object on the heap makes some sense in terms of regularity:
all the other Blink objects that refer to it are on the heap. However,
it is problematic to do so for this value object considering how
the embedder might use its WebSpeechSynthesisVoice wrapper object.

That is, creating or allocating a WebSpeechSynthesisVoice on the stack
by the embedder will bring about a heap allocation, which in turn can
trigger a GC when the embedder isn't prepared for that -- see
associated bug for stack trace and details.

This is normally a detail the embedder doesn't need to worry about,
but as TtsDispatcher keeps an (unsavory) weak reference to its speech
synthesizer client we're forced to consider GC safety and take
that into account.

Embedder code that keep these bare, but intended weak, references
to Oilpan heap objects should be reworked into something safer,
but to address this local problem, PlatformSpeechSynthesisVoice is
moved off the heap where it can reside just as well. By doing so,
WebSpeechSynthesisVoice allocations won't allocate on the Oilpan
heap, avoid said GC unsafety.

R=dmazzoni,jochen
BUG=539511

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

Cr-Commit-Position: refs/heads/master@{#370960}
sigbjornf
Fix spellchecker updating of marker ranges spanning multiple elements.
The optimization made in Blink r187820 (https://crrev.com/828293002)
completely failed to take into account the case where the start and
end position spanned multiple nodes.

With EphemeralRange since then introduced, fix by switching to it.
For the original test optimized for (blink_perf.dom:textarea-edit),
local testing with chrome-release shows no degradation in performance
either.

R=yosin
BUG=579151

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

Cr-Commit-Position: refs/heads/master@{#370929}
davve
Move specialized computePositionedLogicalWidth to LayoutReplaced.
Since the isAtomicInlineLevel() rename (it used to be called
isReplaced()) it looks extra strange to have a *Replaced method up in
LayoutBox. While LayoutReplaced does not contain everything about
replaced elements, it may contain this.

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

Cr-Commit-Position: refs/heads/master@{#370922}
mstensho
Pass values in the right flow thread's coordinate space.
We were talking to our enclosing flow thread, but using coordinates in our own
flow thread coordinate space. This caused both miserable rendering and
assertion failures, since we'd fail to realize that there'd be rows further
ahead with enough space for the content we were trying to fit.

BUG=552615
R=leviw@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#370891}
sigbjornf
Oilpan: LinkLoaderClient must be a GC mixin.
LinkLoader notifies its 'client' of load completion and other lifecycle
transitions. The assumption is that the client's lifetime is >= that
of the loader object, hence a bare pointer is all required.

This assumption doesn't hold when both LinkLoader and the client is on
the Oilpan heap, nor when LinkLoader is on the heap and the client is
stack allocated (cf. mock client object in LinkLoader unit tests).

Address the unsoundness by making LinkLoaderClient a GC mixin.

TBR=haraken@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#370654}
tommyt
Tidy up service discovery state for bluez on disconnect
This should fix cases where you connect, disconnect and then reconnect
to a BLE device. I've extended the ServicesDiscovered unit test to test
this.

BUG=577641

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

Cr-Commit-Position: refs/heads/master@{#370628}
philipj
Remove always-false null checks for getElementsByTagName(NS)
getElementsByTagNameNS is called from WebNode::getElementsByHTMLTagName,
which in turn is only called with the static kLabel ("label").
getElementsByTagName is also called internally in
getElementsByTagNameNS. Other than this, both are called from bindings.
In no case is it possible for localName to be a null AtomicString, so
these checks are not needed.

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

Cr-Commit-Position: refs/heads/master@{#370616}
fs
Extended error reporting for SVG attribute parsing
This CL extends the SVG attribute parsing error reporting functionality
to allow more precise (and hopefully helpful) reporting.
The main improvements consist of:

 1) More (precise) status codes
    Avoids generic error messages.

 2) Locus support
    Allows reducing the amount of context, which should make it easier
    to pinpoint the actual error. (Preferably the offending character
    should be highlighted somehow in the error message, but that is
    left as future work.)

To achieve this, the SVGParsingError enumeration is turned into a
thin wrapper class around a status code and a locus. The status codes
move to a new enumeration 'SVGStatus'.

Formatting of error messages are moved out of
SVGElement::reportAttributeParsingError and into SVGParsingError.cpp
(new file).

This CL start adding extended reporting to a few of the value classes:
SVGBoolean, SVGEnumeration and SVGPreserverAspectRatio; to illustrate
the mechanism. Further value classes will be annotated in later CLs.
For that reason the "generic" errors are kept in their current form - to
be removed as more value class parsers get converted.

BUG=231612

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

Cr-Commit-Position: refs/heads/master@{#370479}
davve
Remove stale FIXME comment about now fixed bug
NOTRY=true
BUG=364807

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

Cr-Commit-Position: refs/heads/master@{#370396}
davve
Simplify LayoutSVGRoot::computeReplacedLogical{Width,Height}
Remove redundant if statements and slightly confusing
comments. SVGImage unconditionally sets the container size in
SVGImage::drawForContainer() so when SVGImageForContainer is used, the
container size will be set.

BUG=468897

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

Cr-Commit-Position: refs/heads/master@{#370393}
sigbjornf
Add missing variable initialization in StyleCalcLength::toCSSValue().
TBR=oilpan-reviews
BUG=545318
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#370390}
davve
Set intrinsic size for inline SVG earlier
LayoutReplaced has a m_intrinsicSize that's updated when computing
logical widths and heights (and only if needed; specified style makes
it not being set at all).

But m_intrinsicSize can be used earlier that that, when computing
preferred widths for the container, see
LayoutReplaced::computeIntrinsicLogicalWidths called from
LayoutReplaced::computePreferredLogicalWidths().

This patch computes the intrinsic size in the constructor to avoid
returning the stale default size.

BUG=468897

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

Cr-Commit-Position: refs/heads/master@{#370388}
davve
Simplify SVGSVGElement::collectStyleForPresentationAttribute
There is no need to have the flags separated since they are always
used in conjunction.

BUG=468897

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

Cr-Commit-Position: refs/heads/master@{#370386}
rune
Pseudo element ids != NOPSEUDO only in rightmost compound.
After landing [1], selectors with pseudo elements will only be valid if
the pseudo element is in the rightmost compound. Invalid selectors will
be dropped at parse time. Hence, there's no need to check this
condition during matching. Also, pseudo element selectors for which
CSSSelector::pseudoId() returns NOPSEUDO, are handled in the switch
above the modified code.

[1] https://codereview.chromium.org/1600793002/

R=esprehn@chromium.org,timloh@chromium.org
TEST=CSSSelectorParserTest::InvalidPseudoElementInNonRightmostCompound
BUG=489481

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

Cr-Commit-Position: refs/heads/master@{#370356}
mstensho
Need to examine the *bottom* of fragmented content.
Content may cross fragmentainer boundaries, and when evaluating the need for
appending additional fragmentainer groups, we need to look at the bottom of the
content, not the top.

This CL is a prerequisite to fixing bug 552615, but note that it doesn't fix
anything there on its own.

BUG=552615
R=leviw@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#370323}
mstensho
Soften assertion slightly, to survive saturated arithmetic situations.
We do want to be at the exact top of a column here, but if the flow thread top
offset for the next column is larger than what a LayoutUnit can hold, we get a
bogus value passed here. Survive the assertion and carry on.

BUG=574309
R=leviw@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#370297}
mostynb
fix 'set but not used' GCC warning
Followup to https://codereview.chromium.org/1586353004 which introduced
a warning when building with GCC.

BUG=557130

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

Cr-Commit-Position: refs/heads/master@{#370203}
fs
Remove tracking of 'closed subpath' state from SVGPathBuilder
For any implicit moveto (like: "M0,0z L..." it would not do the right
thing (clear m_closed), which could result in unwanted calls to
Path::closeSubpath if a(n explicit) moveto followed. This in turn would
result in rendering errors (the "close" line being stroked that should
not.)
SkPath seems to do a much better job of this already - and Path is just
a thin wrapper around SkPath in these cases - so just drop the
SVGPathBuilder::m_closed flag and leave the work to SkPath.

BUG=578254

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

Cr-Commit-Position: refs/heads/master@{#370168}
rune
Remove checkForChildrenAdjacentRuleChanges.
All uses of SubtreeStyleChange now means strict subtree. All sibling
forest invalidations are done using invalidation sets except on node
insertions and removals.

checkForSiblingStyleChanges now has to invalidate siblings itself on
insertion/removal. Before this change we did a SubtreeStyleChange on a
single element and let checkForChildrenAdjacentRuleChanges mark the
sibling forest for recalc. The reason why we cannot use invalidation sets
when adding/removing nodes, is that we don't change the relevant features
(classes, ids, etc) when we need to figure out. For instance:

<style>
:not(.a) + div { color green }
</style>
<div class="a"></div>
<div>Should be green after insertion</div>

If you insert an element between the two divs, the latter will start
matching the style rule, but we cannot do that with invalidation sets.

Adjustments have been done to the style invalidator to allow scheduling
sibling invalidation sets on SubtreeStyleChange elements, since siblings
will have style recalcs triggered through the invalidation machinery, not
checkForChildrenAdjacentRuleChanges.

BUG=557440

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

Cr-Commit-Position: refs/heads/master@{#370097}
rune
Pseudo elements may only appear in rightmost compound.
Pseudo elements are appended to an originating element as defined in
Selectors Level 4 and may only be followed by user action pseudo
classes. That means it also must appear in the rightmost compound. We
drop selectors as invalid when trying to add a compound when we have
already seen a pseudo element in a previous compound.

There are expections to this for Blink, where we implement ::content
and ::shadow to pierce through insertion points and shadow boundaries
as pseudo elements. Another exception is for custom pseudo elements in
UA stylesheets, as we rely on exposing inner shadow structure to style
media controls and VTT track regions (crbug.com/578131).

R=timloh@chromium.org
BUG=489481

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

Cr-Commit-Position: refs/heads/master@{#370088}
sigbjornf
Migrate Handle.h WTF decls closer to their corresponding definitions.
Move some declarations in the WTF namespace out of the larger Handle.h,
and near/next to where the corresponding types are declared.

No change in functionality.

R=haraken
BUG=

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

Cr-Commit-Position: refs/heads/master@{#369986}
sigbjornf
Revert of Use registerWeakMembers to clean up IntersectionObserver. (patchset #1 id:1 of https://codereview.chromium.org/1591763003/ )
Reason for revert:
Broke on some tests w/ Oilpan enabled,

 https://build.chromium.org/p/chromium.webkit/builders/WebKit%20Linux%20Oilpan%20Leak/builds/16410

backing it out.

(see also https://codereview.chromium.org/1596333002/ )

Original issue's description:
> Use registerWeakMembers to clean up IntersectionObserver.
>
> Pre-oilpan, when the root disappears, it observers are cleaned up
> in NodeIntersectionObserverData::dispose().
>
> Post-oilpan, the cleanup will be done with registerWeakMembers.
>
> BUG=540528
> R=haraken@chromium.org,dcheng@chromium.org
>
> Committed: https://crrev.com/546573354e47ddd01f491c382701fa51500f85eb
> Cr-Commit-Position: refs/heads/master@{#369948}

TBR=dcheng@chromium.org,haraken@chromium.org,szager@chromium.org
BUG=540528
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#369970}
sigbjornf
Revert of Oilpan: Fix weak processing for IntersectionObserver::m_root (patchset #3 id:40001 of https://codereview.chromium.org/1594813002/ )
Reason for revert:
This and the parent change introduced some failures,

 https://build.chromium.org/p/chromium.webkit/builders/WebKit%20Linux%20Oilpan%20Leak/builds/16410

backing out for now.

Original issue's description:
> Oilpan: Fix weak processing for IntersectionObserver::m_root
>
> This is a follow-up fix for https://codereview.chromium.org/1591763003/.
> IntersectionObserver::m_root must be cleared in the weak callback when the m_root is dead.
>
> BUG=
>
> Committed: https://crrev.com/2760f06a3c43c8919f4ecae43f460ada20d0990b
> Cr-Commit-Position: refs/heads/master@{#369956}

TBR=szager@chromium.org,haraken@chromium.org
BUG=
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#369969}
sigbjornf
libxml2: linearly optimize XPath expressions.
Some XPath expression nodes keep a back pointer to the last/previous
expression node for optimization purposes. Such pointers will result
in repeated work when walking over the expression
tree/graph, peephole optimizing it. Unacceptable amounts of repeated
work as the expression tree becomes deeper.

Avoid by marking the expression nodes during the optimization pass.

R=scottmg
BUG=573768

Committed: https://crrev.com/0b208a502be9d60929be48056dd4213efd998076
Cr-Commit-Position: refs/heads/master@{#369733}

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

Cr-Commit-Position: refs/heads/master@{#369966}
tommyt
Clear the BLE services list on disconnect.
This lets us recreate the services list correctly upon the next
reconnect, which fixes some problems with a device we have, which
disconnects automatically after 30 seconds.

Also reset the services_discovered flag for this device on disconnect.
In order to accomplish this, I had to move this flag from the dispatcher
host, to the bluetooth device instance.

BUG=570804

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

Cr-Commit-Position: refs/heads/master@{#369826}
rune
removeBetween() -> detach() performance fix.
In [1] we started to persist invalidation sets on elements getting
reattach style change because sibling invalidation sets scheduled on
detached elements still need to be processed for attached siblings.

However, the invalidation sets need to be cleared when such elements
are removed from the document tree. Clearing that invalidation set were
done with a detach() which also would go through detach() on an
already detached subtree. That caused a performance regression in the
the blink_perf.dom:select-single-add micro benchmark.

Instead of brute forcing with detach(), we clear the invalidation sets
for the elements of the disconnected subtree in Element::removedFrom().

[1] https://codereview.chromium.org/1533683002

R=esprehn@chromium.org
BUG=577439
TEST=PerformanceTests/DOM/select-single-add.html

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

Cr-Commit-Position: refs/heads/master@{#369798}
rune
Restrict use of pseudo elements within compound.
Start dropping selectors whose compound have pseudo elements followed
by other simple selectors with the exception of simple selectors which
are actually allowed to follow certain pseudo elements.

The exceptions are:

- User action pseudo classes and their negations for custom pseudo
  elements.

  Matching other simple selectors on custom elements worked before, but
  that revealed the inner structure of the UA shadow DOM for form
  elements, which I believe was not intentional.

  According to the latest ED of Selectors Level 4, user action pseudo
  classes are allowed after pseudo elements in general, but we don't
  support that, so the selector should be dropped. Gecko also drops
  those selectors.

- A restricted set of pseudo classes, in addition to the user action
  pseudo classes, which apply to custom scrollbar pseudo elements.

The new restrictions do not yet apply to UA stylesheets as we rely on
invalid selectors in the UA stylesheet for media controls.

Fixed a couple of range-based iterations in the unit test.

This CL does not address the fact that pseudo elements, in most cases,
only may be present in rightmost compound selectors. That will be fixed
in another CL.

R=timloh@chromium.org
BUG=489481,577404

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

Cr-Commit-Position: refs/heads/master@{#369760}
sigbjornf
libxml2: linearly optimize XPath expressions.
Some XPath expression nodes keep a back pointer to the last/previous
expression node for optimization purposes. Such pointers will result
in repeated work when walking over the expression
tree/graph, peephole optimizing it. Unacceptable amounts of repeated
work as the expression tree becomes deeper.

Avoid by marking the expression nodes during the optimization pass.

R=scottmg
BUG=573768

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

Cr-Commit-Position: refs/heads/master@{#369733}
rune
Use ::cue for VTT UA styles.
Instead of using a custom pseudo element for the track container to
apply UA styling to b, i, and u elements, use ::cue selectors.

R=fs@opera.com
TEST=media/track/track-css-matching-default.html
NO_DEPENDENCY_CHECKS=true

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

Cr-Commit-Position: refs/heads/master@{#369732}
rune
Split compound selector after consume finished.
CSSSelectorParser::consumeCompoundSelector() will split a compound into
two compounds when it contains a simple selector which needs a synthetic
ShadowPseudo combinator. This split was done as simple selectors were
added. That code was complicated and and yielded some strange
serializations like what was reported in https://crbug.com/478563.

This CL adds simple selectors to the compound in the selector text
order, and splits the compound into two compounds and re-order them
after the whole compound has been consumed. This makes the code simpler
and makes it simpler to check selector validity (before the split).

This fixes issue 478563 and prepares for validity checking. A side
effect is that unnecessary universal selectors are left out of the
serialization (issue 478969).

::content is no longer kept leftmost in the compound, which is the
reason why contentPseudoCrossing is set when the combinators which are
affectedByPseudoContent instead of when the actual ::content selector
is seen.

R=timloh@chromium.org
BUG=478563,489481,478969

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

Cr-Commit-Position: refs/heads/master@{#369723}
tommyt
Clear the BLE services list on disconnect.
This lets us recreate the services list correctly upon the next
reconnect, which fixes some problems with a device we have, which
disconnects automatically after 30 seconds.

Also reset the services_discovered flag for this device on disconnect.
In order to accomplish this, I had to move this flag from the dispatcher
host to the bluetooth device instance.

BUG=570804

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

Cr-Commit-Position: refs/heads/master@{#369593}
fs
Re-instate geometry sharing optimization for 'd' on <use>'d <path>s
This adds back the geometry sharing optimization initially added in
https://codereview.chromium.org/1425913004 and removed by
https://codereview.chromium.org/1439793003.
This CL moves the optimization from asPath() to
collectStyleForPresentationAttribute(), meaning the optimization only
applies to the presentation attribute style (which is equivalent to
the old version.)

BUG=535429

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

Cr-Commit-Position: refs/heads/master@{#369473}
davve
Polish icecc instructions
Be more specific about when you have to use system linker with
icecc. It seems to have broke with a glibc 2.21 upgrade.

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

Cr-Commit-Position: refs/heads/master@{#369432}
fs
Use a local variable as a character cursor in genericParseNumber
Don't move the 'out' variable |cursor| until a valid number has been
parsed (disregarding the leading whitespace).
This will allow generating better error messages in some cases (the cursor
will not "stop" randomly within the number upon encountering overflows
etc.). It also enables "re-parsing" although currently no call-sites
require that. Code size virtually unaffected (-7 for LChar, +2 for UChar.)

BUG=231612

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

Cr-Commit-Position: refs/heads/master@{#369391}
davve
Eliminate use of SVG1DOM counter by final split
BUG=415074

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

Cr-Commit-Position: refs/heads/master@{#369380}
mstensho
Recalculate column heights as part of column set layout.
This is a tad earlier than what we used to do; we used to do it for all sets in
one go at the end of layout of the multicol container. We now do it
individually for each column set (children of the multicol container) as we lay
them out.

This way we have an up-to-date column height when positioning column sets
during multicol container child layout (children being either spanner
placeholders or column sets).

For the bug in question, this is particularly important in the first layout
pass, where column heights are completely bogus. When we're in a nested
fragmentation context, inner column heights are typically set to the remaining
height of an outer column, which may be more space than the contents actually
need. This could in turn trick the machinery into believing that we need to
insert another fragmentainer group for a spanner following a column set, even
if column heights were completely unconstrained.

BUG=552615
R=leviw@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#369366}
fs
Remove redundant emptiness check from genericParseNumber
When the 'start == ptr' condition was reached we could be sure that we
had already consumed at least one character - one of '.' or '0'-'9' or
whitespace (potentially also '+'/'-' as a prefix) - and that even holds
true moving the definition of |start| after consuming any leading
whitespace. The reason for this is the up-front check for any character
in the set '0'-'9' or '.'.
Remove the redundant checks - replacing them with an assert - while
moving the definition of |start| so that it doesn't point before any
leading whitespace.

BUG=231612

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

Cr-Commit-Position: refs/heads/master@{#369292}
davve
Add note about using the system linker with icecc
Review URL: https://codereview.chromium.org/1575843002

Cr-Commit-Position: refs/heads/master@{#369177}
davve
Support SVG fragment URLs in cross faded images
Extract url from CSSImageValue and pass it along to the SVGImage
wrapper. Constify CSSImageValue::url() in the process.

Also, fix typo and indentation in related test.

BUG=574172

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

Cr-Commit-Position: refs/heads/master@{#369156}
sigbjornf
Oilpan: move AsyncMethodRunner to the heap.
Simplify and keep AsyncMethodRunner<T> on the heap always.

R=haraken
BUG=363031

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

Cr-Commit-Position: refs/heads/master@{#369141}
davve
Split SVG1DOM counter further
Split all counters relating to basic data types into smaller
parts. Use MeasureAs when these interfaces are implemented by multiple
other interfaces. Using Measure for them would give a lot of
unnecessary UseCounters. It seems more likely that we try to remove
interface methods in its entirety than splitting the interface, moving
some and removing some.

Also remove the counter from constants in affected interfaces. If we
get to remove the interfaces where the constants are used, they can go
too. Otherwise they likely have to stay.

BUG=415074

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

Cr-Commit-Position: refs/heads/master@{#369139}
rune
Cousins may not share style when ascendant affected bits set.
childrenOrSiblingsAffectedBy* are set during style matching. Cousins may
not share style in such cases since those affected bits may be set on
uncommon ancestors. Calling setUnique on ComputedStyle in such cases to
avoid style sharing.

This is also true for siblings in which case preceding siblings need to
get the affected bits set when we have adjacent selectors.

BUG=424104

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

Cr-Commit-Position: refs/heads/master@{#369029}
rune
Persist invalidation sets on detach root
This is a second attempt at not clearing sibling invalidation sets on
detached and SubtreeStyleChange nodes. The first[1] failed because
childNeedsStyleInvalidation() was still cleared on detach().

This approach keeps invalidation sets on the detach root, but clears
invalidation sets on descendants. However, when we detach a node to be
removed, we also clear the detach root as that will not have a chance of
being used on the next invalidation. Also, there are asserts checking
that we don't re-insert nodes into the tree with needsStyleInvalidation().

Removed scheduled sibling invalidation sets from nodes being removed from
the tree is not a problem as the checkForSiblingStyleChanges() method
will make sure sibling trees are invalidated.

The early return in StyleInvalidator::scheduleInvalidationSetsForElement
is removed to be able to schedule sibling invalidation sets although we
have a SubtreeStyleChange or ReattachStyleChange on the element itself.

The added test checks that the invalidation works properly, also after
the checkForChildrenAdjacentRuleChanges() removal.

[1] https://codereview.chromium.org/1507653002

R=esprehn@chromium.org,ericwilligers@chromium.org
BUG=557440

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

Cr-Commit-Position: refs/heads/master@{#369021}
rune
Avoid crash when updating stylesheets during a remove operation.
When we are in the middle of removing a subtree of a shadow tree
containing a style element, and one of the other elements schedules
style invalidation, we are synchronously trying to update rule features
when the style node is still inDocument() and isInShadowTree() while the
treeScope() has been reset to the document scope in preparation for
removing it from the tree. That caused us to add the sheet for the style
element being removed to our style data/rule features.

We should make updateActiveStyleSheets asynchronous (crbug.com/567021)
and schedule invalidations with the current rule features instead of
forcing an update of rule features through appendPendingAuthorStyleSheets.

Since updateActiveStyleSheets is currently synchronous and
appendPendingAuthorStyleSheets happens lazily, we are in an inconsistent
state which means we need to execute the latter in order to avoid
glitches in style invalidation because we are marking for
invalidation/recalc in the former step.

This crasher surfaced when we started looking up the treeScope() directly
in https://codereview.chromium.org/1285293003

R=esprehn@chromium.org
BUG=559292

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

Cr-Commit-Position: refs/heads/master@{#369004}
sigbjornf
Oilpan: fix build after r368875.
TBR=oilpan-reviews
BUG=550994
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#368938}
sigbjornf
Oilpan: provide a weak 'this' pointer abstraction for cancellable closures.
For CancellableTaskFactory objects owned by an Oilpan heap object, the
factory's closure maintain a weak reference back to its heap
object owner -- the closure must not invoke a method on that heap object
once the weak reference is cleared.

That latter check for a cleared weak reference wasn't in place; provide
it here. Due to wtf/ and platform/heap/ dependency constraints, we're
forced to do that indirectly by way of using a WeakPtr<>.

R=haraken
BUG=575272

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

Cr-Commit-Position: refs/heads/master@{#368851}
sigbjornf
Oilpan: fix uninitialized pointers following r368596, part 2.
TBR=oilpan-reviews
BUG=499780
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#368836}
philipj
Update Selection IDL TODOs to match nullability change in spec
The node arguments of collapse and setPosition were made nullable:
https://github.com/w3c/selection-api/issues/64

Also move out the optional arguments issues into a single comment:
https://github.com/w3c/selection-api/issues/30

BUG=391673
R=yoichio@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#368825}
sigbjornf
Oilpan: fix uninitialized pointers following r368596.
R=haraken,timloh
BUG=499780
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#368824}
rune
Pseudo element selectors in compound selector lists are invalid.
These selectors were never matching, but they are invalid and rules with
invalid selectors should not show up in the CSSOM.

This is just partly fixing detection of invalid use of pseudo elements.
We also incorrectly accept simple selectors following pseudo elements.
In most cases those are invalid selectors.

The modified existing cases contained invalid selectors and they were
modified to make them valid for serialization testing purposes.

R=timloh@chromium.org
BUG=489481,393490

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

Cr-Commit-Position: refs/heads/master@{#368823}
sigbjornf
Oilpan: fix build after r368814.
TBR=oilpan-reviews
BUG=540528
NOTRY=true
NOTREECHECKS=true
NOPRESUBMIT=true

Committed: https://crrev.com/2cf2fab949e741b56be51d1197b064083ec45441
Cr-Commit-Position: refs/heads/master@{#368817}

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

Cr-Commit-Position: refs/heads/master@{#368820}
sigbjornf
Revert of Oilpan: fix build after r368814. (patchset #1 id:1 of https://codereview.chromium.org/1575323002/ )
Reason for revert:
Breaks non-Oilpan compilation.

Original issue's description:
> Oilpan: fix build after r368814.
>
> TBR=oilpan-reviews
> BUG=540528
> NOTRY=true
> NOTREECHECKS=true
> NOPRESUBMIT=true
>
> Committed: https://crrev.com/2cf2fab949e741b56be51d1197b064083ec45441
> Cr-Commit-Position: refs/heads/master@{#368817}

TBR=oilpan-reviews@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=540528

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

Cr-Commit-Position: refs/heads/master@{#368819}
sigbjornf
Oilpan: fix build after r368814.
TBR=oilpan-reviews
BUG=540528
NOTRY=true
NOTREECHECKS=true
NOPRESUBMIT=true

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

Cr-Commit-Position: refs/heads/master@{#368817}
davve
Fix SVG sizing in crossfaded images
Wrap SVGImages inside SVGImageForContainer to maintain the correct
size. SVGImages are shared between all places the same resource is
used and the wrapper is necessary to get the proper size for a
particular instantiation.

BUG=574172

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

Cr-Commit-Position: refs/heads/master@{#368816}
sigbjornf
Oilpan: mark two fast/text tests as failing on Windows.
TBR=oilpan-reviews
BUG=553613
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#368593}
sigbjornf
Oilpan: retire dated DataRef<> GC_PLUGIN_IGNORE().
R=haraken
BUG=553613

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

Cr-Commit-Position: refs/heads/master@{#368560}
sigbjornf
Restrict the scope of PointerFieldStorageTrait<>.
Float it into ScopedDisposal<> as it isn't used anywhere
else.

R=haraken
BUG=

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

Cr-Commit-Position: refs/heads/master@{#368552}
sigbjornf
Ensure Oilpan garbage is collected on JavaBridgeChildFrameTest test.
In order for testHolderFrame's testing of the liveness of its weak
reference to be accurate with Oilpan is enabled, another GC round
is required to have both v8 and Oilpan GCs get to sweep out all
their dead objects before checking the weak reference.

R=haraken,jochen
BUG=575696

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

Cr-Commit-Position: refs/heads/master@{#368550}
rune
Renamed check for requiring ShadowPseudo combinator.
Some selectors have an implicit boundary crossing combinator inside what
is a compound selector in the selector text. This is an implementation
detail, but we insert such combinators for our SelectorChecker to switch
scopes during matching. Example:

input::-webkit-clear-button

This is a compund selector matching a pseudo element inside the input's
shadow tree. In the implementation, we store that as:

input /implicit-shadow-crossing-combinator/ ::-webkit-clear-button

Where the pseudo element simple selector will match the element inside
the shadow tree, and the implicit combinator will act as a descendant
combinator that can reach into the shadow so that we make the way up to
matching the input type selector on the host element.

Here, we rename methods in the selector parser to reflect that and make
the code easier to understand.

There should be no behavioral changes.

R=timloh@chromium.org,esprehn@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#368548}
sigbjornf
Avoid LSan false positives from CSSPathValue::emptyValue().
LSan reports a leak on SVGComputedStyleTest.MiscStyleShouldCompareValue
(with Oilpan), stemming from emptyValue()'s allocation of an
SVGPathByteStream object. Introduce a local constructor function that
explicitly keeps this sub-object from LSan's view -- it is owned by
the emptyValue singleton and shouldn't be considered a leak.

R=haraken
BUG=

Committed: https://crrev.com/08494b981bbe6e9925ffd6663e65b6151bdd9425
Cr-Commit-Position: refs/heads/master@{#368329}

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

Cr-Commit-Position: refs/heads/master@{#368346}
sigbjornf
Avoid LSan false positives from CSSPathValue::emptyValue().
LSan reports a leak on SVGComputedStyleTest.MiscStyleShouldCompareValue
(with Oilpan), stemming from emptyValue()'s allocation of an
SVGPathByteStream object. Introduce a local constructor function that
explicitly keeps this sub-object from LSan's view -- it is owned by
the emptyValue singleton and shouldn't be considered a leak.

R=haraken
BUG=

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

Cr-Commit-Position: refs/heads/master@{#368329}
mostynb
call static SequencedWorkerPool::GetSequenceToken() method directly
Followup to https://codereview.chromium.org/1414793009/ in order
to avoid a GCC unused result warning.

SequencedWorkerPool::GetSequenceToken() is now a static method, GCC
emits a warning for BrowserThread::GetBlockingPool()->GetSequenceToken()
since the return value of BrowserThread::GetBlockingPool() is not
used.  We should just all the static method directly.

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

Cr-Commit-Position: refs/heads/master@{#368326}
sigbjornf
Handle some failing DocumentOrderedMap ID lookups across tree removals.
r366066's attempt to better handle failing DocumentOrderedMap lookups
while an element is being removed from a tree with duplicate IDs, didn't
accommodate all cases where the document map might end up being consulted.

Widen the assert and have it scope over node removals; should the unlikely
case happen, recognize that the tree is in a transitory state and allow
the lookup to quietly fail.

TBR=esprehn
BUG=571351

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

Cr-Commit-Position: refs/heads/master@{#368321}
fs
Add StylePath and use it to store 'd' in ComputedStyle
This adds a new class StylePath, that wraps a SVGPathByteStream and a
Path to be used when painting et.c. Create a StylePath on-demand from
CSSPathValue, and then cache the resulting value.
This allows sharing the various levels of path-data between different
instances/elements. It also avoids eagerly constructing the Path object
at setAttribute-time.
To be able to achieve this, SVGPathByteStream is made to be reference-
counted.

BUG=535429

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

Cr-Commit-Position: refs/heads/master@{#368320}
sigbjornf
Fix std::enable_if<> conversion bug.
after r367242 - "::type" not "::Type".

R=haraken
BUG=554293

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

Cr-Commit-Position: refs/heads/master@{#368319}
sigbjornf
DEFINE_STATIC_LOCAL(): assert against illegal use of GCed types.
A singleton static local cannot refer to a Blink garbage collected
object directly, as that fails to keep the singleton alive. A
strong off-heap persistent reference, a Persistent<> variant
or a persistent collection type, is required.

Add a static assert which catches out such incorrect uses of
GCed types.

R=haraken
BUG=

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

Cr-Commit-Position: refs/heads/master@{#368313}
sigbjornf
Oilpan: hold onto MediaQueryEvaluator singletons with Persistents.
Add missing Persistent<> wrappers around MediaQueryEvaluator singletons;
a regression introduced by r367489.

R=haraken
BUG=

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

Cr-Commit-Position: refs/heads/master@{#368310}
landell
Don't use pulse/alsa in embedded config
The embedded check was removed in CL
https://codereview.chromium.org/1528533002 which broke our builds.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#368304}
sigbjornf
Oilpan: fix build after r368275.
R=haraken
BUG=266276
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#368299}
tmoniuszko
Allow enable_topchrome_md to be overridden in gn build
BUG=

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

Cr-Commit-Position: refs/heads/master@{#368298}
davve
Remove FrameView::m_inPerformLayout
Use the document lifecycle instead of a flag in FrameView to find out
if we're inside performLayout().

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

Cr-Commit-Position: refs/heads/master@{#368289}
fs
Don't give 'pathLength' semantic errors special treatment
Just set the parse status to the error code for "negative forbidden"
and let it propagate. the fidelity of the message is roughly the same.

BUG=231612

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

Cr-Commit-Position: refs/heads/master@{#368160}
sigbjornf
Remove LocalDOMWindow unuseds.
R=
BUG=

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

Cr-Commit-Position: refs/heads/master@{#368090}
bratell
[gn] Detect location of Visual Studio in the registry.
Look in the registry to figure out where Visual Studio is located
on the disk.

BUG=460462

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

Cr-Commit-Position: refs/heads/master@{#368089}
rune
Don't add rule features across ::content.
When we see a ::content selector, we mark the invalidation sets for the
selectors left of ::content as insertion-point-crossing. For such
invalidation sets, we mark insertion points for subtree style recalc,
which means that we don't need to look at the selector features right of
::content selectors for invalidations.

For instance for:

.a ::content .b .c

The invalidation set for '.b' contains '.c', and the invalidation set for
'.a' contains '.c' and has the insertion-point-crossing flag set. Adding
'c' is however unnecessary since ::content already causes a subtree style
recalc. Also, this may cause unnecessary invalidations in '.a's scope if
there are in-scope '.c' descendants of '.a'.

This CL avoids adding invalidation set features like '.c' to the
invalidation set for '.a' as illustrated above. Now invalidation sets
may have the insertion-point-crossing flag set while otherwise being
empty, and they should not be considered empty as we need to traverse
and mark all insertion points for such sets.

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

Cr-Commit-Position: refs/heads/master@{#368064}
fs
Store a <scale, bias> tuple for textLength scale adjustment
SVGTextFragment::lengthAdjustTransform only ever has two values that
could make it differ from the identity transform.
By storing only these two values - and as floats rather than doubles -
instead of the full AffineTransform, the size of SVGTextFragment is
reduced by 40 bytes.
To enable this we however need to store whether the writing-mode is
vertical or horizontal, so steal one bit from the length field for
that.

BUG=571415

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

Cr-Commit-Position: refs/heads/master@{#368051}
mostynb
gn: leave PKG_CONFIG_PATH untouched when not using a sysroot
This makes cross-compilation possible when not using a sysroot.

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

Cr-Commit-Position: refs/heads/master@{#367906}
rune
[Printing] Remove unnecessary styleResolverChanged().
styleResolverChanged is already called for media query changes in the
following call chain:

FrameView::adjustMediaTypeForPrinting() ->
FrameView::setMediaType() ->
Document::mediaQueryAffectingValueChanged() ->
Document::styleResolverChanged()

Calling it afterwards should not be necessary.

R=mstensho@opera.com
TEST=printing/print-media-recalc.html

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

Cr-Commit-Position: refs/heads/master@{#367895}
davve
Simplify arguments to logical[Left,Right]OffsetForPositioningFloat
|applyTextIndent=false| is always passed to
logical[Left,Right]OffsetForPositioningFloat(). Might as well remove
the parameter and pass |false| where it's needed. No functional change
expected.

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

Cr-Commit-Position: refs/heads/master@{#367792}
sigbjornf
Oilpan: fix build after r367779.
TBR=oilpan-reviews
BUG=488373
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#367787}
davve
Simplify paintFillLayer
paintFillLayer() was only used in one place. Expand the two default
arguments and rename paintFillLayerExtended to paintFillLayer.

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

Cr-Commit-Position: refs/heads/master@{#367659}
rune
Avoid unnecessary invalidation scheduling.
This is a reland of https://codereview.chromium.org/1514733002 without
the removal of an assumed-to-be SubtreeStyleChange for attribute changes
when you have a null style resolver, which turned out to cause asserts.

We skip scheduling invalidation sets for an element when:

* StyleResolver is null
* Element is not inActiveDocument()
* Element does not have a parent
* Element parent has SubtreeStyleChange or ReattachStyleChange

Additionally we skip descendant invalidations when:

* Element has SubtreeStyleChange or ReattachStyleChange

and sibling invalidations when:

* Element.nextSibling is null

R=ruuda@google.com
BUG=557440

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

Cr-Commit-Position: refs/heads/master@{#367617}
robertn
Use the correct variable in the DCHECK
A patch changed how a value was retrieved to use a different variable,
but the DCHECK was not updated to do the same. The change was
introduced in the following CL:

https://codereview.chromium.org/1479883002

TEST=Load youtube.com/tv, start a video and switch to a suggested video.
     The above steps will trigger the dcheck in content_shell.
R=ajuma@chromium.org
BUG=560275
CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel

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

Cr-Commit-Position: refs/heads/master@{#367527}
arjanl
Don't unnecessarily copy strings
Add a function base::SplitStringPieceUsingSubstr that splits a string
using a substring delimiter without copying the string parts. Use it in
HttpRequestHeaders::AddHeadersFromString.

BUG=572076

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

Cr-Commit-Position: refs/heads/master@{#367504}
tmoniuszko
Fix possible loss of data warnings in media_unittests
Fix compiler warning about size_t to uint8_t conversion.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#367491}
sigbjornf
Reduce risk of MediaQueryEvaluator-induced leaks.
With Oilpan, having MediaQueryEvaluator keep a Persistent<> reference
to MediaValues isn't necessary and by doing so, increases the risk
of creating inadvertent leaks. Move MediaQueryEvaluator to the heap
instead.

R=haraken
BUG=509911

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

Cr-Commit-Position: refs/heads/master@{#367489}
rune
Layout test for 571040.
The fix for issue 571040 did not add a test. Here is one.
Node::virtualEnsureComputedStyle returns nullptr when there is no parent
node (which is strange since the method is called *Ensure*). However,
that's what caused the crash. Confirmed that the added test crashes in a
pre-christmas checkout.

R=shans@chromium.org,dstockwell@chromium.org
BUG=571040

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

Cr-Commit-Position: refs/heads/master@{#367393}
mstensho
Internals: throw an exception when page height or width is 0.
The two methods pageNumber() and numberOfPages() on the window.internals object
allowed 0 as page height, which results in a division by zero in multicol (and
general failure to paginate in other parts of the code). Have the methods raise
an exception when such values are provided. Also specify the default width and
height values in Internals.idl rather than in Internals.h, so that they
actually do something. Our default page width and height were effectively 0 for
these methods.

Assert that width and height have valid values (i.e. greater than 0) in
PrintContext::begin().

BUG=571348
R=rune@opera.com

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

Cr-Commit-Position: refs/heads/master@{#367304}
sigbjornf
Clarify ordinary page handling.
Clarify that it is precise to use ordinaryPages() to locate storage
event targets (by StorageArea), along with generally tidying up Page
creation - "ordinary" ones as well as ones needed for internal purposes.

R=haraken
BUG=

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

Cr-Commit-Position: refs/heads/master@{#367296}
davve
Remove unused constant kInvalidFrameRoutingID
All use of kInvalidFrameRoutingID was removed in
https://codereview.chromium.org/1138543002 but for the constant.

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

Cr-Commit-Position: refs/heads/master@{#367287}
sigbjornf
EventSender<T> singletons are better off on the Oilpan heap.
Rather than keeping two off-heap persistent collections per EventSender
singleton, have the singletons reside on the Oilpan heap instead.

This also removes no-op cancelEvent()s from various destructors.

R=haraken
BUG=420515

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

Cr-Commit-Position: refs/heads/master@{#367282}
sigbjornf
Revert of mac and ios: Build third-party code with -Wall. (patchset #1 id:1 of https://codereview.chromium.org/1555843002/ )
Reason for revert:
ios_Device builder isn't quite ready for -Wall,

 http://build.chromium.org/p/chromium.mac/builders/iOS_Device/builds/33368

breaking compilation.

Original issue's description:
> mac and ios: Build third-party code with -Wall.
>
> This lands the mac and ios build/common.gypi bits of
> https://codereview.chromium.org/1551753002/ (reviewed there)
>
> BUG=573250
> R=thestig@chromium.org
> TBR=thestig@chromium.org
>
> Committed: https://crrev.com/9830789346abd3d8211deff1ebe7a7f5753ba3fc
> Cr-Commit-Position: refs/heads/master@{#367255}

TBR=thestig@chromium.org,thakis@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=573250

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

Cr-Commit-Position: refs/heads/master@{#367258}
sigbjornf
Oilpan: avoid heap allocation in MajorGCWrapperVisitor
The collection of retained object roots is preferably not allocated on
the Oilpan heap as that risks triggering an unnecessary GC.

R=haraken
BUG=

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

Cr-Commit-Position: refs/heads/master@{#367161}
mstensho
Update bug number for block-layout-inline-children-replaced.html in TestExpectations.
This test has been flaky (and marked as such) for a long time, and it wasn't
introduced by the fix for bug 537638. It just got accidentally auto-rebaselined
as part of that fix. Revert the bug number in TestExpectations back to what it
used to be.

R=noel@chromium.org
BUG=571590

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

Cr-Commit-Position: refs/heads/master@{#367152}
sigbjornf
Diagnose failing GC transition on forced Oilpan GC.
Temporary release asserts to help diagnose an unexpected&unsupported
Blink GC transition.

R=haraken
BUG=571207

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

Cr-Commit-Position: refs/heads/master@{#367150}
sigbjornf
Oilpan: prefinalize CSSCrossfadeValue.
Consistently use prefinalizers for ImageResourceClients, following on
from r366092.

R=haraken
BUG=

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

Cr-Commit-Position: refs/heads/master@{#367146}
mostynb
fix some obsolete code.google.com sandbox links
TBR=thakis@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#366972}
fs
Refactor propagation of parsing errors for SVG attributes
Use the return value of SVG{...}::setValueAsString to signal errors
rather than an out parameter and the (mostly faux) ExceptionState
object (for setBaseValueAsString). In the few cases where the latter
is not using an TrackExceptionState - in tear-offs for SVGAngle and
SVGLength - it's easy enough to handle the exception-throwing there
and then.
This makes SVG{...} objects mostly independent of ExceptionState,
saving on footprint from string-construction and argument passing as
a side-effect.
Also remove some unnecessary virtuals on SVGInteger and
SVGPreserveAspectRatio.

BUG=231612

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

Cr-Commit-Position: refs/heads/master@{#366715}
fs
Return AffineTransform from SVGTextFragment::buildFragmentTransform
Instead of passing an AffineTransform as an out-parameter, just return
it instead. Since we always copy the resulting transform into the
out-parameter anyway, there should be no loss of efficiency.
This also enables some of the users to be written in a more compact
way.

Also add boundingBox(), boundingQuad() and overflowBoundingBox()
helpers to SVGTextFragment and use where possible.

BUG=571415

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

Cr-Commit-Position: refs/heads/master@{#366713}
bratell
Teach Chromium on Windows where to find Ogham glyphs
Ogham glyphs are found in Segoe UI Symbol.

BUG=569938
R=drott@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#366616}
bratell
Use clampTo instead of chaining std::max(std::min(...))
It's common to make a value end up between two other values by using
std::min and std::max but we have a clampTo function that will
make the code much easier to read so we should use it.

The performance is the same (both end up doing inline comparisons and
value selection) but not having to include <algorithm> can bring a
very slight compilation speed boost.

BUG=563433

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

Cr-Commit-Position: refs/heads/master@{#366585}
davve
Polish recently added documentation for PaintLayerFilterInfo
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#366571}
fs
Helper for checking if an SVGTextFragment is transformed
Add a isTransformed() helper to SVGTextFragment. Since it's a commonly
recurring pattern to compute the fragment transform and then check if
it is the identity transform - and doing the check before actually
computing the transform is only marginally more expensive (since we
know the structure of SVGTextFragment::lengthAdjustTransform) we can
use this helper and switch order of computation and check. The only
potential downside would be if the resulting transform ends up being
the identity transform - which seems like an edge-case.

With this in place, we can do additional improvements around the
handling of fragment bounding boxes et.c. and change how the fragment
is "parametrized".

BUG=571415

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

Cr-Commit-Position: refs/heads/master@{#366567}
fs
Make SVGElement::propertyFromAttribute return raw pointer
Ownership does not transfer from the element, so we can make the return
value a raw pointer, and hence avoid ref-churn, save some footprint and
allow tail-calls in collectStyleForPresentationAttribute.

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

Cr-Commit-Position: refs/heads/master@{#366536}
mstensho
Partially manual rebaseline for r366396 https://codereview.chromium.org/1536663004
Re-mark the two tests as failing again for Mac. They were temporarily commented
out in order to get the rebaselining working.

BUG=537638
TBR=wangxianzhu@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#366451}
mstensho
Need to repaint its ::first-line background when a block moves.
Everything else pertaining to ::first-line is painted by the InlineBox objects
established by DOM nodes (text, inline SPAN, whatever), so they get invalidated
when their LayoutObjects get invalidated, but ::first-line background is
special and is painted by RootInlineBox, which wasn't properly invalidated
along with the rest.

BUG=537638
R=chrishtr@chromium.org,eae@chromium.org,wangxianzhu@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#366396}
davve
Rewrite LayoutTest svg/wicd/rightsizing-grid as a reftest
A number of changes were made to reduce flakyness and make the test
more useful:

 * Rewrite as html reftest.

 * Apply a static body width. The test is no longer depending on the
   viewport width.

 * Use a slim body width. The way the test was written a lot of the
   test actually ended up outside the viewport. Layout tests use
   default size 800x600 and this test expected up to double the height
   compared to the width.

 * Avoid gradients and rounded rectangles since they add nothing to
   what's actually meant to be tested.

The test svg/wicd/sizing-flakiness.html is a subset of the
rightsizing-grid test and should provide little value of its own. It
is thus removed.

BUG=571301

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

Cr-Commit-Position: refs/heads/master@{#366388}
mostynb
gn format BUILD.gn after CL1535803002
BUG=539572
TBR=dpranke

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

Cr-Commit-Position: refs/heads/master@{#366371}
sigbjornf
Oilpan: prefinalize StyleFetchedImage* image resource clients.
Followup r366092 and switch finalization mechanism for
StyleFetchedImage and StyleFetchedImageSet to prefinalizers.

Having them be eagerly finalized conflicted in some cases with
another eagerly finalized object (a FrameView scrollable area),
as these StyleFetchedImage objects cannot be allowed to
touch another eagerly finalized object.

Avoid the finalization (non-)ordering issue by switching these
to prefinalized objects instead.

R=haraken
BUG=

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

Cr-Commit-Position: refs/heads/master@{#366275}
fs
Drop SkPathContainsPoint in favor of SkPath::contains
This will increase the fidelity in some cases when hit-testing.

BUG=373638,523102

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

Cr-Commit-Position: refs/heads/master@{#366141}
philipj
Deprecate document.defaultCharset (to be removed in M50)
Intent to Deprecate and Remove:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/pWSb_tq13Kg/Dmk59Fb9AQAJ

BUG=567738

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

Cr-Commit-Position: refs/heads/master@{#366133}
bratell
Use Ebrima as fallback font for Tifinagh in Windows.
BUG=569421

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

Cr-Commit-Position: refs/heads/master@{#366131}
sigbjornf
Oilpan: fix build after r366113.
TBR=oilpan-reviews
BUG=505851
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#366126}
philipj
Update the XMLHttpRequestProgressEvent deprecation messages for M50 removal
Intent to Remove:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/bpbq0Rcpauk/cnpJtHddAgAJ

BUG=357112

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

Cr-Commit-Position: refs/heads/master@{#366114}
philipj
Update the keyLocation deprecation message for M50 removal
Intent to Remove:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/lqknEaUYCJM/UbNahDDMAwAJ

BUG=568261

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

Cr-Commit-Position: refs/heads/master@{#366112}
philipj
Add willBeRemoved and replacedWillBeRemoved deprecation message helpers
The fullscreen deprecation messages are updated, because the old
advice was not as good as the new advice.

R=jochen@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#366096}
sigbjornf
Oilpan: eagerly finalize StyleFetchedImage* image resource clients.
Extend our practice of eagerly finalizing ImageResourceClients to
StyleFetchedImage and StyleFetchedImageSet.

R=haraken
BUG=

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

Cr-Commit-Position: refs/heads/master@{#366092}
fs
Add a Path::contains() version that use the Path's winding rule
In preparation for using SkPath::contains() for Path::contains(), add an
overload that uses the winding rule (fill type) from the SkPath, since
that the version which will require less impedance matching with the
Skia API. Convert "obvious" current users to the new overload, and remove
some unused winding rule accessors.
Attempt to clean up some related includes while in the general area.

BUG=523102

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

Cr-Commit-Position: refs/heads/master@{#366080}
mharanczyk
Change how DOM Inspector fetches document's base URL.
With integration of https://codereview.chromium.org/1409293007 appending
empty string is invalid operation for non hierarchical base urls. Since
DOM Inspector Agent actually want to determine base URL ask for that
data directly.
Without this change base url for non hierarchical (data:) urls was
always empty for inspector, which in turn caused webdriver to freeze
when trying to communicate with such documents, because it wrongly
assumed it is still in loading state (base url was empty),
so it waited for load complete.

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

Cr-Commit-Position: refs/heads/master@{#366079}
sigbjornf
Allow -webkit-text-decorations-in-effect preservation during para move.
Adjust assert to allow it; moving paragraphs as part of performing
JustifyRight will want to preserve styles, but this is done without
extra annotation. For which -webkit-text-decorations-in-effect is
also preserved.

R=tkent
BUG=498130
TEST=editing/execCommand/justify-right-in-effect-crash.html

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

Cr-Commit-Position: refs/heads/master@{#366067}
sigbjornf
Better handling of DocumentOrderedMap same-ID lookups during tree removals
Under select and unusal conditions, the removal of an element with ID
A might trigger further lookups of A from a TreeScope's DocumentOrderedMap
as part of handling the removal of that element. The tree and
DocumentOrderedMap is not in a consistent state to precisely handle such
lookups -- add machinery to spot that we're in a transitory state and
not trigger an assert over such failing lookups.

See code comments for further details.

R=tkent,esprehn
BUG=426005

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

Cr-Commit-Position: refs/heads/master@{#366066}
philipj
Simplify Node.prototype.baseURI to match the DOM spec
https://dom.spec.whatwg.org/#dom-node-baseuri

This simplification was made possible by the removal of xml:base in spec
and implementation:
https://www.w3.org/Bugs/Public/show_bug.cgi?id=20976
https://code.google.com/p/chromium/issues/detail?id=341854

BUG=570679

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

Cr-Commit-Position: refs/heads/master@{#365934}
landell
Include missing errno.h
BUG=

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

Cr-Commit-Position: refs/heads/master@{#365839}
bratell
Include <algorithm> if you use functions from <algorithm>.
I'm trying to remove #include <algorithm> from common headers because
it takes a long time to compile, but then code that actually need
<algorithm> need to include that header themselves.

This will bring no functional change.

BUG=563433

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

Cr-Commit-Position: refs/heads/master@{#365830}
philipj
Import the baseURI test from web-platform-tests
Import web-platform-tests@0bb3d73f26aa5a21326b6c1c7aaf35029222223f

Using update-w3c-deps in Blink 731a1238920ae9b7216cd2ced12267deb0d63e19.

This fails, but is imported so that it can be fixed.

BUG=570679

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

Cr-Commit-Position: refs/heads/master@{#365828}
wmaslowski
Permissions channel filter should use IDS_PRODUCT_NAME
... instead of explicit 'Google Chrome'.

BUG=560262

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

Cr-Commit-Position: refs/heads/master@{#365825}
sigbjornf
Oilpan: simplify plugin container finalization.
Simplify the finalization of WebPluginContainerImpl by registering a
prefinalizer for it. By doing so, we can let go of the LocalFrame
registration scheme currently used -- a scheme needed to ensure
that plugin containers could safely dispose of their plugin while
the owning LocalFrame was still alive and accessible. That
mechanism predated prefinalizer/eager finalization support. But
with it well in place, we can make good use of it here -- the
prefinalizer disposing of the plugin container while the LocalFrame
is accessible.

Notice that plugin containers (PluginView widgets) still need to
be explicitly disposed of in places. Their plugins will have to
be summarily & predictably destroyed at those points, something
that cannot be left until the next GC (whenever it goes ahead.)

R=dcheng
BUG=340522

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

Cr-Commit-Position: refs/heads/master@{#365792}
ljagielski
[Linux] Turn off -mstackrealign for breakpad in ia32.
There's a clang bug which causes crashes of syscalls which use many
registers for argument passing in ia32 architecture.
https://llvm.org/bugs/show_bug.cgi?id=16830

BUG=556393

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

Cr-Commit-Position: refs/heads/master@{#365770}
sigbjornf
Gracefully discharge a failed script load in disposed documents.
Should a ScriptLoader's resource end up being cancelled as part of
Document and ScriptRunner disposal, handle the error notification without
falsely asserting. Speculative crash fix.

R=haraken
BUG=536796

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

Cr-Commit-Position: refs/heads/master@{#365541}
bratell
Include <algorithm> if you use functions from <algorithm>.
I'm trying to remove #include <algorithm> from common headers because
it takes a long time to compile, but then code that actually need
<algorithm> need to include that header themselves.

This will bring no functional change.

BUG=563433

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

Cr-Commit-Position: refs/heads/master@{#365524}
sigbjornf
Oilpan: make ScrollableAreaTest.ScrollbarTrackAndThumbRepaint work.
Scrollbars assume that their associated theme objects live longer,
unregistering themselves upon finalization.

Make it clear that this lifetime assumption must also hold for Scrollbars
created by the test-only constructor Scrollbar::createForTesting() +
alter ScrollableAreaTest.ScrollbarTrackAndThumbRepaint so that the
scrollbars it creates are finalized before the mock theme object is.
With Oilpan, explicit flushing out of garbage is needed.

R=haraken
BUG=549277

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

Cr-Commit-Position: refs/heads/master@{#365517}
davve
Measure SVGSVGElement.viewport
The implementation is trivial but entirely useless and has been since
2012. The attribute is not present at all in Gecko.

It has been removed from the spec:
http://www.w3.org/Graphics/SVG/WG/track/actions/3815

BUG=395838, 415074

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

Cr-Commit-Position: refs/heads/master@{#365515}
philipj
Import dom/ from web-platform-tests
Import web-platform-tests@0bb3d73f26aa5a21326b6c1c7aaf35029222223f

Using update-w3c-deps in Blink adcc203a3f95a64d9bd7018adec276cfb7eadeb5.

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

Cr-Commit-Position: refs/heads/master@{#365433}
fs
Tidy up SVGParserUtilities
Remove unused typedefs and includes. Move 'transform'-related parsing
bits to SVGTransformList.cpp.

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

Cr-Commit-Position: refs/heads/master@{#365379}
fs
Use Vector<...>::append(const U*, size_t) in SVGPathByteStream
This appears to help larger paths a decent amount, while not hurting
smaller paths. Payload for this copy is 2-26 bytes. For a ~3.5k
character path string this reduced runtime of a
setAttribute('d', <path>) micro-benchmark (w/ mostly 10 byte payloads)
by roughly 17%.

BUG=568735

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

Cr-Commit-Position: refs/heads/master@{#365365}
fs
Shrink SVGTransform::valueAsString
Use a StringBuilder and convert transformTypePrefixForParsing to return
const char*.
Since this is a uniform arguments notation, put the arguments in an
array and loop through them, appending them to the result.
This reduces the size of this method from a bit of 6k to a bit over 950
bytes (x86-64).

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

Cr-Commit-Position: refs/heads/master@{#365354}
fs
Shrink SVGPreserveAspectRatio::valueAsString
No need to instantiate String for all the cases. Use a StringBuilder and
const char* instead.
Shrinks the method by nearly 500 bytes (x86-64)

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

Cr-Commit-Position: refs/heads/master@{#365319}
sigbjornf
Canonicalize creation of ServiceWorkerContainerClient supplement.
Follow the lazy from-new-provideTo pattern used elsewhere for instantiating
supplements.

R=horo
BUG=

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

Cr-Commit-Position: refs/heads/master@{#365230}
wdzierzanowski
Don't assume correct image format in CopyVpxImageToVideoFrame()
The data arriving inside the |vpx_image| struct is not guaranteed by
libvpx to be in one of the formats supported by VpxVideoDecoder.

BUG=569574
TEST=Loading http://shion.ru/crash.webm should result in video decoding error

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

Cr-Commit-Position: refs/heads/master@{#365213}
rune
Avoid unnecessary invalidation scheduling.
We skip scheduling invalidation sets for an element when:

* StyleResolver is null
* Element is not inActiveDocument()
* Element does not have a parent
* Element parent has SubtreeStyleChange or ReattachStyleChange

Additionally we skip descendant invalidations when:

* Element has SubtreeStyleChange or ReattachStyleChange

and sibling invalidations when:

* Element.nextSibling is null

Removed an unnecessary SubtreeStyleChange when StyleResolver is null for
attribute changes.

BUG=557440

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

Cr-Commit-Position: refs/heads/master@{#365188}
fs
Fix ImageResource null-check in LayoutImage::foregroundIsKnownToBeOpaqueInRect
Make sure m_imageResource->cachedImage() is non-null before
dereferencing even for the use in the context of the TRACE_EVENT.

BUG=569624

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

Cr-Commit-Position: refs/heads/master@{#365097}
sigbjornf
Document LEAK_SANITIZER_IGNORE_OBJECT() more precisely.
R=haraken
BUG=567257
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#365025}
sigbjornf
Oilpan: support OSX thread stack size discovery.
We do know enough about OSX stack sizes to be able to work around
bugginess of 10.9's pthread_get_stacksize_np().

R=haraken
BUG=569480

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

Cr-Commit-Position: refs/heads/master@{#364996}
sigbjornf
Revert of Response construction with a ReadableStream (patchset #13 id:320001 of https://codereview.chromium.org/1506023003/ )
Reason for revert:
Caused some UAFs,

 http://build.chromium.org/p/chromium.webkit/builders/WebKit%20Linux%20ASAN/builds/21811

Original issue's description:
> Response construction with a ReadableStream
>
> This CL implements Response construction with a ReadableStream provided
> by V8 Extras. The feature is behind a runtime enabled flag.
>
> The implementation is not perfect.
>  - ReadableStreamDataConsumerHandle should be thread-safe but is not.
>  - ReadableStreamDataConsumerHandle may cause memory leaks.
> But these problems don't bother stable users.
>
> BUG=564479
>
> Committed: https://crrev.com/6aa006ba0f0f8a60c20167ad009f5699e40b8ef2
> Cr-Commit-Position: refs/heads/master@{#364968}

TBR=domenic@chromium.org,bashi@google.com,bashi@chromium.org,haraken@chromium.org,tyoshino@chromium.org,yhirano@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=564479

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

Cr-Commit-Position: refs/heads/master@{#364981}
fs
Restore TextCaseSensitivity argument to literal {start,end}sWith
This reverts the change made by:
  https://codereview.chromium.org/1507763003
hence restoring the method signatures. Implementations are adjusted
based on intermediate changes, like supporting ASCII case-insensitive.

Reorganize the equalSubstring* helpers so that more code can be shared
(at least textually.)
Also try to make the naming of arguments consistent for the various
startsWith/endsWith implementations ("prefix"/"suffix" rather than
"match").

BUG=568584

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

Cr-Commit-Position: refs/heads/master@{#364957}
sigbjornf
Oilpan: fixup Handle.h include.
R=haraken
BUG=357163

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

Cr-Commit-Position: refs/heads/master@{#364950}
fs
Ship Case-insensitive attribute selectors
Intent-to-ship:
  https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/vAWK0ldpyrc

BUG=567732

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

Cr-Commit-Position: refs/heads/master@{#364831}
philipj
Remove deprecation messages for no-ops that are left in the specs
Since these will not be removed, warning developers about them is
not a good use of attention.

Take the opportunity to remove the detach() calls from a few tests where
it does nothing anyway. Remove detach-range-during-deletecontents.html
as that was testing specifically detach() which cannot be relevant now
that it is a no-op. Some of the range-* tests are left untouched as they
explicitly call out that detach() is a no-op in comments.

These are the reviews where these deprecation messages were added:
https://codereview.chromium.org/256013002
https://codereview.chromium.org/252783002
https://codereview.chromium.org/901623002

BUG=568218
R=rbyers@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#364745}
fs
Use ASCII case-insensitive matching for attribute selectors
When matching attribute selectors in a case-insensitive manner, the
match should be performed using "ASCII case-insensitive" matching per
the "document language" specification (HTML) [1]. Similarly when the "i"
modifier is used [2].

New behavior matches Gecko (for [1]) and WebKit (for [1] and [2]).

This requires adding some new functions to support the various matching
operations: startsWith, endsWith and find.
Add TextCaseSensitivity value TextCaseASCIIInsensitive and
implementations for the methods mentioned above.
Replace current use of startsWithIgnoringASCIICase with startsWith,
passing TextCaseASCIIInsensitive.

[1] https://html.spec.whatwg.org/multipage/scripting.html#case-sensitivity
[2] https://drafts.csswg.org/selectors-4/#attribute-case

BUG=565878

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

Cr-Commit-Position: refs/heads/master@{#364703}
davve
Split SVGSVGElement.create* functions from SVG1DOM counter
Measure them individually to see which ones, if any, has any
usage. They are interesting in the sense of being the only way of
creating such objects.

BUG=415074

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

Cr-Commit-Position: refs/heads/master@{#364695}
sigbjornf
Oilpan: fix build after r364654, part 3.
TBR=oilpan-reviews
BUG=531990
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#364692}
sigbjornf
Oilpan: always limit persisted plugin disposal to PluginViews instances.
With Oilpan enabled, the plugin element needs to synchronously inform
its 'persisted' plugin widget that it is slated for destruction and
call its dispose() method. This is needed so as to have that plugin
unregister in a timely fashion (without waiting on the next GC.)

This disposal step is only needed for PluginView widgets; it is indeed
harmful to call it for a FrameView widget should it be disposed while
being in the middle of performing a full layout.

R=dcheng
BUG=568383

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

Cr-Commit-Position: refs/heads/master@{#364690}
sigbjornf
Oilpan: fix build after r364654, part 2.
Follow up r364678, unit test breakages.

TBR=oilpan-reviews
BUG=531990
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#364683}
sigbjornf
Oilpan: fix build after r364654.
TBR=oilpan-reviews
BUG=531990
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#364678}
davve
Hook up RendererMediaSessionManager with browser side
Implements the basic IPC messages for activation and deactivation back
and forth.

The browser side is still unimplemented.

BUG=497735

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

Cr-Commit-Position: refs/heads/master@{#364673}
davve
Remove --disable-svg1dom runtime flag
Because the SVG1DOM UseCounter was high enough that we couldn't rip
all of it out together[1] we might as well drop the run-time flag for
disabling it. It carries a non-significant cost of generated bindings
code (~700 lines less and simpler code) and won't be of much use now
anyway.

[1] https://code.google.com/p/chromium/issues/detail?id=415074#c4

BUG=415074

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

Cr-Commit-Position: refs/heads/master@{#364657}
christiank
Allow one-copy and zero-copy task tile worker pools to use compressed textures.
BUG=434699
CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel

Committed: https://crrev.com/7d60ce9a132a88ead407a2a58c91edc431e68259
Cr-Commit-Position: refs/heads/master@{#364326}

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

Cr-Commit-Position: refs/heads/master@{#364484}
fs
Remove String::reverseFindIgnoringCase
No longer used. Also remove the "dynamic" TextCaseSensitivity version
of String::reverseFind.

BUG=565878

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

Cr-Commit-Position: refs/heads/master@{#364375}
philipj
Add UseCounters for Selection methods that take null
Making collapse's argument non-nullable appears risky:
https://codereview.chromium.org/1498253002/#msg9

The risk for setBaseAndExtent is entirely unknown.

Measure both cases before proceeding further.

The change to Selection.idl is for clarity only, these are implicitly
nullable because of [LegacyInterfaceTypeChecking], and adding making
them explicitly nullable does not change the generated code.

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

Cr-Commit-Position: refs/heads/master@{#364344}
mstensho
PrintContext::pageProperty() shouldn't use 0 as page height.
This function only seems to be used by window.internals,
although WebFrame also provides a method that ends up there. It's only
partially implemented, though. It recognizes "margin-left", but not
"margin-right", for instance. Anyway, use a better page height than 0.

Also no need to explicitly lay out the document here, since
PrintContext::begin() does it for us.

With this change, we no longer need to perform a page height sanity check in
LayoutView::layout() before creating a ViewFragmentationContext.

R=leviw@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#364333}
mostynb
remove duplicate friend declaration
GCC builds fail with duplicate friend declaration introduced
by https://codereview.chromium.org/1407383005

BUG=543655
TBR=vollick

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

Cr-Commit-Position: refs/heads/master@{#364328}
christiank
Allow one-copy and zero-copy task tile worker pools to use compressed textures.
BUG=434699
CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel

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

Cr-Commit-Position: refs/heads/master@{#364326}
philipj
Drop [LegacyInterfaceTypeChecking] for Selection.prototype.addRange
This already throws in Firefox and IE11 when the argument is null:
http://software.hixie.ch/utilities/js/live-dom-viewer/saved/3781

DOMSelection::addRange is only called from generated bindings, so the
assert will hold.

BUG=561338

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

Cr-Commit-Position: refs/heads/master@{#364322}
philipj
Drop [LegacyInterfaceTypeChecking] for SpeechSynthesis.prototype.speak
This changes only the exception message. There are no internal calls to
SpeechSynthesis::speak, so the ASSERT(utterance) will hold.

BUG=561338

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

Cr-Commit-Position: refs/heads/master@{#364303}
sigbjornf
Safely finalize an AnimationTimeline's still-attached Animations.
R=haraken
BUG=568084

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

Cr-Commit-Position: refs/heads/master@{#364300}
fs
Refactor StringImpl::{start,end}sWith(StringImpl*, ...)
In preparation for ASCII case-insensitive matching in these two methods,
add a macro for handling the "dispatch" to the right method, and split
the single method into two in both instances. Make the argument to the
new methods as well as the methods themselves const.
Add equalSubstring{,IgnoringCase} helpers and use those to implement
both of the methods.

BUG=565878

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

Cr-Commit-Position: refs/heads/master@{#364243}
philipj
Import web-platform-tests@5dbe45af3ad3a933c03187c72f1c12cbe2877703
Using update-w3c-deps in Blink 2fdb258ddf7fa6834750711a10a01d26766b7d46.

Failing test expectations were added for two tests:

 * maxlength.html fails because the internal maxlength 524288 is exposed to
   scripts instead of -1.

 * document.getElementsByName-namespace-xhtml.xhtml fails because
   getElementsByName() tests all elements, while the spec says to only
   include HTML elements in the collection:
   https://html.spec.whatwg.org/multipage/dom.html#dom-document-getelementsbyname

R=tkent@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#364149}
rune
Don't early return on SubtreeStyleChange for scheduling invalidations.
Sibling invalidation sets still need to be scheduled for elements with
SubtreeStyleChange when SubtreeStyleChange is for strict subtree.

R=dstockwell@chromium.org,ericwilligers@chromium.org
BUG=557440

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

Cr-Commit-Position: refs/heads/master@{#364092}
davve
Split SVGStringList related measurements from SVG1DOM counter
Measure users of SVGStringList individually to see if the
SVGStringList and SVGTests interfaces can be removed or needs to stay.

BUG=415074

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

Cr-Commit-Position: refs/heads/master@{#364074}
rune
Remove clearing of pending invalidation sets.
In preparation for making SubtreeStyleChange not affect the sibling
forest.

We can skip scheduling descendant invalidation sets for elements whose
styleChangeType is SubtreeStyleChange. However, with sibling invalidation
sets, we still need to schedule invalidations for invalidating the
sibling forest when we change SubtreeStyleChange to be a strict subtree
recalc.

We may not clear pending invalidations on detach either, unless the node
was actually removed from the dom tree, since there might be pending
sibling invalidations.

R=dstockwell@chromium.org,ericwilligers@chromium.org
BUG=557440

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

Cr-Commit-Position: refs/heads/master@{#364064}
bratell
[net] Make state table const to share between processes.
When studying the contents of the duplicated data between
processes I found the parser_state variable in http_server.cc.

It's only about 200 bytes but the fix is trivial (add a const).

The rest of the change is a git cl format net to make presubmit happy.

R=yhirano@chromium.org, mmenke@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#364061}
mstensho
The column balancer should ignore things outside the bounds of the row.
The column balancer examines one row (fragmentainer group) at a time, and it
needs to ignore things that happen at hard or soft column breaks in other rows.
Do some flow thread coordinate bounds checking to avoid being affected by
pagination struts and hard breaks in other rows.

BUG=556481
R=leviw@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#364040}
mstensho
Paginated containers are opaque to enclosing fragmentation contexts.
Only multicol containers may be fragmented by enclosing fragmentation contexts.
Unlike multicol containers, containers with overflow:paged-x or paged-y cannot
create additional fragmentainer groups for each outer column that it lives in.

Added a basic test for multicol inside paged overflow, since it was missing,
just to make sure that this CL doesn't break anything.

BUG=479074
R=leviw@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#364036}
mateuszs
Fixed i-cursor height calculation.
In previous solution only AND part of cursor mask
was taken into account. Now both AND and XOR parts
are considered to properly determine bottom point
of cursor pointer.

BUG=446810

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

Cr-Commit-Position: refs/heads/master@{#364026}
sigbjornf
Oilpan: fix build after r363998.
The struct contains a raw pointer to an Oilpan heap object (Scrollbar*),
which is not allowed without either accounting for its safety (or
by having it be traced.)

But as the struct is unused, just remove it.

R=haraken
BUG=560418
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#364015}
fs
Drop TextCaseSensitivity from {start,end}sWith(const char*, ...)
The only user that's uses case-insensitive matching is
localeIdMatchesLang(), which can get a helper of its own (broken out of
equalInner).
Also rearrange/rewrite localeIdMatchesLang() a bit to not compare the
language prefix again for each possible delimiter, and skip the "full"
comparison at the start (using a prefix match+length check instead.)
Also remove the templated StringImpl::{start,end}sWith.

BUG=565878

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

Cr-Commit-Position: refs/heads/master@{#364014}
sigbjornf
Reland of Fix several corner case issues of scrollbar paint invalidation (patchset #1 id:1 of https://codereview.chromium.org/1513573004/ )
Reason for revert:
Thanks for looking after the health of Oilpan builds. But as Oilpan is yet to be CQ-blocking, we don't want to be unnecessarily causing post-landing revert consternation & be in the way of overall progress.

Hence, I'm going to undo this revert & address the problem the Oilpan static checks are picking up on; it's a trivial one.

Original issue's description:
> Revert of Fix several corner case issues of scrollbar paint invalidation (patchset #7 id:120001 of https://codereview.chromium.org/1491193003/ )
>
> Reason for revert:
> I suspect this may have broken the Oilpan build:
>
> https://build.chromium.org/p/chromium.webkit/builders/WebKit%20Mac%20Oilpan/builds/27442
>
> Original issue's description:
> > Fix several corner case issues of scrollbar paint invalidation
> >
> > - Invalidate composited scrollbars also during paint invalidation to
> >   avoid unnecessary invalidation on intermediate changes;
> >
> > - Invalidate also on the containing box for moved/resized composited
> >   non-overlay scrollbars. This ensures the expanded/shrunk areas of the
> >   box because of scrollbar existence/width change are invalidated. This
> >   is the root cause of bug 535161.
> >
> > - Avoid unnecessary invalidations on overlay scrollbar changes.
> >
> > BUG=535161,560418
> >
> > Committed: https://crrev.com/48e402acbebf2717b8e79b89dba5310d31bf95da
> > Cr-Commit-Position: refs/heads/master@{#363998}
>
> TBR=chrishtr@chromium.org,skobes@chromium.org,wangxianzhu@chromium.org
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=535161,560418
>
> Committed: https://crrev.com/ed0577e5a8952de3976d6b18fa0ed39fe2a0e418
> Cr-Commit-Position: refs/heads/master@{#364000}

TBR=chrishtr@chromium.org,skobes@chromium.org,wangxianzhu@chromium.org,dominicc@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=535161,560418

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

Cr-Commit-Position: refs/heads/master@{#364006}
sigbjornf
GC plugin: remove mixin trace override restriction.
The GC plugin currently insists that a class that is declared as a
mixin instance (i.e., uses USING_GARBAGE_COLLECTED_MIXIN()) must also
declare its own local trace implementation override.

This is an unnecessary restriction to impose:

 - if the class derives from one GarbageCollectedMixin<> instance,
   it will have its virtual trace method in scope.
 - if it inherits from multiple, ambiguity exists and the compiler
   will already complain.
 - if the class declares traceable members of its own, then not providing
   a trace implementation that correctly handles these members will
   be otherwise flagged as an error by the GC plugin.

Remove the static check from the plugin, along with adding a unit test
which verifies that the virtual trace is inherited as expected.

R=thakis,haraken
BUG=444565

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

Cr-Commit-Position: refs/heads/master@{#364001}
sigbjornf
Release Oilpan heap singletons prior to LSan leak detection.
Make Oilpan and LSan cooperate better. As Persistent<> references
created via DEFINE_STATIC_LOCAL() and similar will be reachable to
LSan's leak detection pass, the objects they refer to outside of
the Oilpan heap will be reported as leaking.

(This is in contrast to what happens in the non-Oilpan setting,
where the (leaked) pointer created via DEFINE_STATIC_LOCAL() is
stored in a local "static"; such non-global references are not
considered roots to LSan and hence the objects reachable from
those will not be reported as leaking.)

Address the problem on the Oilpan side by having such "static"
Persistent<>ly-held singletons be registered and tracked such
that we're able to release them all just before shutting down
and performing an extra round of GCs. Leaving a cleaner heap
for LSan to work over. And to report no leaks over, ideally.

As part of the changes needed to support this for Oilpan,
wtf/LeakAnnotations.h offerings has been renamed and changed
a bit:

 * WTF_ANNOTATE_MEMORY_LEAK_SCOPE => LEAK_SANITIZER_DISABLED_SCOPE.
   (but see LeakAnnotations.h for macro to use local to wtf/.)
 * WTF_ANNOTATE_IGNORE_OBJECT_PTR => LEAK_SANITIZER_IGNORE_OBJECT.
 * LEAK_SANITIZER_REGISTER_STATIC_LOCAL().

(Reland of r363780.)

R=haraken
BUG=567257

Committed: https://crrev.com/6918d00fae1ab739f89393378fa4adddabacafd2
Cr-Commit-Position: refs/heads/master@{#363780}

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

Cr-Commit-Position: refs/heads/master@{#363994}
mostynb
don't rely on -Wno-narrowing in skcanvas_video_renderer.cc
Review URL: https://codereview.chromium.org/1504673003

Cr-Commit-Position: refs/heads/master@{#363947}
philipj
Remove unused [RaisesException] for createNodeIterator() and createTreeWalker()
While in the area, also assert that the root argument is not null, which
is guaranteed since https://codereview.chromium.org/360463005

The FIXME is removed because the whatToShow default value is 0xFFFFFFFF,
so any such warning would trigger by default.

R=haraken@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#363850}
mstensho
Add support for printing multicol containers, and enable it.
Introduce an abstract class FragmentationContext, which is either implemented
by LayoutMultiColumnFlowThread for multicol, or by the new
ViewFragmentationContext class, which is attached to a LayoutView when
printing. This way it will act as an enclosing fragmentation context for a
multicol container in the document. This is similar to how an outer multicol
container acts as an enclosing fragmentation context for an inner multicol
container.

The multicol flow thread implementation will now obtain and use a
FragmentationContext when attempting to locate its enclosing fragmentation
context, rather than only looking for another flowthread up there (and assume
that it's not nested if none was found). A big part of this CL is to teach the
multicol implementation about this, which means that there are quite a few
mechanical changes from enclosingFlowThread() (and LayoutMultiColumnFlowThread
method calls) to enclosingFragmentationContext() (and FragmentationContext
method calls).

Replaced an old printing test that tested that multicol didn't work, with one
that tests that multicol does work. :)

Also added another test that splits a multicol container over two pages.

BUG=99358
R=leviw@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#363838}
davve
Remove special handling of xpointer( as fragment url
Unless we're implementing xpointer( real soon now, we might as well be
honest about not supporting it.

BUG=567693

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

Cr-Commit-Position: refs/heads/master@{#363787}
sigbjornf
Release Oilpan heap singletons prior to LSan leak detection.
Make Oilpan and LSan cooperate better. As Persistent<> references
created via DEFINE_STATIC_LOCAL() and similar will be reachable to
LSan's leak detection pass, the objects they refer to outside of
the Oilpan heap will be reported as leaking.

(This is in contrast to what happens in the non-Oilpan setting,
where the (leaked) pointer created via DEFINE_STATIC_LOCAL() is
stored in a local "static"; such non-global references are not
considered roots to LSan and hence the objects reachable from
those will not be reported as leaking.)

Address the problem on the Oilpan side by having such "static"
Persistent<>ly-held singletons be registered and tracked such
that we're able to release them all just before shutting down
and performing an extra round of GCs. Leaving a cleaner heap
for LSan to work over. And to report no leaks over, ideally.

As part of the changes needed to support this for Oilpan,
wtf/LeakAnnotations.h offerings has been renamed and changed
a bit:

 * WTF_ANNOTATE_MEMORY_LEAK_SCOPE => LEAK_SANITIZER_DISABLED_SCOPE.
   (but see LeakAnnotations.h for macro to use local to wtf/.)
 * WTF_ANNOTATE_IGNORE_OBJECT_PTR => LEAK_SANITIZER_IGNORE_OBJECT.
 * LEAK_SANITIZER_REGISTER_STATIC_LOCAL().

R=haraken
BUG=567257

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

Cr-Commit-Position: refs/heads/master@{#363780}
sigbjornf
Oilpan: fix build after r363737.
Leave CompositorProxiedPropertySet off the Oilpan heap for now.

R=haraken
BUG=430155
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#363762}
fs
Avoid race-warning for access to animatableAttributes
Collecting debug data during a commit in CC can land us in this method
while not running in the main thread  (although it'll be blocked).
Since this is assert-only code, switch to a thread-safe initializer to
avoid triggering this warning. Hopefully this doesn't slow things down
to badly on bots.

BUG=545972

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

Cr-Commit-Position: refs/heads/master@{#363687}
sigbjornf
Release Oilpan heap singletons prior to LSan leak detection.
Make Oilpan and LSan cooperate better. As Persistent<> references
created via DEFINE_STATIC_LOCAL() and similar will be reachable to
LSan's leak detection pass, the objects they refer to outside of
the Oilpan heap will be reported as leaking.

(This is in contrast to what happens in the non-Oilpan setting,
where the (leaked) pointer created via DEFINE_STATIC_LOCAL() is
stored in a local "static"; such non-global references are not
considered roots to LSan and hence the objects reachable from
those will not be reported as leaking.)

Address the problem on the Oilpan side by having such "static"
Persistent<>ly-held singletons be registered and tracked such
that we're able to release them all just before shutting down
and performing an extra round of GCs. Leaving a cleaner heap
for LSan to work over. And to report no leaks over, ideally.

As part of the changes needed to support this for Oilpan,
wtf/LeakAnnotations.h offerings has been renamed and changed
a bit:

 * WTF_ANNOTATE_MEMORY_LEAK_SCOPE => LEAK_SANITIZER_DISABLED_SCOPE.
   (but see LeakAnnotations.h for macro to use local to wtf/.)
 * WTF_ANNOTATE_IGNORE_OBJECT_PTR => LEAK_SANITIZER_IGNORE_OBJECT.
 * LEAK_SANITIZER_REGISTER_STATIC_LOCAL().

R=haraken
BUG=567257

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

Cr-Commit-Position: refs/heads/master@{#363591}
davve
Disallow [Measure] and [MeasureAs] on interfaces without a constructor
For the instances where MeasureAs was specified on interfaces without
a constructor, simply remove the MeasureAs. Since they can't be
created by script, it seems more worthwhile want to measure where
these object are returned rather than the use of the interfaces
themselves.

The only change in generated code will be less includes of
core/frame/UseCounter.h, as can be seen in the binding testsuite
update.

BUG=415074, 567015

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

Cr-Commit-Position: refs/heads/master@{#363503}
sigbjornf
Oilpan: remove unnecessary MultisamplingChangedObserver unregistration.
As the Page keeps weak references to its MultisamplingChangedObservers,
there is no need to explicitly unregister upon finalization of
WebGLRenderingContextBase. It will already have been removed by
weak processing.

That unregistration step was made safe by virtue of the context object
being eagerly finalized.

R=haraken
BUG=

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

Cr-Commit-Position: refs/heads/master@{#363489}
davve
Teach SVGImageForContainer::imageForCurrentFrame about the URL
Pass URL from SVGImageForContainer to SVGImage when fetching an
snapshot for current frame.

BUG=565282

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

Cr-Commit-Position: refs/heads/master@{#363466}
philipj
Drop [LegacyInterfaceTypeChecking] for the Presentation API
The change to the send() methods are unobservable, because the added
TypeError exceptions in the generated code are unreachable, as type
testing is first used to pick which send() to dispatch to.

The change to defaultRequest is observable, in that something like
`presentation.defaultRequest = {}` will now throw TypeError instead of
setting defaultRequest to null. Since this is a very new API, this is
very unlikely to be a problem.

BUG=561338

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

Cr-Commit-Position: refs/heads/master@{#363464}
sigbjornf
Improve ScriptForbiddenScope handling in cross-threaded code.
For code that is used by multiple threads, we currently have to resort
to explicit main thread checks and manually adjust script forbidden
counts depending. Introduce ScriptForbiddenIfMainThreadScope that
reliably takes care of the details instead, entering&leaving a script
forbidden scope iff on the main thread.

R=haraken
BUG=

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

Cr-Commit-Position: refs/heads/master@{#363454}
davve
Remove redundant code from v8_interface.py
The 'UseCounter.h' include is added when needed by deprecate_as and
measure_as methods.

BUG=567015

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

Cr-Commit-Position: refs/heads/master@{#363449}
davve
Drop Image::setContainerSize()
Prior to this patch, the only user of Image::setContainerSize() was
HTMLImageElement::getSourceImageForCanvas().

SVGImage, one the relevant kinds of image that return true for
Image::usesContainerSize(), is a shared resource between all places in
the document pointing to the same SVG image. Each time a SVGImage is
drawn, the container size it is drawn relative to is saved. This may
cause subsequent paints of the same SVGImage to re-use the old
container size unless a new one is provided.

The old code addressed just that. When it detected that there was no
layout object attached, it overwrote the old container size with the
size of the image itself, to avoid reusing an old container size.

The new code uses the SVGImageForContainer wrapper to insert the image
size as container size. This closes the loop for using _any_ container
size at all from the Image element. It seems unreasonable that the
layout'ed size should have anything to do with what's drawn to the
canvas anyway.

GeneratedImage had a setContainerSize() implementation too, which is
removed in this patch. It's suspected that this implementation was
unused since a generated image can't be set on a HTMLImageElement
directly.

BUG=563923

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

Cr-Commit-Position: refs/heads/master@{#363437}
sigbjornf
Simplify prefinalizer processing.
The processing can be performed in one pass.

R=haraken
BUG=420515
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#363426}
philipj
Add use counters for NodeFilter being a function or an object
NodeFilter is a callback interface in the spec, but a plain interface in
Blink. It's the only callback interface that also has attributes, so
that there must be a NodeFilter attribute on the global object. In order
to make NodeFilter a callback interface per spec, the bindings generator
would need new code to generate that object.

If it's possible to make the createNodeIterator() and createTreeWalker()
filter arguments callback functions instead of callback interfaces, it
looks like this could all be simplified significantly. NodeFilter would
then remain as a plain interface with only the const attributes.

There is also a minor incompatiblity with Gecko related to NodeFilter.
Blink always wraps the function or object inside a new object which is
instanceof NodeFilter, and NodeIterator.prototype.filter returns this
object. Gecko, on the other hand, returns the same object thas was
passed in to createNodeIterator(), and instanceof NodeFilter throws a
TypeError.

BUG=462946

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

Cr-Commit-Position: refs/heads/master@{#363366}
philipj
Drop [LegacyInterfaceTypeChecking] for the Web Audio API
This aligns Web Audio with what WebIDL requires given the IDL it uses.

The risk of these changes is bounded by these use counters:

AnalyserNode ~0.01%:
https://www.chromestatus.com/metrics/feature/timeline/popularity/631

BiquadFilterNode ~0.001%:
https://www.chromestatus.com/metrics/feature/timeline/popularity/632

ConvolverNode ~0.0001%:
https://www.chromestatus.com/metrics/feature/timeline/popularity/636

OscillatorNode ~0.001%:
https://www.chromestatus.com/metrics/feature/timeline/popularity/643

WaveShaperNode <0.0001%:
https://www.chromestatus.com/metrics/feature/timeline/popularity/648

AudioParam.prototype.setValueCurveAtTime <0.0001%:
https://www.chromestatus.com/metrics/feature/timeline/popularity/913

With such lower usage, fixing corner cases like this is unlikely to
cause any trouble. Usage of AudioContext itself is at most ~0.2%, but
that counter is not for the constructor but merely access to
window.AudioContext, and thus not a good indicator of real usage:
https://www.chromestatus.com/metrics/feature/timeline/popularity/652

BUG=561338

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

Cr-Commit-Position: refs/heads/master@{#363297}
rune
Renamed authorStyleSheets to injectedAuthorStyleSheets.
The naming in StyleEngine was too general to grasp which stylesheets these
actually were. They are stylesheets injected through
WebDocument::insertStyleSheet which are injected by extensions afaict.

R=jochen@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#363219}
sigbjornf
Prevent reported RenderViewImplTest LSan leaks.
Add missing calls to ProcessPendingMessages() to a pair of
RenderViewImplTest unit tests. Not doing so would, with Oilpan enabled,
flakily hold on to the entire view of the test and report it as leaking
with LSan.

R=jochen
BUG=

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

Cr-Commit-Position: refs/heads/master@{#363196}
tmoniuszko
Adjust text fade width and alpha
Slightly increase fade gradient width.

Use 0 target alpha for wide texts. Linearly increase alpha for narrower
texts.

BUG=563390

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

Cr-Commit-Position: refs/heads/master@{#363188}
rune
Call pseudoStateChangedForElement from Element::pseudoStateChanged only.
There were a few places where StyleEngine::pseudoStateChangedForElement
was called directly instead of via Element::pseudoStateChanged. Changed
to have consistently common code paths.

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

Cr-Commit-Position: refs/heads/master@{#363177}
wdzierzanowski
Revert "Fix race on demuxer memory usage. Reuse previous calculation."
This reverts commit 9ac642d1d2ed95b810ff276fb65c2be7b461e791.

Now that Demuxer::GetMemoryUsage() runs on the media thread
(fd4cd91c5eea8b3a4970f5512a306e4a03e33101), the reason for the race is
removed and so the synchronization in FFmpegDemuxer can be removed too.

BUG=564034
TEST=Crash page from https://crbug.com/447898 still doesn't crash

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

Cr-Commit-Position: refs/heads/master@{#363173}
mstensho
Support enclosing fragmentainer breaks inside spanners.
A column-span:all object in a nested multicol container is part of one or more
columns in the outer multicol container, so we need to allow it to be
paginated. In order to paginate it correctly, we also need to set its correct
logical top before laying it out, or we'd risk inserting pagination struts at
the wrong places.

BUG=447718
R=leviw@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#363160}
philipj
Make ConvolverNode.buffer and WaveShaperNode.curve nullable
These are nullable in the spec:
https://webaudio.github.io/web-audio-api/#ConvolverNode
https://webaudio.github.io/web-audio-api/#WaveShaperNode

Because of [LegacyInterfaceTypeChecking], this does not change the
generated code at all, and is therefore not testable. However, it will
result in the correct behavior once [LegacyInterfaceTypeChecking] is
removed, to be done separately.

BUG=561338

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

Cr-Commit-Position: refs/heads/master@{#363159}
sigbjornf
Explicitly detach remote window from its frame.
See RemoteFrame::setView() comment explaining why this is needed
over RemoteFrames.

R=haraken,dcheng
BUG=

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

Cr-Commit-Position: refs/heads/master@{#363150}
philipj
Drop [LegacyInterfaceTypeChecking] for URL.createObjectURL(blob)
The change to the generated code is such that only calls to
URL.createObjectURL(null) and URL.createObjectURL(undefined) are
affected, as those would previously match the nullable Blob argument.

This is very low risk, due to the behavior of other browsers:

Firefox and IE11 throw for both URL.createObjectURL(null) and
URL.createObjectURL(undefined). Edge presumably matches IE11.

Safari throws for URL.createObjectURL(undefined) but returns null for
URL.createObjectURL(null), which was our behavior before this change.

There are no internal calls to DOMURL::createObjectURL, so the ASSERT
will hold.

BUG=561338

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

Cr-Commit-Position: refs/heads/master@{#363031}
philipj
Sync the Storage API with the spec
https://html.spec.whatwg.org/multipage/webstorage.html

The only change to the generated code is the data->value rename.

BUG=460722
R=jsbell@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#362999}
sigbjornf
Oilpan: add missing pointer initialization following r362974.
TBR=oilpan-reviews
BUG=499780
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#362989}
davve
Drop dead code path in SVGImage
The SVGImage class is marked final and SVGImage::usesContainerSize()
returns true.  This means setContainerSize should never have to bail
out early over not using container size.

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

Cr-Commit-Position: refs/heads/master@{#362984}
rune
Remove unused activeAuthorStyleSheets method.
R=mstensho@opera.com

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

Cr-Commit-Position: refs/heads/master@{#362959}
sigbjornf
Oilpan: no destructor needed for CSSPrimitiveValue.
Any unregistration is (already) taken care of by Oilpan.

R=haraken
BUG=

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

Cr-Commit-Position: refs/heads/master@{#362931}
wdzierzanowski
Run Demuxer::GetMemoryUsage() on media thread
Split the memory usage reporting in WebMediaPlayerImpl into two steps so
that |demuxer_| can be accessed on the media thread only.

This change makes no practical difference for ChunkDemuxer ATM, which
uses locks extensively anyway.  But it does make a difference for
FFmpegDemuxer (as evidenced by
https://codereview.chromium.org/1419753007 -- can be reverted now).
Also, other Chromium-based products are better off if Demuxer
implementations are not forced to worry about synchronization
themselves.

BUG=564034
TEST=Crash page from 447898 still doesn't crash

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

Cr-Commit-Position: refs/heads/master@{#362821}
fs
Robustify state-transitions in HTMLMediaElement::startDeferredLoad
A preload=none load() followed by setting preload != none would try to
transition to ExecuteOnStopDelayingLoadEventTask while in that state
already.

BUG=562535

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

Cr-Commit-Position: refs/heads/master@{#362735}
philipj
Drop [LegacyInterfaceTypeChecking] for most init*Event() methods
This will only affect cases where the argument provided but is neither null nor
an object of the required type. The main risk is therefore that people have
passed shifted all the arguments by accident, so that a boolean, string or
number is passed for one of the affected arguments.

Cases where undefined is passed or the argument is omitted entirely are not
affected, they behave just as if null were passed.

Also drop the *Arg suffix in arguments for initTextEvent().

BUG=561338

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

Cr-Commit-Position: refs/heads/master@{#362727}
philipj
Drop [LegacyInterfaceTypeChecking] for HTMLTableElement
Although the behavior when setting caption/tHead/tFoot to null is still
not per spec, it's still nice to get the correct exception message when
passing some non-null value of the wrong type.

BUG=561338

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

Cr-Commit-Position: refs/heads/master@{#362700}
philipj
Drop [LegacyInterfaceTypeChecking] for HTMLInputElement.prototype.files
The setter is non-standard, but if it is standardized it wouldn't make
sense to have the existing behavior. For any case that this starts
throwing there's a programming error, so unless it breaks the web it
should throw TypeError.

BUG=561338

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

Cr-Commit-Position: refs/heads/master@{#362689}
tmoniuszko
Fix path_parser dependency on policy component
BUG=

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

Cr-Commit-Position: refs/heads/master@{#362684}
fs
Use SVGLength's wrapped CSSPrimitiveValue for pres.attr. style
Since SVGLength now wraps a CSSPrimitiveValue, there's no need to create
a (potentially new) CSSPrimitiveValue when collecting presentation
attribute style for SVG elements. Could save an allocation in some
cases.
Gets rid of the addSVGLengthPropertyToPresentationAttributeStyle helper
on SVGElement.

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

Cr-Commit-Position: refs/heads/master@{#362680}
rune
Use invalidation sets for :lang changes.
Modifying lang or xml:lang attributes caused a LocalStyleChange for the
corresponding element in the presentational attribute check, but other
elements may be affected using selector combinators.

Use invalidation sets like we do for other pseudo classes.

BUG=564331

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

Cr-Commit-Position: refs/heads/master@{#362675}
philipj
Sync the HTMLTableElement return types with the spec
https://html.spec.whatwg.org/#the-table-element

Changed in https://github.com/whatwg/html/pull/363

BUG=460722

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

Cr-Commit-Position: refs/heads/master@{#362665}
mstensho
It's not just the last column set that may need additional fragmentainer groups.
appendNewFragmentainerGroupIfNeeded() assumed that we were always dealing with
the last column set, but we need to use the column set that contains the
specified flow thread block offset. Moved hasFragmentainerGroupForColumnAt()
from LayoutMultiColumnFlowThread to LayoutMultiColumnSet and simplified the
code somewhat.

BUG=447718
R=leviw@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#362604}
davve
Split text related measurements from SVG1DOM counter
Create a SVG1DOMText UseCounter to measure all text related SVG DOM
functionality. The assumption we want to test is that the text related
SVG DOM has really low usage.

BUG=415074

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

Cr-Commit-Position: refs/heads/master@{#362543}
mstensho
column-span:all in nested multicol requires re-insertion of fragmentainer groups.
A column set that follows a spanner will typically have an incorrect logical
top in the first layout pass (because the spanner hasn't been laid out yet). We
already have code in place to make sure that we re-lay out when we need to, but
we also need to delete and re-insert fragmentainer groups when this happens in
a nested fragmentation context.

If a column set gets a new logical top, it means that previously inserted
fragmentainer groups are now out of sync with reality, and have to be
re-inserted.

Remove the BalancedColumnHeightCalculation enum. There's no need for it
anymore, since picking calculation mode is now something we need to do for each
individual column set. m_tallestUnbreakableLogicalHeight is now reset in
resetColumnHeight() (that's where it ought to have been all along, anyway).

BUG=447718
R=leviw@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#362492}
philipj
Drop [LegacyInterfaceTypeChecking] for PagePopupController
This is an internal API, used only by web/resources/listPicker.js,
where document is passed as an argument, which is not null.

BUG=561338

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

Cr-Commit-Position: refs/heads/master@{#362479}
philipj
Make init*Event() arguments nullable where appropriate
Because these methods have [LegacyInterfaceTypeChecking], this does not
change the generated code, but it will limit the impact of dropping
[LegacyInterfaceTypeChecking].

Only initKeyboardEvent() appears to have a spec:
https://w3c.github.io/uievents/#idl-interface-KeyboardEvent-initializers

For the others, the nullability matches that of the *Event member.

BUG=561338
R=rbyers@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#362470}
wdzierzanowski
Allow multiple OnMoreData() calls in WASAPIAudioOutputStreamTest.ValidPacketSize
Follow up on https://codereview.chromium.org/1318933003/ and allow
OnMoreData() to be called more than once in the test.

BUG=524947
TEST=WASAPIAudioOutputStreamTest.ValidPacketSize passes

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

Cr-Commit-Position: refs/heads/master@{#362439}
rune
Invalidate visited state changes for svg links.
SVGAElement only caused :link/:visited recalcs when it became a link or
stopped being so. Now recalculate style whenever href changes in case the
:visited/:link state changes. Also use style invalidation instead of
SubtreeStyleChange, as the latter entails sibling forest recalc in case
we have adjacent combinators.

R=fs@opera.com
BUG=563485,557440

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

Cr-Commit-Position: refs/heads/master@{#362425}
philipj
Drop [LegacyInterfaceTypeChecking] for the MIDI API
The added exception in the generated code is unreachable and thus
untestable, because there are two send() methods and the one changed
is only taken if the argument is of the correct type.

There are no internal calls where data could be null.

BUG=561338

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

Cr-Commit-Position: refs/heads/master@{#362392}
tmoniuszko
Fix resource-related issues in views_unittests
Make sure ui_test.pak file is available for views_unittests.

Also make views_unittests independent from chrome locale pak files by replacing l10n_util::GetApplicationLocale() with base::i18n::GetConfiguredLocale() for tests. The first function needs chrome locale pak files to exist or it returns empty locale string.

BUG=

TEST=Remove all output files. Build only views_unittests. Run views_unittests.

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

Cr-Commit-Position: refs/heads/master@{#362370}
sigbjornf
Oilpan: fix build after r362358.
HashSet<String> is not an Oilpan heap object collection, hence no tracing
needed.

TBR=oilpan-reviews
BUG=447083
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#362366}
davve
Less type conversion for NinePieceImage painting
Avoid float -> int -> float conversion when passing through the
GraphicsContext layer, the ints are immediately converted back to
floats anyway in GraphicsContext::drawTiledImage().

No functional change expected as along as the position of the
NinePieceGrid is pixel-aligned, but bug is 66498 moving along and will
enable sub-pixel positioning of the background image geometries.

BUG=561519

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

Cr-Commit-Position: refs/heads/master@{#362350}
philipj
Drop [LegacyInterfaceTypeChecking] where trivial in Web Audio
Also drop redundant [RaisesException] in a few places.

BUG=561338

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

Cr-Commit-Position: refs/heads/master@{#362282}
philipj
Drop [LegacyInterfaceTypeChecking] for the Crypto API
BUG=561338

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

Cr-Commit-Position: refs/heads/master@{#362247}
philipj
Import web-platform-tests@7dda9a13574b33d55a73e995e3d1f1fbd4da0f2b
Using update-w3c-deps in Blink 2599bb8937ac95bf0f447960b4e61464aa640e49.

R=dpranke@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#362222}
philipj
Drop [LegacyInterfaceTypeChecking] for EventTarget's dispatchEvent()
This changes the exception for InvalidStateError to TypeError, which is
per spec and what Gecko does. IE and Safari throw a generic Error.

BUG=561338

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

Cr-Commit-Position: refs/heads/master@{#362153}
rune
Use LocalStyleChange for element cursor changes in SVG.
Propagating the change to the computed cursor property value through
inheritance is handled correctly when using LocalStyleChange. No need to
force a recalc of the whole subtree.

This is part of making sure non of our SubtreeStyleChanges rely on sibling
tree invalidations, and removing unnecessary use of SubtreeStyleChange, so
that we can make SubtreeStyleChange mean subtree only, and not have to
consider the sibling forest.

R=fs@opera.com
BUG=557440

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

Cr-Commit-Position: refs/heads/master@{#362140}
sigbjornf
Oilpan: improve adopt{Ref,Ptr}WillBeNoop(T*) static asserts.
R=haraken
BUG=420515

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

Cr-Commit-Position: refs/heads/master@{#362138}
philipj
Drop the [Immutable] IDL extended attribute (it is a no-op)
It was only used for WebKitCSSMatrix, and the proposed spec for that
does not use [Immutable]:
https://compat.spec.whatwg.org/#webkitcssmatrix-interface

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

Cr-Commit-Position: refs/heads/master@{#362137}
sigbjornf
GC plugin: have -Werror issue errors for inputs having only warnings.
If a translation unit contains only warnings, the GC plugin will issue
a warning diagnostic along with details/notes of the warnings encountered.

Have that warning be under the control of -Werror; the reason for not
having it as such up until now is that warnings have been far too plentiful
for the Blink codebase. This is no longer the case.

R=haraken,yutak,thakis
BUG=

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

Cr-Commit-Position: refs/heads/master@{#362128}
davve
Drop dependency on LayoutObject in fetch/
Move out code from ImageResource depending on LayoutObject. Instead
request pre-caching explictly at the three places that currently has
reason for doing so.

The pre-caching itself is moved to BitmapImage and made part of
Image::currentFrameKnownToBeOpaque as a special metadata mode.

BUG=559131

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

Cr-Commit-Position: refs/heads/master@{#362127}
sigbjornf
DocumentMarkerControllerTest: drop unnecessary caching of Document reference.
Tidying; no need to use a strong reference to the page's document here.

R=haraken
BUG=

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

Cr-Commit-Position: refs/heads/master@{#362125}
philipj
Drop [LegacyInterfaceTypeChecking] where trivial in core/
These are cases where passing null to the implementation would already
throw an exception, and so letting the bindings code do it is cleaner.
In a few cases this means that the implementation no longer throws any
exceptions.

For each method affected, it was verified using cs.chromium.org that
there are no internal calls where nullptr could be passed, the only
calls are from bindings.

BUG=561338

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

Cr-Commit-Position: refs/heads/master@{#362117}
sigbjornf
Oilpan: fix build after r362110.
TBR=oilpan-reviews
BUG=562986
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#362113}
sigbjornf
Revert of "[sql] Remove part of WebDatabase SQLite patch." (patchset #1 of https://codereview.chromium.org/1473963002 )
Reason for revert:

Unfortunately, this seems to have introduced flaky shutdown crashes on storage/websql/open-database-creation-callback.html across bots,

 http://test-results.appspot.com/dashboards/flakiness_dashboard.html#tests=storage%2Fwebsql%2Fopen-database-creation-callback.html

 http://build.chromium.org/p/chromium.webkit/builders/WebKit%20Linux%20Trusty/builds/5769

Original issue's description:
> [sql] Remove part of WebDatabase SQLite patch.
>
> findReusableFd() calls stat() on the filename to determine the inode
> and device to figure out if a previously-closed file descriptor can be
> reused.  Since WebDatabase file names are resolved by the browser,
> this stat() can never succeed in the renderer, thus there is no point
> to calling the function.
>
> This SQLite code path is an optimization to reduce close/open churn,
> it is not necessary for correct operation.
>
> BUG=none
>
> Review URL: https://codereview.chromium.org/1473963002
> Cr-Commit-Position: refs/heads/master@{#361825}

TBR=shess@chromium.org,michaeln@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=

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

Cr-Commit-Position: refs/heads/master@{#362112}
sigbjornf
Oilpan: initialize stack allocated raw pointers following r362079.
TBR=oilpan-reviews
BUG=499780
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#362109}
davve
Split shape related measurements from SVG1DOM counter
Create a SVG1DOMShapes UseCounter to measure all shape/graphics
element related SVG DOM functionality. The assumption we want to test
is that the shape related SVG DOM has really low usage.

BUG=415074

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

Cr-Commit-Position: refs/heads/master@{#362107}
rune
No need for SubtreeStyleChange for results attribute change.
The results attribute change causes appearance changes when changing
between negative and non-negative values. That is currently handled by a
lazyReattachIfAttached. The following SubtreeStyleChange should not have
an effect in that case.

The reattach condition was changed to not include the change between
different negative values.

R=tkent@chromium.org
BUG=557440

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

Cr-Commit-Position: refs/heads/master@{#362077}
rune
Removed unnecessary SubtreeStyleChange for incrementalAttr.
Changing the incremental attribute on input type=search does not affect
style unless there are attribute selectors for it which will be handled
other places.

R=tkent@chromium.org
BUG=557440

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

Cr-Commit-Position: refs/heads/master@{#362076}
sigbjornf
Remove mojo unit tests from WebKit Linux Oilpan bot
No need to test these for the time being.

BUG=
TBR=haraken
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#362068}
sigbjornf
Remove window_manager_unittests from WebKit Linux Oilpan bot
Another unknown.

BUG=
TBR=haraken
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#362058}
sigbjornf
Remove unknown unit tests targets from WebKit Linux Oilpan bot
Follow up on r362053 and remove some other unknown unittests targets
for this bot.

BUG=
TBR=haraken
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#362056}
philipj
Drop [LegacyInterfaceTypeChecking] where trivial in WebRTC
The extra type checking in the bindings of the MediaStream constructor
and RTCDataChannel's send() methods is actually not observable, because
there is type testing to determine which override to use that makes sure
those code paths aren't reached if the types aren't correct.

For each method affected, it was verified using cs.chromium.org that
there are no internal calls where nullptr could be passed, the only
calls were from bindings an unit tests.

BUG=561338

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

Cr-Commit-Position: refs/heads/master@{#362024}
philipj
Drop [LegacyInterfaceTypeChecking] for APIs that are not enabled by default
These are all on interfaces or members that are [RuntimeEnabled=*] for
a feature that is status=experimental or status=test.

An existing contextMenu test was updated, but for the other APIs there
was no test coverage, and it would be overkill to test that the bindings
generator is working for every new feature going forward.

BUG=561338

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

Cr-Commit-Position: refs/heads/master@{#362005}
davve
Count usage of #svgView(...) and plain SVG <view> targets
BUG=562099

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

Cr-Commit-Position: refs/heads/master@{#361993}
davve
Clean up border-image-style-none.html layout test
BUG=356802

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

Cr-Commit-Position: refs/heads/master@{#361991}
fs
Drop PathParsingMode argument to buildStringFromByteStream
Just always produce a String with whatever format the input is.

Also cleanup some related code, and expose SVGPath from SVGPathElement
rather than the SVGPathByteStream.

BUG=467592

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

Cr-Commit-Position: refs/heads/master@{#361988}
davve
Add render-side manager for MediaSession
RendererMediaSessionManager is responsible for storing all
user-created media sessions and keeping track for id allocation for
those.

BUG=497735

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

Cr-Commit-Position: refs/heads/master@{#361973}
davve
Split paint server related measurements from SVG1DOM counter
Create a SVG1DOMPaintServer UseCounter to measure all paint server
related SVG DOM functionality. The assumption we want to test is that
the paint server related SVG DOM has really low usage.

BUG=415074

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

Cr-Commit-Position: refs/heads/master@{#361963}
philipj
Add a use counter for Attr.prototype.cloneNode()
This is being measured as requested in a spec discussion:
https://github.com/whatwg/dom/issues/102#issuecomment-158833267

To avoid making a observable change to Attr.prototype, measure this
internally. This risks including internal uses, but there appear to be
none. All calls were checked and they seem to be for either parent or
child nodes of some kind, and Attr cannot be a parent or child.

Also, a deprecation message was added to see if it would be triggered
unexpectedly on any tests, but it was only emitted for tests that
actually clone attributes, as expected.

Drive-by: Drop an unused ShadowRoot::cloneNode() that was missed in
https://codereview.chromium.org/1482433003

BUG=305105

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

Cr-Commit-Position: refs/heads/master@{#361932}
fs
XP baselines refresh after crrev.com/361886
Did not quite pick everything up on the first attempt.

TBR=fmalita@chromium.org
NOTRY=true
BUG=467592

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

Cr-Commit-Position: refs/heads/master@{#361893}
davve
Rename imageSizeForLayoutObject() to imageSize()
No need to pass the layout object anymore. It only uses the layout
object for knowing whether to respect image orientation or not. We
might as well pass that explicitly.

BUG=559131

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

Cr-Commit-Position: refs/heads/master@{#361892}
fs
Restore TestExpectations rules disabled by crrev.com/361873
TBR=fmalita@chromium.org
NOTRY=true
BUG=467592

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

Cr-Commit-Position: refs/heads/master@{#361888}
sigbjornf
Sync OilpanExpectations for plugin tests.
Three plugin tests that no longer time out on the Mac
Oilpan bot -- last two having already been removed
(https://codereview.chromium.org/1319473007) as tests.

R=haraken
BUG=515250
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#361882}
fs
Stop normalizing path data for layout tree text output
BUG=467592

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

Cr-Commit-Position: refs/heads/master@{#361873}
rune
Clear link element sheet before clearing ownerNode.
clearOwnerNode synchronously updates the list of active stylesheets, and
if the m_sheet member of HTMLLinkElement is set, it is considered to be
an active stylesheet. If it is later added to the StyleResolver, it will
crash when ownerNode and ownerDocument are null.

This was already fixed a long time ago for StyleElement in [1].

[1] https://codereview.chromium.org/13508006

R=dstockwell@chromium.org
BUG=426959

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

Cr-Commit-Position: refs/heads/master@{#361867}
philipj
Sync cloneNode() IDL with the spec
All internal callers pass an argument, so the default value can be in
the IDL only.

BUG=460722

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

Cr-Commit-Position: refs/heads/master@{#361856}
sigbjornf
Oilpan: tidy up unsafe heap pointer reference following r361300.
R=dcheng
BUG=

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

Cr-Commit-Position: refs/heads/master@{#361852}
sigbjornf
Oilpan: fix build after r361838.
TBR=oilpan-reviews, dcheng
BUG=
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#361843}
mstensho
Jump to the next outer column when an inner column is too short.
If an inner multicol ends up near the bottom in a column in an outer multicol
container, we get inner columns that are shorter in the first row than in
subsequent rows. In such cases it may be necessary to break past all inner
columns in the first row, so that we push the content all the way to the next
row (and thus to the next outer column), in order to fit unbreakable content
(such as lines or unbreakable blocks).

BUG=447718
R=leviw@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#361769}
mstensho
Document early bail in contentWasLaidOut() better.
R=leviw@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#361717}
sigbjornf
Oilpan: hide persisted plugin object before disposing.
When clearing out the persisted plugin object, hide the object before
going ahead with the disposal. This mirrors what will happen non-Oilpan.

R=haraken
BUG=561473

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

Cr-Commit-Position: refs/heads/master@{#361665}
sigbjornf
If Oilpan is enabled, warn of raw heap pointer fields by default.
It is unsafe to keep fields with raw pointers into the Oilpan heap, as
such untraced references risk going stale. With potentially undesirable
consequences.

Now that we've addressed and handled all such untraced references as part
of Blink's transition to Oilpan, it is time to enable the clang GC plugin
warning for such raw pointer uses.

It shouldn't represent a major imposition to developers to handle such
raw pointer uses correctly, but for now we will only emit a warning and
not an error.

R=haraken
BUG=515524

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

Cr-Commit-Position: refs/heads/master@{#361656}
lstorset
Earlier, the script looked for dirs named 'out' or 'out_*'.
Recently it started looking for 'out' following by an alphanumeric word
boundary. Python considers underscores as alphanumeric, so this
unfortunately broke the 'out_*' pattern.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#361655}
philipj
update-w3c-deps import using blink 5636fefe1d743cc2a8af65f78eaeed4b98f0012b:
imported csswg-test@7cfea4d5ba33861b0b1a6839c27090bc504a169f
imported web-platform-tests@5f8361dcef1a7c80b61d6319f7b510fa431f9a47

R=dpranke@chromium.org,kojii@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#361653}
sigbjornf
Oilpan: fix build after r361631.
TBR=oilpan-reviews
BUG=554293
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#361642}
davve
Avoid RefPtr churn
This is a speculative fix for 560890, but seems like it might be a
good idea anyway. We have a reference to the thing having a
reference. No need to add another reference on top of that.

In the process drop a null check in StyleFetchedImageSet::image(),
ImageResource::image always returns an Image object. If nothing else
the Image::nullImage().

BUG=560890

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

Cr-Commit-Position: refs/heads/master@{#361640}
sigbjornf
Split up leak detector into two stages for better leak reporting.
The leak detector clears out resources along with issuing a sequence of GCs
before taking object census. It then counting up resources that are left and
reporting these as leaking.

With Oilpan enabled, RenderViewTest needs to carefully orchestrate its shutdown
to reliably not report the frame(s) attached to the view as leaking. (With Oilpan
enabled, frames will delayed'ly release resources upon frame close()ing requiring
a follow-on GC to clear out those resources.)

Accommodate that by splitting out the leak detector into two -- with RenderViewTest
injecting the clearing of its view in between those.

R=haraken, jochen, hajimehoshi
BUG=561293

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

Cr-Commit-Position: refs/heads/master@{#361638}
mstensho
Add myself to third_party/WebKit/LayoutTests/printing/ WATCHLIST
TBR=leviw@chromium.org
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#361632}
rune
Use invalidation sets for :in-range and :out-of-range.
Gets rid of a SubtreeStyleChange which relies on sibling tree recalcs.

The changes in expectations for video-mute-repaint.html and
video-unmute-repaint.html are due to the following facts:

* We used to do SubtreeStyleChange for an input whose value changed.
* The video controls have input elements in the UA shadow which are
  modified when the volume is changed.
* Doing the recalc of the input means calling Element::recalcStyle on the
  ancestor chain, which includes the video element, just to reach the
  descendants which need to be recalculated.
* HTMLMediaElement has a didRecalcStyle, which will call updateFromElement
  for LayoutVideo, which in turn does an unconditional
  setShouldDoFullPaintInvalidation.
* Since the whole SubtreeStyleChange -> recalc is gone for the mentioned
  tests, the paint invalidation for LayoutVideo is gone, hence the test
  expectation changes.

R=tkent@chromium.org
BUG=557440

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

Cr-Commit-Position: refs/heads/master@{#361601}
philipj
Make [TypeChecking=Interface] the default
Add [LegacyInterfaceTypeChecking] as needed to ensure that there are no
changes to the generated code. It was added to the members wherever
possible, but in a few cases it was necessary to keep at the interface
level. In all but one of these are cases it is because the constructor
would otherwise change. The remaining case is FontFaceSet, where
setlike<FontFace> results in generated has(), add() and delete() methods
which would otherwise change.

90 instances of [LegacyInterfaceTypeChecking] were added, and 206
instances of [TypeChecking=Interface] were removed, in source/ and
modules/ combined.

In bindings/tests/, most tests that were previously for
[TypeChecking=Interface] were changed to instead test
[LegacyInterfaceTypeChecking], as that is now the special case.

BUG=462561

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

Cr-Commit-Position: refs/heads/master@{#361599}
mstensho
Look inside inner nested multicols to calculate minimum space shortage.
This is needed in order to make sure that the column balancer gives us as short
outer columns as possible. Otherwise we risk not finding the absolute minimum
space shortage (and thus over-stretch) (or, even worse, not be able to find any
shortage at all).

BUG=447718
R=leviw@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#361501}
davve
Add note about sysroot not working with icecc
Or is it the other way around...

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

Cr-Commit-Position: refs/heads/master@{#361389}
fs
Introduce SVGPathQuery to hold SVG path query methods
Rename SVGPathTraversalStateBuilder.{cpp,h} to SVGPathQuery.{cpp,h}, and
similarly rename the class itself. Move the query methods in
SVGPathUtilities (getSVGPathSegAtLengthFromSVGPathByteStream,
getTotalLengthOfSVGPathByteStream, getPointAtLengthOfSVGPathByteStream)
to that class, shortening their names in the process.
Open-code the SVGPathParser driver to allow the general SVGPathConsumer
interface to be simplified - incrementPathSegmentCount and
continueConsuming are only used for path queries.

BUG=467592

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

Cr-Commit-Position: refs/heads/master@{#361351}
philipj
Sync the URL constructor with the spec
https://url.spec.whatwg.org/#api

This changes the generated code, but ought not be observable, as any
call to `new URL(x, urlObject)` will now instead behaves as
`new URL(x, urlObject.toString())`.

BUG=460722

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

Cr-Commit-Position: refs/heads/master@{#361342}
fs
SVGPathUtilities tidying
Rename buildSVGPathByteStreamFromString to buildByteStreamFromString to
be more consistent with other functions (buildStringFromByteStream and
buildPathFromByteStream). Also drop the PathParsingMode argument, since
it's always UnalteredParsing (and it's unlikely we'll need to build
normalized byte streams ATM.)

Make buildStringFromByteStream return the resulting String instead of
using an out-parameter. Tidies up call-sites and makes for slightly
smaller code.

BUG=467592

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

Cr-Commit-Position: refs/heads/master@{#361338}
philipj
Add [TypeChecking=Interface] to the V8Path2D interface
This affects the generated code of the constructor, which will now throw
a TypeError if "parameter 1 is not of type 'Path2D'."

However, this code path is unreachable, because there's a type check
(V8Path2D::hasInstance()) to determine that this form of the constructor
should be used.

Promoting [TypeChecking=Interface] to the interface level will make it
possible to make [TypeChecking=Interface] the default without changing
the generated code for this interface.

BUG=462561

Review URL: https://codereview.chromium.org/1471563002

Cr-Commit-Position: refs/heads/master@{#361317}
philipj
Make addEventListener/removeEventListener arguments non-optional
Intent to Implement and Ship:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/3rsQQJvhY8k/P2cAFq3hAwAJ

BUG=353484

Review URL: https://codereview.chromium.org/1461993002

Cr-Commit-Position: refs/heads/master@{#361316}
mstensho
Record space shortage that prevented an object from fitting in one column.
The breakability of the object doesn't matter here. The space shortage that
prevented an object from fitting in one column may very well be the lowest
space shortage that we'll ever find. So always record it, to avoid
over-stretching columns.

BUG=559133
R=leviw@chromium.org

Review URL: https://codereview.chromium.org/1465193002

Cr-Commit-Position: refs/heads/master@{#361232}
philipj
Remove AttributeCollection's findIndex(Attr*) by using QualifiedName
The internal Attribute and AttributeCollection need not know anything
about the web-exposed Attr.

Since Attr::qualifiedName() is not just a trivial getter, calling that
outside of the loop is probably a good idea anyway.

Review URL: https://codereview.chromium.org/1467143004

Cr-Commit-Position: refs/heads/master@{#361221}
fs
Expose the SVG path normalizer in SVGPathParser.h
Rename the internal NormalizingConsumer to SVGPathNormalizer and move
the class declaration to SVGPathParser.h. This will allow simplifying
the "path processor" (SVGPathParser) a bit in later CLs.
Also modify the normalizer so that it normalizes into a new
PathSegmentData, to make it more "stackable" and reusable.

BUG=467592

Review URL: https://codereview.chromium.org/1472853005

Cr-Commit-Position: refs/heads/master@{#361199}
davve
Split filter related measurements from SVG1DOM counter
Create a SVG1DOMFilter UseCounter to measure all filter related SVG
DOM functionality. The assumption we want to test is that the filter
related SVG DOM has really low usage.

From a quick test it would shave off 90kb of the binary if we could
remove it. That's only counting binding code and there is a good
chance number-optional-number related functionality can be removed
too, if these interfaces can be removed.

BUG=415074

Review URL: https://codereview.chromium.org/1472773002

Cr-Commit-Position: refs/heads/master@{#361181}
sigbjornf
Enable webaudio unit tests iff ENABLE(WEB_AUDIO).
R=tkent
BUG=

Review URL: https://codereview.chromium.org/1470873002

Cr-Commit-Position: refs/heads/master@{#361171}
fs
SVGPath object "mutability" cleanup
Move addToSVGPathByteStream to SVGPath.cpp (the only place using it),
rename it to addPathByteStreams. Move the "regular" blending out into a
helper(blendPathByteStreams), and eliminate the redundant copy. Make the
functions more "functional" (return the result.)

Add a (private) setter for byte-stream data and use that to ensure
invalidation of the cached path. Also add an SVGPath::create(...)
accepting a SVGPathByteStream and use that in PathSVGInterpolation.

Inline mutableByteStream into the remaining user.

Review URL: https://codereview.chromium.org/1460253002

Cr-Commit-Position: refs/heads/master@{#361128}
rune
Remove extraneous SubtreeStyleChange for min/maxlength changes.
Validation already takes care of :valid/:invalid changes through
invalidation sets. This reduces the number of elements being recalculated
and gets rid of a SubtreeStyleChange which relies on sibling tree recalcs.

R=tkent@chromium.org
BUG=557440

Review URL: https://codereview.chromium.org/1458363003

Cr-Commit-Position: refs/heads/master@{#361123}
rune
Use invalidation sets for visited link updates.
We did use invalidation sets when adding/removing href from an anchor tag,
while the code that notifies that the visited state of a given url has
changed, use SubtreeStyleChange. This change gets rid of SubtreeStyleChange
which relies on sibling tree recalcs.

R=tkent@chromium.org
BUG=557440

Review URL: https://codereview.chromium.org/1459063004

Cr-Commit-Position: refs/heads/master@{#361121}
davve
Update comments regarding image caching
While attempting to remove the layoutObject parameter the following
observations were made:

 * The decoding forced by BitmapImage::imageForCurrentFrame will be
   deferred so the comment in the header may be removed.

 * BitmapImage::currentFrameKnownToBeOpaque() conservatively returns
   false for uncached images, not true.

 * Since decoding is deferred, there is no guarantee that the
   opaqueness metadata is available after the imageForCurrentFrame
   call has returned. It may increase the chance though, depending on
   image decoder for the particular image.

NOTRY=true
BUG=559131

Review URL: https://codereview.chromium.org/1454373005

Cr-Commit-Position: refs/heads/master@{#361094}
mstensho
Add marginBeforeIfFloating() to LayoutBlockFlow.
Floats' margins need special attention for pagination, because they are not to
be eaten by page or column boundaries.

Clamp strut to >= 0 in LayoutBlockFlow::setPaginationStrutPropagatedFromChild()
instead of doing it (poorly) in calculateStrutForPropagation().

Removed calculateStrutForPropagation(), because there was hardly anything left
there now (and this lets us make marginBeforeIfFloating() private). This
function also turned out not to be universally usable, since we were already
calculating the strut on our own in adjustLinePositionForPagination() in one
case.

R=leviw@chromium.org

Review URL: https://codereview.chromium.org/1460203003

Cr-Commit-Position: refs/heads/master@{#361084}
mstensho
When balancing columns, we must check inner multicols for unbreakable content.
No multicol container should suggest to initially use a column height less than
the height of the tallest piece of unbreakable content inside.

TL;DR some related cleanup.

Introduce the term tallestUnbreakableLogicalHeight in favor of
minimumColumnLogicalHeight, as the latter could easily be confused with initial
column height; the height found by InitialColumnHeightFinder, which is also
sometimes referred to as initial minimal column height. Furthermore, there's
already a concept of *maximum* column logical height in fragmentainer groups,
which is derived from such things as CSS max-height. Since max-height actually
trumps the height of the tallest piece of unbreakable content in multicol
(while in CSS, min-height wins over max-height), it was just too confusing to
keep using "minimum column height" for this.

This change also makes it necessary to modify the containing column set when
calculating the initial column height for fragmentainer groups, so this part
kind of had to be moved from the const method calculateColumnHeight(). There
was already code that walked around that method when calculating the column
height, so being even more of a misnomer than before, it was renamed to
rebalanceColumnHeightIfNeeded().

BUG=447718
R=leviw@chromium.org

Review URL: https://codereview.chromium.org/1461923005

Cr-Commit-Position: refs/heads/master@{#361082}
sigbjornf
Add unit test for non-leftmost GC mixin instance.
Verify that deriving from a USING_GARBAGE_COLLECTED_MIXIN() annotated
class is traced as expected.

R=haraken
BUG=

Review URL: https://codereview.chromium.org/1465083002

Cr-Commit-Position: refs/heads/master@{#361072}
sigbjornf
Oilpan: move BaseChooserOnlyDateAndTimeInputType to the heap.
Move this !ENABLE(INPUT_MULTIPLE_FIELDS_UI) object to the Oilpan heap,
where it belongs as it derives from the on-heap BaseDateAndTimeInputType
class.

At the same time, turn DateTimeChooserClient into a GC mixin.

R=haraken
BUG=553613

Review URL: https://codereview.chromium.org/1466113002

Cr-Commit-Position: refs/heads/master@{#361071}
sigbjornf
Oilpan: trace ColorChooserPopupUIController::m_chromeClient
R=haraken
BUG=553613

Review URL: https://codereview.chromium.org/1442543003

Cr-Commit-Position: refs/heads/master@{#361043}
philipj
Remove another trace of [TypeChecking=Unrestricted]
This was overlooked in https://codereview.chromium.org/971783002

BUG=354298
R=jl@opera.com

Review URL: https://codereview.chromium.org/1465003002

Cr-Commit-Position: refs/heads/master@{#361042}
sigbjornf
More regular Platform implementations in unit tests (reland.)
R=haraken,jbroman
BUG=

Review URL: https://codereview.chromium.org/1456873003

Cr-Commit-Position: refs/heads/master@{#361030}
davve
Simplify ImageResource::canRender()
Assume that neither image rotation nor scale can affect the image size
emptiness. This makes it easier to further simplify
imageSizeForLayoutObject later.

BUG=559131

Review URL: https://codereview.chromium.org/1463793002

Cr-Commit-Position: refs/heads/master@{#361025}
sigbjornf
More regular Platform implementations in unit tests.
R=haraken,jbroman
BUG=

Review URL: https://codereview.chromium.org/1456873003

Cr-Commit-Position: refs/heads/master@{#361019}
philipj
Add event name to bare removeEventListener(listener) calls
This mistake was possible because removeEventListener's arguments are
all optional, and these calls would throw exceptions if the argument
were non-optional.

Since these code paths supposedly current work, removing the event
listeners cannot be critical, but do it anyway as was originally
intended.

BUG=353484

Review URL: https://codereview.chromium.org/1463763002

Cr-Commit-Position: refs/heads/master@{#360949}
davve
Remove redundant IntrinsicSize argument
IntrinsicSize is the default. IntrinsicCorrectedToDPR is the uncommon
one. Leaving it out makes it obvious nothing special is requested
here, just the normal image size.

BUG=559131

Review URL: https://codereview.chromium.org/1468473002

Cr-Commit-Position: refs/heads/master@{#360893}
mstensho
A line that ends up naturally in the next column may need to propagate a strut.
Even if the line itself didn't need a strut, we may have to calculate and
propagate one to the block, or we risk violating orphan requirements or
breaking in the middle of the top border, padding or (in case it's a float)
margin.

R=leviw@chromium.org

Review URL: https://codereview.chromium.org/1462913002

Cr-Commit-Position: refs/heads/master@{#360798}
davve
Support fragment URLs for more kinds of SVG images
This patch adds support for SVG fragment URLs in CSS backgrounds,
video poster images, image inputs, content property and svg:image
scenarios. It does so by storing fragment URLs for each
SVGImageForContainer and propgates this URL to SVGImage when drawing.

BUG=128055

Review URL: https://codereview.chromium.org/1458083002

Cr-Commit-Position: refs/heads/master@{#360787}
sigbjornf
More regular Platform implementations in unit tests.
R=haraken,jbroman
BUG=

Review URL: https://codereview.chromium.org/1456873003

Cr-Commit-Position: refs/heads/master@{#360763}
sigbjornf
Avoid implicit size_t conversions on setting HeapObjectHeader::m_encoded.
Cannot assume that sizeof(size_t) matches that of uint32_t.

R=
BUG=

Review URL: https://codereview.chromium.org/1459933002

Cr-Commit-Position: refs/heads/master@{#360703}
mostynb
avoid 'may be used uninitialized' warnings in stack_sampling_profiler_unittest.cc
Without this patch, some toolchains may trigger this warning:
../../base/profiler/stack_sampling_profiler_unittest.cc:275:17: error: 'library' may be used uninitialized in this function [-Werror=maybe-uninitialized]

BUG=545051

Review URL: https://codereview.chromium.org/1459033003

Cr-Commit-Position: refs/heads/master@{#360647}
mostynb
unbreak the no-webrtc build
Followup to https://codereview.chromium.org/1427003009

The third_party/libjingle/libjingle.gyp:libjingle_webrtc target is defined
inside an enable_webrtc==1 condition, so it can only be depended on inside
a similar condition.

BUG=547158

Review URL: https://codereview.chromium.org/1457793004

Cr-Commit-Position: refs/heads/master@{#360646}
fs
Move application of filter effect boundaries to a helper
Add FilterEffect::applyEffectBoundaries and use that to replace the
three chunks that does the same thing.
Drop a redundant null-check in FETile::createImageFilter.

Review URL: https://codereview.chromium.org/1463513002

Cr-Commit-Position: refs/heads/master@{#360625}
sigbjornf
More regular Platform implementations in unit tests.
R=haraken,jbroman
BUG=

Review URL: https://codereview.chromium.org/1456873003

Cr-Commit-Position: refs/heads/master@{#360583}
fs
Remove unused FilterOperation* includes
Review URL: https://codereview.chromium.org/1459853002

Cr-Commit-Position: refs/heads/master@{#360572}
philipj
Drop [TreatNullAs=NullString] for Document.cookie
https://html.spec.whatwg.org/#document

After this change, setting document.cookie to null will stringify to
"null", so it's simply like setting a cookie by that name. This matches
Firefox Nightly and Edge.

BUG=497307

Review URL: https://codereview.chromium.org/1458753003

Cr-Commit-Position: refs/heads/master@{#360567}
davve
Wrap SVGImage for container during paint
Before this patch, one SVGImageForContainer object is saved in
ImageResource for each corresponding use of SVGImage.

<img style="width: 1000px" src="image.svg">
...
<img style="width: 500px" src="image.svg">

This example would give one ImageResource (for image.svg) and within
it two SVGImageForContainer, one for each <img>. SVGImageForContainer
contains the unzoomed container size along with the zoom level,
indexed on the layout object of the container in
SVGImageFor*Container*.

There were at least three problems with this approach:

1. It's racy. setContainerSizeForLayoutObject is called sometimes from
   layout(), sometimes during paint(). Users of APIs such as
   imageForLayoutObject or imageSizeForLayoutObject that depend on
   setContainerSizeForLayoutObject would get different results
   depending on when they are called. Basically the only "safe" time
   to call these methods are right before paint.

2. It limits the number of associations between layout object and
   SVGImage to one. Consider an element/layout object having one
   SVGImage as content and another SVGImage as background. The
   container size for those two SVGImages in this case isn't
   necessarily the same and strictly speaking we should need two
   SVGImageForContainer objects. Only one SVGImageForContainer can be
   stored per layout object.

3. It breaks layering. ImageResource lives in fetch and having fetch/
   depend on svg code is undesirable. DEPS for fetch/ states
   "core/fetch/ shouldn't depend on anything else in core/".

After this patch, these three problems have been
addressed. SVGImageForContainer is now only allocated when it's
needed, to be passed through the GraphicsContext layer as a wrapper to
get the correct size and zoom level to avoid pixelated rasterization.

There are risks with this patch. In some cases code may rely on having
the container size saved inside ImageResource.cpp. However, such code
is most often already brittle and unreliable due to (1) above.

One quirk is the added BackgroundImageGeometry::imageContainerSize()
containing the tile size before 'background-repeat: round' has been
applied. Before this patch, this size was the one kept for the
respective container in ImageResource (since
setContainerSizeForLayoutObject were called before tile size
adjustments for background-repeat: round). It turns out this is
important to get the stretching correct, i.e. makes the underlying
drawing code ignore the intrinsic ratio of the background
image. svg/as-background-image/background-repeat.html exercises this
behavior.

BUG=128055, 306222

Review URL: https://codereview.chromium.org/1427943002

Cr-Commit-Position: refs/heads/master@{#360558}
mstensho
Don't set bogus height on new fragmentainer groups initially.
This essentially made it impossible to support more than two column rows in
auto-height multicol containers.

When a new fragmentainer group is created, resetColumnHeight() is called right
*before* the fragmentainer group is inserted into the array, so we'd trick
ourselves into believing that height always was non-auto, because the
heightIsAuto() method on MultiColumnFragmentainerGroup would require the
fragmentainer group to be the last one in the array to count as auto.

We could fix the order in which things are done, or just make the whole thing a
bit more robust, which this CL aims to do.

BUG=447718
R=leviw@chromium.org

Review URL: https://codereview.chromium.org/1424913003

Cr-Commit-Position: refs/heads/master@{#360540}
rune
Use invalidation sets for :unresolved.
Gets rid of SubtreeStyleChange which relies on sibling tree recalcs.

Added TODO with issue for :default which just doesn't trigger any updates
from the DOM side.

R=hayato@chromium.org,ericwilligers@chromium.org
BUG=557440

Review URL: https://codereview.chromium.org/1461653002

Cr-Commit-Position: refs/heads/master@{#360537}
sigbjornf
Avoid unnecessary wtf/text/WTFString.h includes in platform/heap/
Oilpan header files are included across most of Blink, so tidy up various
downstream code that implicitly assumed WTFString.h's offerings to be
in scope.

R=haraken
BUG=

Review URL: https://codereview.chromium.org/1460523004

Cr-Commit-Position: refs/heads/master@{#360525}
rune
Use invalidation sets for :-webkit-drag.
Gets rid of SubtreeStyleChange which relies on sibling tree recalcs.

R=tkent@chromium.org,ericwilligers@chromium.org
BUG=557440

Review URL: https://codereview.chromium.org/1459553002

Cr-Commit-Position: refs/heads/master@{#360465}
jsokol
Initialize member variables of ui::ScrollEvent
With current implementation of GetScrollOffsets on Windows, none values
are changed and remain garbage. To make sure none of this will lead to
crash, just initialize values with zeros.

BUG=

Review URL: https://codereview.chromium.org/1461643002

Cr-Commit-Position: refs/heads/master@{#360389}
mstensho
Disable stretch-to-viewport quirk for multicol.
We don't want to stretch the height of BODY to that of the viewport if BODY is
inside a multicol container. There should be no need for this quirk in
multicol, and even if we had wanted to do something like that, what used to be
there was utterly wrong, since we'd end up with the viewport height divided by
the number of columns, which is just unpredictable silliness that nobody wants.

Un-inline the quirks mode part of stretchesToViewport() into
stretchesToViewportInQuirksMode() and check the condition that's most unlikely
to be true first, so that we can bail early.

R=leviw@chromium.org

Review URL: https://codereview.chromium.org/1461623002

Cr-Commit-Position: refs/heads/master@{#360388}
sigbjornf
Oilpan: move ServiceWorkerGlobalScopeProxy to the heap.
The object maintains two references to heap objects, so by having it
also be on the Oilpan heap, these refs can be correctly traced & handled.

R=haraken
BUG=553613

Review URL: https://codereview.chromium.org/1448353002

Cr-Commit-Position: refs/heads/master@{#360381}
davve
Add UseCounter for border-image overriding border-widths
According to the specification, if one border-style is 'none' the
corresponding border-width should be zero and thus border-image-width
resolve to zero. No border-image can be drawn at zero-width border.

WebKit implemented an old version of the css border specification for
border-image and does not reset border-widths to zero for border-style
'none' when there is a border-image.

Add a use counter to get data on how many views that rely on this
behavior.

BUG=356802

Review URL: https://codereview.chromium.org/1455673002

Cr-Commit-Position: refs/heads/master@{#360357}
rune
Use invalidation sets for :read-only and :read-write.
Gets rid of SubtreeStyleChange which relies on sibling tree recalcs.

R=tkent@chromium.org,ericwilligers@chromium.org
BUG=557440

Review URL: https://codereview.chromium.org/1454003002

Cr-Commit-Position: refs/heads/master@{#360298}
mostynb
include what you use: errno.h and string.h in media/
Add missing errno.h includes for errno and string.h includes for
strerror.

TBR=qinmin

Review URL: https://codereview.chromium.org/1429383002

Cr-Commit-Position: refs/heads/master@{#360276}
mostynb
don't try to adjust oom score with the suid sandbox if there is no such binary
BUG=312380

Review URL: https://codereview.chromium.org/1452403003

Cr-Commit-Position: refs/heads/master@{#360262}
sigbjornf
Oilpan: support GC event tracing following r360126.
TBR=oilpan-reviews,jbroman,mkwst@chromium.org
BUG=none

Review URL: https://codereview.chromium.org/1460463002

Cr-Commit-Position: refs/heads/master@{#360170}
philipj
Remove navigator.getStorageUpdates()
Intent to Deprecate and Remove:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/ak1kVjiX9T4/mo1rqcyQAQAJ

navigator.yieldForStorageUpdates() will be removed from the spec:
https://github.com/whatwg/html/pull/342

BUG=465255

Review URL: https://codereview.chromium.org/1439973005

Cr-Commit-Position: refs/heads/master@{#360140}
sigbjornf
Deflake http/tests/misc/script-sync-slow-scripts-onerror.html
Cope with sync scripts failing to load in any order, testing instead
their collective outcome when finishing up.

R=mkwst
BUG=555052

Review URL: https://codereview.chromium.org/1449413002

Cr-Commit-Position: refs/heads/master@{#360123}
sigbjornf
Oilpan: tidy up CSSCustomFontData::m_fontFaceSource back ref somewhat.
R=haraken
BUG=553613

Review URL: https://codereview.chromium.org/1439033002

Cr-Commit-Position: refs/heads/master@{#360062}
sigbjornf
Oilpan: move WorkerInspectorController's frontend channel to the heap.
Move along this WorkerInspectorController-owned object to the heap also,
allowing it to keep a traced reference to its worker global scope.

R=haraken
BUG=553613

Review URL: https://codereview.chromium.org/1449963002

Cr-Commit-Position: refs/heads/master@{#360052}
sigbjornf
KeyframeEffectTest: avoid keeping unnecessary Document reference.
Avoid introducing a Persistent<> to a Document for these unit tests,
thereby not keeping an untraced heap reference with Oilpan.

R=haraken
BUG=553613

Review URL: https://codereview.chromium.org/1452613002

Cr-Commit-Position: refs/heads/master@{#360029}
sigbjornf
WebGeolocationController: improve handling of bare GeolocationController*
While GeolocationController is still being transitioned to Oilpan,
introduce an intermediary abstraction that allows WebGeolocationController
to keep a WebPrivatePtr<>. Thereby letting us correctly trace the
GeolocationController it wraps.

R=haraken,tkent
BUG=553613

Review URL: https://codereview.chromium.org/1444333002

Cr-Commit-Position: refs/heads/master@{#360027}
sigbjornf
Oilpan: account for DocumentThreadableLoader::m_document back ref.
R=haraken
BUG=553613

Review URL: https://codereview.chromium.org/1435263002

Cr-Commit-Position: refs/heads/master@{#360025}
sigbjornf
Oilpan: account for DevToolsEmulator reference from WebSettingsImpl.
WebSettingsImpl and DevToolsEmulator are both owned by WebViewImpl;
let the former keep an untracked reference to the latter.

R=haraken
BUG=553613

Review URL: https://codereview.chromium.org/1437003005

Cr-Commit-Position: refs/heads/master@{#359854}
sigbjornf
Oilpan: tidy up InspectorState weak references.
R=haraken
BUG=553613

Review URL: https://codereview.chromium.org/1446973002

Cr-Commit-Position: refs/heads/master@{#359842}
sigbjornf
Oilpan: tidier ContentSecurityPolicy back refs from auxillary CSP objects.
R=haraken
BUG=553613

Review URL: https://codereview.chromium.org/1436103004

Cr-Commit-Position: refs/heads/master@{#359831}
sigbjornf
Oilpan: move HTMLParserScheduler to the heap.
The benefit being that the back reference it keeps to
HTMLDocumentParser can be traced per normal.

R=kouhei,haraken
BUG=553613

Review URL: https://codereview.chromium.org/1438193002

Cr-Commit-Position: refs/heads/master@{#359824}
sigbjornf
Oilpan: move InspectedFrames to the heap.
R=haraken
BUG=553613

Review URL: https://codereview.chromium.org/1434383002

Cr-Commit-Position: refs/heads/master@{#359811}
sigbjornf
Oilpan: move NavigatorContentUtilsClients to the heap.
Done so as to allow the client implementation keep a Member reference to
its WebLocalFrameImpl.

R=haraken
BUG=553613

Review URL: https://codereview.chromium.org/1441083002

Cr-Commit-Position: refs/heads/master@{#359775}
sigbjornf
Oilpan: correctly track MediaControlsTest's MediaControls reference.
R=haraken
BUG=553613

Review URL: https://codereview.chromium.org/1442153002

Cr-Commit-Position: refs/heads/master@{#359753}
sigbjornf
Oilpan: track ScriptStateForTesting's ExecutionContext reference better.
R=haraken
BUG=553613

Review URL: https://codereview.chromium.org/1445913002

Cr-Commit-Position: refs/heads/master@{#359750}
sigbjornf
Oilpan: tidy up ChromeClientImplTest's ChromeClientImpl ref.
R=haraken
BUG=553613

Review URL: https://codereview.chromium.org/1442843004

Cr-Commit-Position: refs/heads/master@{#359748}
mharanczyk
Properly call string fill constructor in win shell integration unittest.
Before it was always creating string of 49 size (value of L'1') filled
with random character based of size of app id string. Found it just
because size after my local changes resulted in inserting forbidden
space ' ' character.

Review URL: https://codereview.chromium.org/1439323003

Cr-Commit-Position: refs/heads/master@{#359744}
sigbjornf
Oilpan: move WebPluginLoadObserver to the heap.
R=haraken
BUG=553613

Review URL: https://codereview.chromium.org/1442643003

Cr-Commit-Position: refs/heads/master@{#359556}
sigbjornf
Oilpan: tidy up InspectorResourceContentLoader's ResourceClient handling.
R=haraken
BUG=553613

Review URL: https://codereview.chromium.org/1436723005

Cr-Commit-Position: refs/heads/master@{#359553}
sigbjornf
Oilpan: account for RetainedDOMInfo::m_root temporary Node reference.
R=haraken
BUG=553613

Review URL: https://codereview.chromium.org/1440003002

Cr-Commit-Position: refs/heads/master@{#359540}
sigbjornf
Oilpan: turn MuteConsoleScope into a stack allocated object.
Do so in order to have its embedded agent referenced be handled as
required.

R=keishi
BUG=553613

Review URL: https://codereview.chromium.org/1442953002

Cr-Commit-Position: refs/heads/master@{#359538}
sigbjornf
Oilpan: fix build after r359531.
~ScriptWrappable is only provided !OILPAN.

R=haraken
BUG=520391
NOTRY=true
NOPRESUBMIT=true
NOTREECHECKS=true

Review URL: https://codereview.chromium.org/1441303002

Cr-Commit-Position: refs/heads/master@{#359533}
tmoniuszko
Fix dependencies on policy_component_test_support
BUG=

Review URL: https://codereview.chromium.org/1321013007

Cr-Commit-Position: refs/heads/master@{#359529}
sigbjornf
Oilpan: move DateTimeChooser to the heap.
Done so as to allow DateTimeChooserImpl::m_chromeClient to be correctly
traced, but consistent to have this on the heap alongside the other
'chooser' object, ColorChooser.

R=haraken
BUG=553613

Review URL: https://codereview.chromium.org/1432243003

Cr-Commit-Position: refs/heads/master@{#359321}
sigbjornf
Oilpan: account for V8NPObject::rootObject bare pointer.
R=haraken
BUG=553613

Review URL: https://codereview.chromium.org/1436173002

Cr-Commit-Position: refs/heads/master@{#359319}
sigbjornf
Oilpan: add missing tracing of WebLocalFrameImpls from inspector agents.
R=haraken
BUG=553613

Review URL: https://codereview.chromium.org/1434243002

Cr-Commit-Position: refs/heads/master@{#359314}
sigbjornf
Oilpan: add missing tracing of Page::m_chromeClient.
R=haraken
BUG=553613

Review URL: https://codereview.chromium.org/1436143002

Cr-Commit-Position: refs/heads/master@{#359310}
sigbjornf
Oilpan: add reqd tracing of ImportedStyleSheetClients.
R=haraken
BUG=553613

Review URL: https://codereview.chromium.org/1439023002

Cr-Commit-Position: refs/heads/master@{#359309}
sigbjornf
Oilpan: add missing tracing of PopupMenuImpl::m_chromeClient.
R=haraken
BUG=553613

Review URL: https://codereview.chromium.org/1434093003

Cr-Commit-Position: refs/heads/master@{#359306}
sigbjornf
Oilpan: add missing tracing of SVGSMILElement condition.
R=haraken
BUG=553613

Review URL: https://codereview.chromium.org/1438823003

Cr-Commit-Position: refs/heads/master@{#359301}
tsniatowski
Run gn_unittests on Mac bots
With Linux already there and Windows added recently this should make
gn_unittests run on all relevant platforms in CQ.

R=dpranke@chromium.org
BUG=549254

Review URL: https://codereview.chromium.org/1437863002

Cr-Commit-Position: refs/heads/master@{#359290}
sigbjornf
Oilpan: add missing LocalFrame::m_pluginElements annotation.
TBR=oilpan-reviews
BUG=553613
NOTRY=true

Review URL: https://codereview.chromium.org/1438143002

Cr-Commit-Position: refs/heads/master@{#359274}
sigbjornf
Oilpan: turn Frame::m_client into the Member it is.
R=haraken
BUG=553613

Review URL: https://codereview.chromium.org/1437973002

Cr-Commit-Position: refs/heads/master@{#359210}
sigbjornf
Oilpan: handle WorkerObjectProxy::m_executionContext ref better.
The proxy object outlives its ExecutionContext reference; exempt it
from any GC plugin checks.

R=
BUG=553613

Review URL: https://codereview.chromium.org/1438823002

Cr-Commit-Position: refs/heads/master@{#359162}
sigbjornf
Do not attempt an Oilpan memory pressure GC if nested.
Nested GCs aren't supported, so only trigger an urgent memory pressure
GC if we're not sweeping up after another.

R=haraken
BUG=

Review URL: https://codereview.chromium.org/1438733002

Cr-Commit-Position: refs/heads/master@{#359127}
sigbjornf
Rename IsAllowOnlyInlineAllocation<T> to AllowsOnlyPlacementNew<T>.
R=haraken
BUG=

Review URL: https://codereview.chromium.org/1433983002

Cr-Commit-Position: refs/heads/master@{#359126}
mostynb
include what you use: errno.h and string.h in content/
Adding some missing errno.h includes for errno and
string.h for strerror in content/

Review URL: https://codereview.chromium.org/1417483018

Cr-Commit-Position: refs/heads/master@{#359110}
davve
Avoid truncation to int when setting background-position coordinates
This error was part of the original
https://bugs.webkit.org/show_bug.cgi?id=103440 implementation of
background-position but then only for non-repeating backgrounds. When
also used for repeating backgrounds through
https://codereview.chromium.org/1287293002 it has been noticed that
the background-position was sometimes a pixel off when zooming.

BUG=535504

Review URL: https://codereview.chromium.org/1431103005

Cr-Commit-Position: refs/heads/master@{#359101}
sigbjornf
Oilpan: add temporary plugin ignore exemption for DataRef<T>::RefPtr<T>.
Until the clang Blink GC plugin has been updated to include r359074,
the GC plugin will erroneously complain if DataRef<T> is used with a
RefCountedGarbageCollected<T> class type. Add a GC_PLUGIN_IGNORE()
to temporarily prevent such false errors from being reported.

R=
BUG=553613

Review URL: https://codereview.chromium.org/1440553002

Cr-Commit-Position: refs/heads/master@{#359094}
sigbjornf
MemoryCacheTest: tidy up task's Resource reference.
R=haraken
BUG=503485

Review URL: https://codereview.chromium.org/1437823003

Cr-Commit-Position: refs/heads/master@{#359084}
sigbjornf
MockImageResourceClient: tidy up Resource reference.
R=haraken
BUG=503485

Review URL: https://codereview.chromium.org/1432213002

Cr-Commit-Position: refs/heads/master@{#359083}
sigbjornf
Oilpan: move NetworkResourcesData to the heap.
Do so in order to properly handle the Resource pointers that its
ResourceData keeps.

R=haraken
BUG=340522

Review URL: https://codereview.chromium.org/1436793002

Cr-Commit-Position: refs/heads/master@{#359082}
sigbjornf
InternalResourcePtr: allowed only as stack allocated.
R=haraken
BUG=503485

Review URL: https://codereview.chromium.org/1434903002

Cr-Commit-Position: refs/heads/master@{#359079}
sigbjornf
Oilpan: tidy up AutoplayExperimentHelper.
Have this part object handle its HTMLMediaElement heap reference properly.

R=haraken
BUG=553613

Review URL: https://codereview.chromium.org/1436783002

Cr-Commit-Position: refs/heads/master@{#359076}
sigbjornf
GC plugin: RefPtr<T> is legal if T is RefCountedGC-derived.
Allow RefPtr<T> uses for classes that derive from
RefCountedGarbageCollected<T>.

R=
BUG=553613

Review URL: https://codereview.chromium.org/1433883003

Cr-Commit-Position: refs/heads/master@{#359074}
mostynb
simplify the is_desktop_linux default value expression
Let's remove the redundant '&& current_is != "chromeos"' part of the
is_desktop_linux default value expression.

BUG=554006

Review URL: https://codereview.chromium.org/1433033002

Cr-Commit-Position: refs/heads/master@{#358946}
mostynb
include what you use: errno.h in exec_process.cc
Add missing errno.h inclusion - this is less likely to
break uncommon toolchains (eg uClibc).  And while we're
at it, merge posix includes into else case for an
#ifdef OS_WIN block to match the code that uses these
includes.

R=brettw@chromium.org,tfarina@chromium.org

Review URL: https://codereview.chromium.org/1421293008

Cr-Commit-Position: refs/heads/master@{#358944}
sigbjornf
dispatchTouchEvents(): mark local class as stack allocated.
The Blink GC plugin checks requires that the Oilpan heap references contained
within the "changed touches" values are properly handled during GCs. They're
all stack allocated, so mark the local class as STACK_ALLOCATED(). MSVC
presents a problem in carrying that through (see comment), so lift out the
local class from the dispatchTouchEvents() method at the same time.

R=haraken
BUG=553700

Review URL: https://codereview.chromium.org/1419423004

Cr-Commit-Position: refs/heads/master@{#358861}
mostynb
include what you use: errno.h and string.h in net/
Adding some missing errno.h and string.h includes.

Review URL: https://codereview.chromium.org/1427143003

Cr-Commit-Position: refs/heads/master@{#358844}
davve
Reland of Make LayoutImageResource::image() parameter explicit (patchset #1 id:1 of https://codereview.chromium.org/1431973002/ )
Reason for revert:
Revert the revert. It looks like "Enable slimming paint synchronized painting" was the culprit this time. Relanding.

Original issue's description:
> Revert of Make LayoutImageResource::image() parameter explicit (patchset #2 id:20001 of https://codereview.chromium.org/1411693006/ )
>
> Reason for revert:
> Seems to have caused 553045
>
> Original issue's description:
> > Make LayoutImageResource::image() parameter explicit
> >
> > It makes the code more explicit and easier to read. No functional
> > change expected.
> >
> > BUG=551419
> >
> > Committed: https://crrev.com/3059b983258e55aeacef6e0b04bdd35a72436d3b
> > Cr-Commit-Position: refs/heads/master@{#358287}
>
> TBR=fs@opera.com
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=551419
>
> Committed: https://crrev.com/20fa2832b2650a8654bfd8226561046760ebbfc9
> Cr-Commit-Position: refs/heads/master@{#358551}

TBR=fs@opera.com
BUG=551419

Review URL: https://codereview.chromium.org/1431193004

Cr-Commit-Position: refs/heads/master@{#358818}
sigbjornf
Oilpan: annotate weak ScrollableArea* refs with GC_PLUGIN_IGNORE()s.
ScrollAnimators keep a back reference to their owning ScrollableArea;
annotate these weak references with GC_PLUGIN_IGNORE() to inform
the GC plugin checks that these references have been checked & accounted
for.

R=haraken
BUG=509911,553613

Review URL: https://codereview.chromium.org/1427973008

Cr-Commit-Position: refs/heads/master@{#358747}
philipj
Remove unused UseCounter features
Review URL: https://codereview.chromium.org/1419823012

Cr-Commit-Position: refs/heads/master@{#358629}
mostynb
include what you use: errno.h in ui/ozone/
Add missing errno.h include.

Review URL: https://codereview.chromium.org/1417503013

Cr-Commit-Position: refs/heads/master@{#358589}
sigbjornf
Avoid data races on initializing GCScope.
Fully initialize the stack-allocated GCScope object before having it
enter a safe point, and attempt to have all the attached threads do
the same ("parking" them.)

By arranging for all updates to the GCScope object to happen before
safe points are entered, we avoid overlapping r/w access of the
thread stack regions that marking will proceed to conservatively scan
for heap references. Such overlaps can happen if two threads concurrently
attempt to initiate a GC.

R=haraken
BUG=527338

Review URL: https://codereview.chromium.org/1411643006

Cr-Commit-Position: refs/heads/master@{#358573}
mostynb
include what you use: errno.h in tools/android/
Add missing errno.h includes.

BUG=134180

Review URL: https://codereview.chromium.org/1424943009

Cr-Commit-Position: refs/heads/master@{#358563}
sigbjornf
ScriptRunner::notifyScriptLoadError(): fix broken sanity check.
Asserting for the presence of 'scriptLoader' in the pending script loader
Deque cannot use the iterator to do so if the Deque is mutated at the
same time; last loader will be confused with end(). Do better.

Regression introduced by r357778.

R=haraken
BUG=552871

Review URL: https://codereview.chromium.org/1413363012

Cr-Commit-Position: refs/heads/master@{#358556}
davve
Avoid using ImageResource->imageSize() to get the marker size
In cases when LayoutListMarker represents an image it has a StyleImage
to determine the size of the the marker. Prior to this patch the
computed size is saved back to the StyleImage for later use. This
should be unnecessary since the size can be computed (or saved
locally) when it's actually needed.

When looking closer at one may notice that the zoom level is stored
inside SVGImageForContainer so that SVGImageForContainer::size()
actually returns the size _including zoom_. When LayoutListMarker
asked for the image size and provided zoom, the zoom level was applied
once more resulting in double zoom. The added test exposes this.

As part of 551419, the aim it to get rid of
ImageResource::setContainerSizeForLayoutObject and friends (storing
SVG image specific data inside ImageResource) and this is a step in
that direction.

BUG=551419, 551808

Review URL: https://codereview.chromium.org/1433503003

Cr-Commit-Position: refs/heads/master@{#358552}
davve
Revert of Make LayoutImageResource::image() parameter explicit (patchset #2 id:20001 of https://codereview.chromium.org/1411693006/ )
Reason for revert:
Seems to have caused 553045

Original issue's description:
> Make LayoutImageResource::image() parameter explicit
>
> It makes the code more explicit and easier to read. No functional
> change expected.
>
> BUG=551419
>
> Committed: https://crrev.com/3059b983258e55aeacef6e0b04bdd35a72436d3b
> Cr-Commit-Position: refs/heads/master@{#358287}

TBR=fs@opera.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=551419

Review URL: https://codereview.chromium.org/1431973002

Cr-Commit-Position: refs/heads/master@{#358551}
mostynb
include what you use: errno.h in components/
Adding some missing errno.h includes for errno in components/

NOPRESUBMIT=TRUE

Review URL: https://codereview.chromium.org/1424273004

Cr-Commit-Position: refs/heads/master@{#358522}
sigbjornf
Sync test expectations following r358425.
TBR=peria@chromium.org,szager1@chromium.org
BUG=552456
NOTRY=true

Review URL: https://codereview.chromium.org/1423593007

Cr-Commit-Position: refs/heads/master@{#358521}
mostynb
include what you use: errno.h and string.h in base/
Adding some missing errno.h includes for errno and
string.h for strerror in base/

Review URL: https://codereview.chromium.org/1434533004

Cr-Commit-Position: refs/heads/master@{#358477}
mostynb
include what you use: errno.h in sandbox/
Adding some missing errno.h includes for errno in sandbox/

Review URL: https://codereview.chromium.org/1422253004

Cr-Commit-Position: refs/heads/master@{#358474}
mostynb
include what you use: errno.h in v4l2_webcam.cc
Add missing errno.h include in v4l2_webcam.cc

Review URL: https://codereview.chromium.org/1430183002

Cr-Commit-Position: refs/heads/master@{#358468}
mostynb
include what you use: errno.h and string.h in ipc_channel_posix_unittest.cc
Add missing errno.h include for errno and string.h include for strerror.

Review URL: https://codereview.chromium.org/1409833013

Cr-Commit-Position: refs/heads/master@{#358467}
mostynb
include what you use: errno.h in chrome/
Adding some missing errno.h includes for errno in chrome/

Review URL: https://codereview.chromium.org/1413373010

Cr-Commit-Position: refs/heads/master@{#358463}
mostynb
include what you use: errno.h in chromecast/
Adding some missing errno.h includes for errno in chromecast/

Review URL: https://codereview.chromium.org/1429373002

Cr-Commit-Position: refs/heads/master@{#358454}
mstensho
Fix off-by-one (or off-by-one-sixtyfourth) error when checking what a column can hold.
R=leviw@chromium.org

Review URL: https://codereview.chromium.org/1428063009

Cr-Commit-Position: refs/heads/master@{#358447}
sigbjornf
Add missing prefinalizer registration after r358299.
TBR=oilpan-reviews
BUG=541338

Review URL: https://codereview.chromium.org/1427023007

Cr-Commit-Position: refs/heads/master@{#358425}
mostynb
telemetry_chrome_test_base should depend on dump_syms for the host toolset specifically
On Linux, dump_syms is only defined for the host toolset.
Without this patch, linux gcc cross-compile builds fail
when running gyp, ever since
https://codereview.chromium.org/1419143006/ landed.

Clang builds are unaffected, because they don't have
separate host and target toolsets.

BUG=507796,552436
CQ_EXTRA_TRYBOTS=tryserver.chromium.perf:linux_perf_bisect;tryserver.chromium.perf:mac_10_10_perf_bisect;tryserver.chromium.perf:android_nexus5_perf_bisect

Review URL: https://codereview.chromium.org/1422703008

Cr-Commit-Position: refs/heads/master@{#358406}
fs
Rebaseline a few SVG tests for XP
 svg/dom/length-list-parser.html
 svg/transforms/text-with-pattern-with-svg-transform.svg
 svg/hixie/perf/006.xml

TBR=szager@chromium.org
BUG=552433,467464

Review URL: https://codereview.chromium.org/1413183008

Cr-Commit-Position: refs/heads/master@{#358405}
philipj
Deprecate SVGElement.offsetParent/offsetTop/offsetLeft/offsetWidth/offsetHeight
Intent to Deprecate:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/JlAEmQpWMWA/63acYbmdDwAJ

Simply using [Deprecate] is unfortunately not supported.

Tests are updated to avoid the attributes to the extent possible.

BUG=463116

Review URL: https://codereview.chromium.org/1405283006

Cr-Commit-Position: refs/heads/master@{#358333}
mstensho
Manually revert "Fold out-of-flow objects into anonymous blocks when removing children"
Also revert "Auto-rebaseline for r357886"

First attempt at reverting failed: https://codereview.chromium.org/1419053004/

Reason for revert:
Causing use-after-free crashes in entire rendering pipeline, reverting.

Original issue's description:
> Fold out-of-flow objects into anonymous blocks when removing children
>
> Sometimes when we remove a child we end up with a float or out-of-flow object beside
> an anonymous block. When that happens, fold the float/out-of-flow object into the
> anonymous box as that is where it would have lived if they were siblings in the
> first place.
>
> BUG=322039
>
> Committed: https://crrev.com/44402d152cd0bb788db3136ab08c3c76ec348cd1
> Cr-Commit-Position: refs/heads/master@{#357886}

TBR=robhogan@gmail.com
BUG=322039

Review URL: https://codereview.chromium.org/1411543009

Cr-Commit-Position: refs/heads/master@{#358293}
davve
Make LayoutImageResource::image() parameter explicit
It makes the code more explicit and easier to read. No functional
change expected.

BUG=551419

Review URL: https://codereview.chromium.org/1411693006

Cr-Commit-Position: refs/heads/master@{#358287}
sigbjornf
Disable eager tracing for thread-terminated GCs.
The Oilpan marking phase enables and sets up a stack limit
that the eager tracing calls should not exceed while visiting the live
object graph. The marking phase is single threaded. The stack limit
is reset and eager marking disabled once the marking phase has
completed -- thread local weak processing (and its slight amount of
tracing) is run with it disabled.

Do not enable such an eager marking stack limit for the GCs that are run
for a thread's heap when the thread is terminated, as this risks conflicting
with any thread-local weak processing that is still underway. The slight
performance gain that eager marking brings is not an issue for such GCs.

R=haraken
BUG=420515

Review URL: https://codereview.chromium.org/1429273002

Cr-Commit-Position: refs/heads/master@{#358273}
mstensho
Don't propagate pagination struts to flow threads.
We'd lose the strut that way, since there's nobody to pick it up from a flow
thread.

R=leviw@chromium.org

Review URL: https://codereview.chromium.org/1419703006

Cr-Commit-Position: refs/heads/master@{#358195}
mstensho
Calculate minimum column height after layout.
This moves some multicol specific code out from LayoutBlock and
LayoutBlockFlow. More importantly, though, is that once we add optimizations
to skip subtrees during multicol layout, collecting this information during
layout isn't going to work.

R=leviw@chromium.org

Review URL: https://codereview.chromium.org/1406973008

Cr-Commit-Position: refs/heads/master@{#358171}
sigbjornf
Remove unwanted eager finalization of some mediastream objects.
Adjust the use of EAGERLY_FINALIZE() for mediastream objects:

 - MediaStreamComponent will be eagerly finalized and notify its
   MediaStreamTrack observers. Consequently, MediaStreamTrack cannot
   and need not be eagerly finalized.
 - MediaStream no longer need to eagerly unregister as a client from
   its MediaStreamDescriptor member.

Not doing so results in mutual dependencies between finalizers run by
eagerly finalized objects, causing use-after-frees.

R=haraken
BUG=496535

Review URL: https://codereview.chromium.org/1421373007

Cr-Commit-Position: refs/heads/master@{#358062}
mostynb
ozone: evdev: Add missing errno.h #include in event_converter_evdev.cc
Review URL: https://codereview.chromium.org/1419813009

Cr-Commit-Position: refs/heads/master@{#358057}
mostynb
include what you use: errno.h in process_memory_dump.cc
Followup to https://codereview.chromium.org/1398163003 - include errno.h
since we use errno in process_memory_dump.cc.

BUG=542503

Review URL: https://codereview.chromium.org/1417743004

Cr-Commit-Position: refs/heads/master@{#358024}
fs
Replace open-coded toSVG<type> with DEFINE_SVG_PROPERTY_TYPE_CASTS
Also replace some includes of SVGAnimated*.h with SVG*.h where the
latter will suffice. (* = {Integer,Number,Property})
Relocate the DEFINE_SVG_PROPERTY_TYPE_CASTS macro to SVGProperty.h.

Review URL: https://codereview.chromium.org/1412123015

Cr-Commit-Position: refs/heads/master@{#357783}
sigbjornf
Upon load failure, remove sync script from pending queue.
If a script element is to be loaded synchronously and executed in order,
it's queued for execution before loading. Should that load fail, the
immediate execution of the script,

  https://html.spec.whatwg.org/#execute-the-script-block

should only result in an error event being dispatched.

Implementation-wise, along with signalling error, the failed script must also
be removed from the internal in-order pending execution queue. We're done with
(not) executing the script and failure to remove it will cause subsequent
processing of its pending queue to see the script as having failed
to load and re-dispatch an error event.

R=tkent
BUG=503077

Review URL: https://codereview.chromium.org/1424703007

Cr-Commit-Position: refs/heads/master@{#357778}
sigbjornf
Oilpan: fix build after r357748.
TBR=oilpan-reviews
BUG=465126
NOTRY=true

Review URL: https://codereview.chromium.org/1422463008

Cr-Commit-Position: refs/heads/master@{#357776}
davve
Clean out TestExpectations for SVG in <object> tests
The timeouts and fails should be addressed now by splitting tests and
slightly fuzzier matching.

BUG=392640

Review URL: https://codereview.chromium.org/1415573008

Cr-Commit-Position: refs/heads/master@{#357642}
sigbjornf
Overflow-proof the computation of stack region end.
Add asserts + be more careful about type conversions when
computing the stack limit pointer value.

R=haraken
BUG=none

Review URL: https://codereview.chromium.org/1425243004

Cr-Commit-Position: refs/heads/master@{#357569}
mstensho
Introduce LayoutBox::paginationBreakability().
The engine actually cares about three states of column / page breakability
inside an object:

1. Breakable. Look inside for possible break points.
2. Unbreakable. Breaking inside would pretty much guarantee ugly layout.
3. Preferable not to break (break-inside:avoid).

LayoutBox::isUnsplittableForPagination() returned true for #2, and false for #1
and #3.

The only one that cares about #3 at the moment is adjustForUnsplittableChild()
in LayoutBlockFlow, which handled #3 on its own after checking with
isUnsplittableForPagination(), but we're soon going to have to care about it at
other places too, so let's introduce a method that can tell us.

R=leviw@chromium.org

Review URL: https://codereview.chromium.org/1426673005

Cr-Commit-Position: refs/heads/master@{#357559}
fs
Use a converter to resolve style for -webkit-filter and backdrop-filter
Gets rid of the custom builders with a simple refactor of the
FilterOperationResolver.

BUG=109224

Review URL: https://codereview.chromium.org/1407123011

Cr-Commit-Position: refs/heads/master@{#357540}
sigbjornf
Oilpan: add missing pointer initialization after r357529.
TBR=oilpan-reviews
BUG=542401
NOTRY=true

Review URL: https://codereview.chromium.org/1431683004

Cr-Commit-Position: refs/heads/master@{#357534}
mstensho
Always lay out the flow thread when the multicol container is laid out.
This makes it possible to put an auto-height multicol inside another
auto-height multicol. It goes like this: first we balance the inner multicol
without knowing the height of the outer one. When we know the height of the
inner one, we can balance the outer one, and re-lay out.
markForPaginationRelayoutIfNeeded() will make sure that the inner multicol
container is marked for layout in that pass, and here it is crucial that we
enter its flow thread too, since that's where the contents are (so that we
realize that the outer multicol is height-restricted, so that we need to insert
an additional row (fragmentainer group) for the inner one).

This change triggers an additional flow thread layout pass in some cases, which
exposed crbug.com/534751 in two layout tests, so I modified the tests somewhat
to avoid triggering the additional layout pass altogether.

Explanation for the extra layout pass: When initially laying out a document,
and the document doesn't specify whether scrollbars should be shown or not,
Blink assumes that there will be a vertical scrollbar. If we find out after
layout that there's no need for it, it is removed, followed by another layout
pass, because removing the scrollbar gave the viewport a new width.

When an object changes its width, all children will be marked for layout. This
also happens if a child's width is fixed (which admittedly really seems
unnecessary).

Example:
<!DOCTYPE html>
<html>
    <body>
        <div id="outer" style="width:100px;">
            <div id="inner"></div>

When the initial vertical scrollbar is removed, the viewport width changes, so
HTML and BODY need to be laid out again, since their widths are auto.
Additionally, we lay out #outer, because it's a child of something that got a
new width (even if the child has a fixed width). But at least we won't re-lay
out #inner, since its parent doesn't change its width.

The tests that had to be modified had a fixed-width multicol container child of
BODY, which got re-laid out when the initial scrollbar disappeared. With this
CL, its child flow thread would also be re-laid out, which would expose
crbug.com/534751 , since laying out a paginated table twice is one way of
triggering that bug.

BUG=447718
R=leviw@chromium.org

Review URL: https://codereview.chromium.org/1429903003

Cr-Commit-Position: refs/heads/master@{#357393}
philipj
Remove HTMLFrameElement.prototype.getSVGDocument()
Intent to Deprecate and Remove:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/_9iRam2UKBI/2sM9_G7HDQAJ

BUG=549323

Review URL: https://codereview.chromium.org/1424313004

Cr-Commit-Position: refs/heads/master@{#357368}
fs
Reduce footprint of FilterEffectBuilder::build
Since we know the resulting size of the sepia(...) and grayscale(...)
matrices, allocate the space for them up front, and then use
uncheckedAppend(...) to reduce the code bloat from regular append(...).
This strikes a balance between using float[20] (entirely unchecked but
less code) and what's currently there.

Move the setup of the matrices to helper functions to reduce the
"weight" (cognitive load) of these two cases in the switch somewhat.

Code size is reduced by ~1.35kB on x86-64/Linux.

Review URL: https://codereview.chromium.org/1406403008

Cr-Commit-Position: refs/heads/master@{#357365}
sigbjornf
Oilpan: fix build after r357332.
TBR=oilpan-reviews
BUG=none
NOTRY=true

Review URL: https://codereview.chromium.org/1414703006

Cr-Commit-Position: refs/heads/master@{#357357}
davve
Split tests again because of timeouts on debug bots
This time down to 36 tests per file. Also add a meta tag to signal
that the tests may take longer time.

BUG=392640

Review URL: https://codereview.chromium.org/1431563003

Cr-Commit-Position: refs/heads/master@{#357344}
mstensho
Deduct pagination struts when calculating initial column height.
Even if height is auto, nested multicol sets a column height in the initial
layout pass (set to the remaining height in the outer multicol container; this
all takes place in resetColumnHeight()), which enables pagination in the first
layout pass, and may thus insert pagination struts. We need to exclude those
when calculating the initial balanced column height estimate. The reason why we
set this height before layout in this case, is that we need to figure out how
many fragmentainer groups (rows) we need.

In the future, we may also consider setting a height before layout for
non-nested auto-height multicol containers, as an optimiation, since that may
reduce the number of layout passes in some cases.

Cleaned up the code in MultiColumnFragmentainerGroup::resetColumnHeight(). No
behavioral changes there, and the TODO is adressed with this CL.

R=leviw@chromium.org
BUG=447718

Review URL: https://codereview.chromium.org/1420713003

Cr-Commit-Position: refs/heads/master@{#357338}
tsniatowski
Fix //tools/gn/example on Linux: missing current_os and related vars
The example GN project's BUILDCONIG.gn needs to set {target,current}_{os,cpu)
variables like the Chromium BUILDCONFIG file does. Otherwise some conditionals
don't work like they do in Chromium and the project doesn't link on Linux,
which is needlessly confusing.

To test, `gn gen out' in //tools/gn/example, and then `ninja -C out'.

R=brettw@chromium.org
BUG=

Review URL: https://codereview.chromium.org/1429073002

Cr-Commit-Position: refs/heads/master@{#357329}
sigbjornf
Sync remaining allocation size on in-place backing store recycling.
When a heap's current allocation point can simply be moved after the tail
object allocation is either freed, expanded or shrunk, make sure the
snapshot'ed m_lastRemainingAllocationSize is then always adjusted at the
same time.

Not doing so risks later re-syncs of m_lastRemaininingAllocationSize to
be invoked on a "bigger" heap than last time, i.e.,
m_lastRemainingAllocationSize < m_remainingAllocationSize, which is an
unexpected state to be in. Simply avoid that state from ever being entered,
by synchronously updating m_lastRemainingAllocationSize.

setRemainingAllocationSize(size_t) handles this, along with updating the
overall heap allocation counts.

R=haraken
BUG=420515

Review URL: https://codereview.chromium.org/1424573003

Cr-Commit-Position: refs/heads/master@{#357292}
sigbjornf
Fix weak processing over cleared hash tables.
When a hash table of weak references is traced during the GC
marking phase, a weak callback is registered for processing after
that initial marking pass.

The hash table may be populated with entries at the time when
that weak callback is registered, but may end up being cleared
before the weak callback actually gets to run.

Account for that latter possibility by having the weak callback
being invoked first gracefully check if the backing table exists
before proceeding to process it.

R=haraken
BUG=549732
NOTRY=true

Review URL: https://codereview.chromium.org/1410373006

Cr-Commit-Position: refs/heads/master@{#357282}
mostynb
document COMPILER(GCC) and COMPILER(MSVC) a little better
Clang pretends to be gcc 4.4 by defining __GNUC__ and some related macros,
and therefore COMPILER(GCC) evaluates to 1 there.  To check for GCC
specifically, you need to check something like COMPILER(GCC) && !COMPILER(CLANG).

A similar situation happens with COMPILER(MSVC) in Clang when building for
windows (since Clang emulates MSVC there).

Review URL: https://codereview.chromium.org/1420613005

Cr-Commit-Position: refs/heads/master@{#357260}
tsniatowski
Fix Python imported modules depfile generation
Some Python scripts incorrectly reported no python module deps, for
example a manual run of build/android/gn/zip.py would create an empty
depfile (without even a build_utils.py entry).

GetPythonDependencies assumed that CHROMIUM_SRC is an absolute path,
turns out that depends on details of how build_utils.py is imported.
If it happened to be relative, all modules would be omitted from the
depfile as "system" modules, as they did not match CHROMIUM_SRC. Fix by
using DIR_SOURCE_ROOT which is absolute (and assert that it is).

R=cjhopman@chromium.org, agrieve@chromium.org
BUG=359249

Review URL: https://codereview.chromium.org/1412793012

Cr-Commit-Position: refs/heads/master@{#357246}
sigbjornf
Oilpan: insist on persisted plugin disposal upon clearing.
Follow up r355010 and arrange for persisted plugin widget disposal
when the plugin is completely detached and removed from the tree.

r355010 restricted disposal to not happen for persisted widgets
when re-attaching, but also ended up not disposing for the
fully-detached persistent plugin widget case.

Lacking those, widgets would end up being finalized without their
required dispose() having been called first.

R=haraken
BUG=544175

Review URL: https://codereview.chromium.org/1422503009

Cr-Commit-Position: refs/heads/master@{#357142}
davve
Remove stale comment
cachedImage->imageForLayoutObject() no longer returns
BitmapImages. The surrounding code is still correct since
cachedImage->imageForLayoutObject() may return a SVGImageForContainer
which does not propagate the correct filename extension.

NOTRY=true
BUG=128055

Review URL: https://codereview.chromium.org/1429803002

Cr-Commit-Position: refs/heads/master@{#357105}
tsniatowski
Run gn_unittests on Windows 7 bots
R=dpranke@chromium.org
BUG=549254

Review URL: https://codereview.chromium.org/1422333005

Cr-Commit-Position: refs/heads/master@{#357060}
sigbjornf
Oilpan: fix webkit unit tests following r356852.
TBR=oilpan-reviews
BUG=546729
NOTRY=true

Review URL: https://codereview.chromium.org/1428883002

Cr-Commit-Position: refs/heads/master@{#356958}
tsniatowski
Fix GN unittests on windows broken by abs-path change
Mixed up gen_dir and out_dir in one win-only unit test in a recent CL,
https://codereview.chromium.org/1420973003

R=brettw@chromium.org, andybons@chromium.org
BUG=

Review URL: https://codereview.chromium.org/1408793007

Cr-Commit-Position: refs/heads/master@{#356945}
sigbjornf
Oilpan: fix build after r356804.
TBR=oilpan-reviews
BUG=530436
NOTRY=true

Review URL: https://codereview.chromium.org/1430703002

Cr-Commit-Position: refs/heads/master@{#356827}
davve
Split <object> tests further to reduce timeout risk
BUG=392640

Review URL: https://codereview.chromium.org/1423093005

Cr-Commit-Position: refs/heads/master@{#356822}
philipj
Remove the named item getters on TextTrackList and TextTrackCueList
Intent to Deprecate and Remove:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/fuNdIeOnmTo/kT-R9dnFDAAJ

BUG=535475
R=fs@opera.com

Review URL: https://codereview.chromium.org/1418133011

Cr-Commit-Position: refs/heads/master@{#356809}
mstensho
Require spanners to have the multicol container as their nearest block formatting context.
The editor's draft [1] suggests that a column-span:all object needs to be in
the same block formatting context, so disallow column-span for everything else.
MSIE does the same. Gecko doesn't support spanners.

While this simplifies the code and gives us less to worry about (and it
actually fixes bug 529737, although that wasn't my main motivation here),
another reason to make this change is that we'd get assertion failures if we
put a spanner inside a scrollable flex item inside a flexbox inside a multicol
inside another flexbox. The reason why the assertion failures happen is the
LayoutBlock::finishDelayUpdateScrollInfo() mechanism, which may jump to some
arbitrary block in the subtree and lay it out directly. While that is bad on
its own, the multicol implementation should now at least be immune to damage
caused by that.

Removed some old tests that are now invalid, because they expected spanners to
be created inside scrollable containers. This no longer works, because
non-visible overflow implies a new block formatting context.

[1] https://drafts.csswg.org/css-multicol/#column-span

BUG=529737
R=leviw@chromium.org

Review URL: https://codereview.chromium.org/1421423003

Cr-Commit-Position: refs/heads/master@{#356680}
sigbjornf
Sync Oilpan expectations for plugins/fullscreen-plugins-dont-reload.html
TBR=oilpan-reviews
BUG=544175
NOTRY=true

Review URL: https://codereview.chromium.org/1418613014

Cr-Commit-Position: refs/heads/master@{#356522}
sigbjornf
Precisely determine Windows thread stack size (reland)
The Thread Information Block (TIB)'s StackLimit records the end of
the committed area of the thread's stack reservation, hence it cannot be
used to determine the overall size of the reserved stack. Switch to
a VirtualQuery() lookup instead, but taking care to cache the result per
thread so as to avoid calling overhead.

R=haraken
BUG=546396

Review URL: https://codereview.chromium.org/1409243011

Cr-Commit-Position: refs/heads/master@{#356521}
davve
Disallow assigning a MediaSession after the resource has been selected
https://mediasession.spec.whatwg.org/#extensions-to-the-htmlmediaelement-interface

BUG=497735

Review URL: https://codereview.chromium.org/1420223002

Cr-Commit-Position: refs/heads/master@{#356299}
philipj
Move the Pointer Event extensions of GlobalEventHandlers to a new section
BUG=460722
R=rbyers@chromium.org

Review URL: https://codereview.chromium.org/1423973003

Cr-Commit-Position: refs/heads/master@{#356296}
sigbjornf
Precisely determine Windows thread stack size.
The Thread Information Block (TIB)'s StackLimit records the end of
the committed area of the thread's stack reservation, hence it cannot be
used to determine the overall size of the reserved stack. Switch to
a VirtualQuery() lookup instead, but taking care to cache the result per
thread so as to avoid calling overhead.

R=haraken
BUG=546396

Review URL: https://codereview.chromium.org/1409243011

Cr-Commit-Position: refs/heads/master@{#356287}
sigbjornf
Precisely determine Windows thread stack size.
The Thread Information Block (TIB)'s StackLimit records the end of
the committed area of the thread's stack reservation, hence it cannot be
used to determine the overall size of the reserved stack. Switch to
a VirtualQuery() lookup instead, but taking care to cache the result per
thread so as to avoid calling overhead.

R=haraken
BUG=546396

Review URL: https://codereview.chromium.org/1409243011

Cr-Commit-Position: refs/heads/master@{#356268}
mstensho
Even block flows with inline children must be examined when balancing columns.
Even if a block flow is marked as having only inline children, it may still
contain interesting floats that need to be paginated.

BUG=547024
R=leviw@chromium.org

Review URL: https://codereview.chromium.org/1421883002

Cr-Commit-Position: refs/heads/master@{#356262}
sigbjornf
Oilpan: fix build after r356253.
R=haraken
BUG=520496
NOTRY=true

Review URL: https://codereview.chromium.org/1423703006

Cr-Commit-Position: refs/heads/master@{#356258}
fs
Remove dead method SVGLength::blend
Likely dead since https://codereview.chromium.org/983103003

Review URL: https://codereview.chromium.org/1419423002

Cr-Commit-Position: refs/heads/master@{#356075}
fs
Remove SVGPathElement.pathSegList and related interfaces
This CL removes the SVGPathSegList collection of objects and interface:

  SVGPathSegList{,TearOff}
  SVGPathSeg*

and support classes such as SVGPathSegListBuilder and SVGPathSegListSource.

The SVGPathSegList class is renamed to SVGPath, and stripped of all it's
listiness - essentially reducing it to a SVGPathByteStream. SVGAnimatedPath
is updated to contain the new type.
A new specialization of SVGAnimatedProperty is added for properties that
don't have any associated tear-off type.

The SVGPathSeg.h header file which still contain various path segment
description data is renamed to SVGPathData.h.

All tests for SVGPathSeg* functionality are removed, interface tests are
updated to not include the removed interfaces and in one case the use of
the pathSegList is replaced with the string representation.

TBR=timvolodine@chromium.org
BUG=539385

Review URL: https://codereview.chromium.org/1416273002

Cr-Commit-Position: refs/heads/master@{#356063}
mstensho
Never paginate fixed-positioned objects.
They are supposed to be repeated on every page anyway. Not that we currently do
that, but there's still no need to paginate them. It can only do harm.

Added a flexbox test, which is what the bug report was about. This regressed
for flexbox (and other types of non-block-container blocks as well) with
https://codereview.chromium.org/1360753002 , but this has actually been broken
for ages for regular block containers, so I threw in a bonus test for that too.

BUG=535163
R=leviw@chromium.org

Review URL: https://codereview.chromium.org/1426443003

Cr-Commit-Position: refs/heads/master@{#356041}
rune
Remove unused m_src from FontFace class.
Review URL: https://codereview.chromium.org/1419883005

Cr-Commit-Position: refs/heads/master@{#356035}
sigbjornf
Sync test expectations following r355983.
TBR=oilpan-reviews
BUG=546559
NOTRY=true

Review URL: https://codereview.chromium.org/1426663002

Cr-Commit-Position: refs/heads/master@{#356019}
sigbjornf
Zero-initialize persistent heap vector inline backing buffers.
A persistent heap collection object is allocated off-heap,
along with its inlined buffer (if any.)

For heap-allocated backing buffers (inlined in a heap vector or
separate), the Oilpan allocator will provide a zero-initialized
chunk of memory to use. Consequently the invariant initially
holds that unused slots of the backing buffer are all zero initialized
-- something needed for precise tracing during GC marking

To have that invariant hold for the persistent heap vectors also,
we have to explicitly clear out the inline backing buffers on
(off-heap) allocation.

R=haraken
BUG=420515

Review URL: https://codereview.chromium.org/1410223006

Cr-Commit-Position: refs/heads/master@{#356014}
tsniatowski
Make sure abs-path gn labels have separate target_gen_dirs
Use gen/ABS_PATH/... for target_gen_dir of build files outside of the
source tree, to mimic obj/ABS_PATH that's used for object directories
for such build files.

Previously, all build files outside of the source tree would use
root_gen_dir (e.g. out/Default/gen) as target_gen_dir. This broke the
"target_gen_dir is unique between different BUILD.gn files" assumption,
causing strange behavior and "ninja: multiple targets generate ..."
warnings for users of absolute path BUILD.gn files outside of //.

BUG=445454
R=brettw@chromium.org

Review URL: https://codereview.chromium.org/1420973003

Cr-Commit-Position: refs/heads/master@{#356011}
sigbjornf
Oilpan: add missing RawPtr<> initialization following r355274.
TBR=oilpan-reviews
BUG=442163

Review URL: https://codereview.chromium.org/1423483006

Cr-Commit-Position: refs/heads/master@{#355983}
sigbjornf
Have NetworkStateNotifier keep untraced ExecutionContext observers.
NetworkStateNotifier keeps track of its observing ExecutionContexts;
following r355234 this is a persistent hash map of weak references
(with Oilpan.) As observers may live on any thread, the first thread
that registers would then create the persistent heap collection on its
heap. This is at odds with the lifetime of NetworkStateNotifier, and
as ExecutionContexts manually manage their observership, revert to using
a HashMap.

R=haraken
BUG=515524

Review URL: https://codereview.chromium.org/1409853007

Cr-Commit-Position: refs/heads/master@{#355970}
sigbjornf
Oilpan: fix build after r355906.
TBR=oilpan-reviews
BUG=475655
NOTRY=true

Review URL: https://codereview.chromium.org/1426553002

Cr-Commit-Position: refs/heads/master@{#355965}
mstensho
Bypass containing block size special-code for fixed-positioneds when printing.
Consulting FrameView during printing doesn't really provide reliable results,
since class might just know the size of what we have on the screen.

While the size of their containing block (i.e. the page) is now calculated
correctly when printing, note that fixed positioned objects are still not
repeated on every page as they should according to the spec; they are still
only printed on the first page. But at least with the correct size and
position now. :)

BUG=544797
R=leviw@chromium.org

Review URL: https://codereview.chromium.org/1411313004

Cr-Commit-Position: refs/heads/master@{#355893}
fs
Hoist some pre-condition checks out of SVGAngle/SVGEnumeration
This moves checking of values closer to the "DOM" part of the API.

Review URL: https://codereview.chromium.org/1412713004

Cr-Commit-Position: refs/heads/master@{#355862}
fs
Remove some dead code in SVG "mixins"
addSupportedAttributes() is no longer used (handled by the property
map). Ditto for SVGFitToViewBox::parseAttribute and
SVGTests::parseAttribute.
Also drop the Document& to SVGTests::isValid since it isn't used.

Review URL: https://codereview.chromium.org/1420263002

Cr-Commit-Position: refs/heads/master@{#355842}
mstensho
Manual rebaseline for r355760 https://codereview.chromium.org/1423643002
Re-mark some tests as crashing for Windows 10. Had to temporarily comment them
out to get the rebaselining working. Or at least so I think.

BUG=544794
TBR=leviw@chromium.org

Review URL: https://codereview.chromium.org/1419183002

Cr-Commit-Position: refs/heads/master@{#355772}
philipj
Clarify that a document().frame() access in HTMLMediaElement cannot be null
Access to document().frame() in HTMLMediaElement is always null-checked,
so use the existing frame variable to make it obvious here as well.

R=fs@opera.com

Review URL: https://codereview.chromium.org/1411883003

Cr-Commit-Position: refs/heads/master@{#355771}
davve
Introduce WebMediaSession
WebMediaSession is the API enabling web exposed MediaSession objects
to control platform implementations of media session related
functionality.

Implementation will begin with Android and other platforms will be
added later.

Re-land of https://codereview.chromium.org/1370453002/ with
https://code.google.com/p/chromium/issues/detail?id=546394 fixed.

BUG=497735, 546394

Review URL: https://codereview.chromium.org/1370453002

Cr-Commit-Position: refs/heads/master@{#355058}

Review URL: https://codereview.chromium.org/1415923003

Cr-Commit-Position: refs/heads/master@{#355766}
mstensho
Print absolutely positioned objects correctly when sized against the viewport.
Remove special code for printing from computeLogicalHeight() and
updateLogicalWidth() in LayoutView. The size of the containing block
established by the viewport should be equal to the size of the page, not the
size of the document.

Return the correct page size from LayoutView::layoutSize() instead of 0x0.
Special code is still needed here, because we cannot use FrameView to get the
page size (because the size of the FrameView corresponds to what we have on the
screen).

BUG=544794
R=leviw@chromium.org

Review URL: https://codereview.chromium.org/1423643002

Cr-Commit-Position: refs/heads/master@{#355760}
fs
Use PathSegmentData+SVGPath{Consumer,Source} in PathSVGInterpolation
Drive the generation of SVG paths using SVGPathParser, and use
SVGPathSource and SVGPathByteStreams to avoid using the SVGPathSeg*
interfaces which will be going away RSN.

BUG=539385

Review URL: https://codereview.chromium.org/1408143004

Cr-Commit-Position: refs/heads/master@{#355759}
sigbjornf
Oilpan: fix build after r355581.
TBR=oilpan-reviews
BUG=543685
NOTRY=true

Review URL: https://codereview.chromium.org/1421783002

Cr-Commit-Position: refs/heads/master@{#355645}
mstensho
Manual rebaseline for r355526 https://codereview.chromium.org/1413573004/
Re-mark some tests as crashing for Windows 10. Had to temporarily comment them
out to get the rebaselining working. Or at least so I think.

BUG=544786
TBR=leviw@chromium.org

Review URL: https://codereview.chromium.org/1418503007

Cr-Commit-Position: refs/heads/master@{#355616}
sigbjornf
Oilpan: fix build after r355578.
TBR=oilpan-reviews
BUG=447082
NOTRY=true

Review URL: https://codereview.chromium.org/1421553003

Cr-Commit-Position: refs/heads/master@{#355592}
mstensho
Once the flow thread needs layout, mark all column sets for layout as well.
We need this to make sure that overflow is updated. Laying out a column set is
very cheap anyway, since they never have children. Since we now do this, we can
remove a few setNeedsLayout calls scattered around the code.

BUG=540512
R=leviw@chromium.org

Review URL: https://codereview.chromium.org/1414193004

Cr-Commit-Position: refs/heads/master@{#355568}
bratell
Smaller initial DisplayItemList to use less memory.
The previous initial size of the DisplayItemList was very pessimistic
and used 10+ KB (64 * sizeof(BeginTransform3DDisplayItem)). On a page like
YouTube there were 50 of them in use so a total of half a MB.

Looking at usage patterns, 512 bytes seems to be enough in many cases
which would save most of that half MB (not all committed so the amount
of reduced RAM usage is in the 1-200 KB range).

BUG=538615

Review URL: https://codereview.chromium.org/1417533009

Cr-Commit-Position: refs/heads/master@{#355556}
mstensho
Set page height for printing tests.
Without this we'd fail to properly re-lay out the document when switching to
print layout, because LayoutView::pageLogicalHeight() would be 0, which
typically makes everyone believe that we're not paginated.

Added a layout tree dump test for this (found no other way of testing this).
Also have to rebaseline two existing tests, because the layout tree dump
changes. The pixel results are unaffected, though.

BUG=544786
R=leviw@chromium.org

Review URL: https://codereview.chromium.org/1413573004

Cr-Commit-Position: refs/heads/master@{#355526}
philipj
Measure usage of the HTMLFieldSetElement.elements element
This will likely be made an HTMLCollection in the spec:
https://github.com/whatwg/html/issues/200

Knowing the usage will give some clue about the risk of the change.

R=tkent@chromium.org

Review URL: https://codereview.chromium.org/1415873002

Cr-Commit-Position: refs/heads/master@{#355522}
davve
Revert of Introduce WebMediaSession (patchset #13 id:240001 of https://codereview.chromium.org/1370453002/ )
Reason for revert:
Tests leak under address sanitizer. See https://code.google.com/p/chromium/issues/detail?id=546394.

Original issue's description:
> Introduce WebMediaSession
>
> WebMediaSession is the API enabling web exposed MediaSession objects
> to control platform implementations of media session related
> functionality.
>
> Implementation will begin with Android and other platforms will be
> added later.
>
> BUG=497735
>
> Committed: https://crrev.com/9b97db48d95635e9c5d48676df8dc51c9e5eef2a
> Cr-Commit-Position: refs/heads/master@{#355058}

TBR=jochen@chromium.org,avayvod@chromium.org,mlamouri@chromium.org,philipj@opera.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=497735

Review URL: https://codereview.chromium.org/1412933005

Cr-Commit-Position: refs/heads/master@{#355503}
fs
Use getAttribute to sample 'd' attribute in interpolation-test.js
pathSegList is going away, so use getAttribute('d') instead.
Adjust some expectations - mostly for 'z' vs 'Z' (not possible to
discern after parsing.)

BUG=539385

Review URL: https://codereview.chromium.org/1417103003

Cr-Commit-Position: refs/heads/master@{#355476}
sigbjornf
Avoid image resource leaks in frame-related unit tests.
When ImageLoader issues a (successful) load, it will keep its associated
element alive until the load has finished, so as to guarantee that the
load will complete without DOM mutations destructing the element.

This keep-alive reference is at odds with tidy shutdowns from unit tests
that issue image resource loads in particular, as they will not have
completed upon shutdown if the load hasn't otherwise been triggered.
By default they won't be, eaving the associated element and its
ImageLoader referred-to resources as reportedly leaking.

To avoid such leaks, insist that image resources are eagerly loaded
from the network by WebViewHelpers, if needs be. Which means that all such
external resources are mocked & accounted for.

R=haraken, thakis
BUG=526423

Review URL: https://codereview.chromium.org/1415123002

Cr-Commit-Position: refs/heads/master@{#355318}
sigbjornf
Reset CORS status upon re-initiating fetch of a stylesheet.
When initiating a fetch of a potentially cross-origin stylesheet that's
already fetching, reset the is-following-CORS flag along with clearing
the loading resource.

R=haraken,mkwst
BUG=544690

Review URL: https://codereview.chromium.org/1413563005

Cr-Commit-Position: refs/heads/master@{#355306}
joleksy
Conditionally include ui_base dependency in version_info
Defining use_unofficial_version_number will allow controlling
the inclusion of ui_base dependency, indepentently of used branding.

BUG=

Review URL: https://codereview.chromium.org/1419633002

Cr-Commit-Position: refs/heads/master@{#355292}
sigbjornf
Oilpan: fix build after r355274.
TBR=oilpan-reviews
BUG=442163
NOTRY=true

Review URL: https://codereview.chromium.org/1418823002

Cr-Commit-Position: refs/heads/master@{#355287}
fs
Convert the path fuzzer test to a unit test
This salvages the interesting bits of svg/dom/fuzz-path-parser.html into the
SVGPathParserTest.Simple unit test.

BUG=539385

Review URL: https://codereview.chromium.org/1407133007

Cr-Commit-Position: refs/heads/master@{#355282}
philipj
Revert "Use DOMSettableTokenList for {HTMLAnchorElement, HTMLAreaElement}.ping."
This reverts the following CLs:
https://codereview.chromium.org/1377163002
https://codereview.chromium.org/1398993002
https://codereview.chromium.org/1396983003

BUG=498219, 543031, 545326

Review URL: https://codereview.chromium.org/1416043002

Cr-Commit-Position: refs/heads/master@{#355277}
philipj
Remove MediaController (already diabled by REF)
Intent to Remove:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/66zec0JPy-k/-89CRX4VBQAJ

It was put behind a disabled RuntimeEnabledFeature in 2014:
https://codereview.chromium.org/250553006

BUG=none

Review URL: https://codereview.chromium.org/1373423003

Cr-Commit-Position: refs/heads/master@{#355260}
mostynb
be more explicit about gconf and glib conditions in net/BUILD.gn
BUG=512899,516899

Review URL: https://codereview.chromium.org/1398473005

Cr-Commit-Position: refs/heads/master@{#355257}
the_jk
Fix gyp/gn with configuration_policy=0
Running gyp in chromium with configuration_policy set to 0 fails as
multiple targets that are behind condition of configuration_policy==1
are referenced without corresponding conditionals

BUG=530579

Review URL: https://codereview.chromium.org/1414583004

Cr-Commit-Position: refs/heads/master@{#355128}
fs
Use getAttribute in path animation tests
Use getAttribute('d') and exact string matching instead of using
animatedPathSegList. The base value checks are dropped. In some cases
relative close commands ('z') are replaced with absolute ones ('Z').

BUG=539385

Review URL: https://codereview.chromium.org/1417593003

Cr-Commit-Position: refs/heads/master@{#355119}
davve
Introduce WebMediaSession
WebMediaSession is the API enabling web exposed MediaSession objects
to control platform implementations of media session related
functionality.

Implementation will begin with Android and other platforms will be
added later.

BUG=497735

Review URL: https://codereview.chromium.org/1370453002

Cr-Commit-Position: refs/heads/master@{#355058}
sigbjornf
Plug RemoteFrame leak in WebFrameTest.SwapMainFrameWhileLoading.
R=haraken
BUG=526423

Review URL: https://codereview.chromium.org/1414193002

Cr-Commit-Position: refs/heads/master@{#355029}
fs
Add unit test for SVG path parsing
This converts svg/dom/path-parser.html into a roughly equivalent unit
test.
Widen the assert in the SVGPathStringSource constructor to allow "" but
not (null) Strings.
Also move the non-fuzzed tests from svg/dom/fuzz-path-parser.html.

BUG=539385

Review URL: https://codereview.chromium.org/1413953002

Cr-Commit-Position: refs/heads/master@{#355008}
mstensho
Need to reposition an out-of-flow object *before* re-paginating it.
https://codereview.chromium.org/1343163005 removed code that was actually
needed. Instead of simply reverting the necessary parts, I rewrote them.
The old code called updateLogicalHeight() before layout, when all it wanted to
do was set the logical top. This made me a bit uneasy, because that could in
theory prevent the height change from being detected during layout() (and
LayoutBlockFlow::layoutBlockFlow() would for instance fail to set
|relayoutChildren| before calling layoutPositionedObjects()). Furthermore, it
used to check if the child establishes a writing mode root, and update the
logical *width* instead of height in that case. That's unnecessary and
potentially harmful (preventing the width change from being detected during
layout()). If the child establishes a new writing mode, it becomes opaque as
far as pagination is concerned, so no need to handle this.

BUG=544783
R=leviw@chromium.org

Review URL: https://codereview.chromium.org/1415623002

Cr-Commit-Position: refs/heads/master@{#354815}
fs
Fix expected inheritance for SVGClipPathElement
SVGDefinitionElement -> SVGElement

https://drafts.fxtf.org/css-masking-1/#InterfaceSVGClipPathElement

TBR=pdr@chromium.org

Review URL: https://codereview.chromium.org/1413073002

Cr-Commit-Position: refs/heads/master@{#354770}
sigbjornf
Oilpan: always shrink tail-allocated backing storage (reland.)
When shrinking backing storage allocations, some care is taken not to
introduce excessive fragmentation and/or limit later expansion of the
same object. That logic does not need to apply if the backing store is
at the tail of the current heap chunk: unconditionally reset the
allocation point, if it is.

(Reland of r353321; it asserted on empty shrink attempts on 32-bit windows.)

R=haraken
BUG=420515

Review URL: https://codereview.chromium.org/1393863004

Cr-Commit-Position: refs/heads/master@{#354474}
sigbjornf
Revert of [Oilpan] Fix wrong usage of HeapCountedSet<EventTarget*> (patchset #3 id:80001 of https://codereview.chromium.org/1401033002/ )
Reason for revert:
Broke a number of tests on all Oilpan bots,

 http://build.chromium.org/p/chromium.webkit/builders/WebKit%20Linux%20Oilpan/builds/29326

Lazy sweeping of EventTargetSet related.

Original issue's description:
> Fix wrong usage of HeapCountedSet<EventTarget*>
>
> BUG=515524
>
> Committed: https://crrev.com/0ab9a39b2347bc686cb6c2a7464acfebe3d4bd10
> Cr-Commit-Position: refs/heads/master@{#353714}

TBR=oilpan-reviews@chromium.org,haraken@chromium.org,peria@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=515524

Review URL: https://codereview.chromium.org/1405513003

Cr-Commit-Position: refs/heads/master@{#353756}
sigbjornf
Allow cross-thread destruction of RTCStatsRequest objects.
libjingle threads may in some cases end up finalizing WebRTCStatsRequest
objects, deref'ing such objects last via LocalRTCStatsRequest.

To allow such cross-thread release of the underlying Blink object,
annotate WebRTCStatsRequest's private pointer as cross-thread destructible.

R=
BUG=541762

Review URL: https://codereview.chromium.org/1399903002

Cr-Commit-Position: refs/heads/master@{#353642}
fs
Always populate the node map in SVGFilterBuilder if one exists
Since the node map is essentially a "reverse DAG" we cannot have holes
in it, so always add the FilterEffects even we cannot provide the
LayoutObject -> FilterEffect mapping (like in the case of a non-attached
element.)

BUG=541593, 533457

Review URL: https://codereview.chromium.org/1393633007

Cr-Commit-Position: refs/heads/master@{#353620}
mstensho
Column balancing refactoring. Don't propagate data during layout.
The column balancing machinery needs the following to calculate an optimal
column height:

1. Flow thread height
2. Flow thread logical top position of all forced breaks
3. The total number of forced breaks
4. Minimum space shortage at any soft break

The first two are needed to estimate an initial column height. The last two are
needed if the initial column height estimate wasn't good enough and we need to
stretch it.

We used to propagate this information to the flow thread continuously during
layout. Then the flow thread, after layout, would use this information for
column balancing (either estimate an initial column height, or stretch columns
based on minimum space shortage) and then re-lay out. This was problematic,
because during layout, we sometimes go back, and re-lay out e.g. a block
because the initial logical top was wrong (due to complex margin collapsing).
This would confuse the column balancing machinery (forced breaks being reported
and counted twice, space shortage being incorrectly reported, and so on).

Instead, traverse the tree after flow thread layout, to collect the information
that we need. This fixes an existing corner-case bug, allows for future
optimizations.

There is still one thing that the flow thread needs to be notified about during
layout, if we have nested multicol: It needs to know where content is laid out
(especially if the content is in a new column), in order to tell if we need to
insert another fragmentainer group (i.e. column row). It would be nice to get
rid of this as well in the future, but we need it for now. Renamed the poorly
named setPageBreak() to the more call-back-like paginatedContentWasLaidOut().

The new class ColumnBalancer and its subclasses are now in charge of column
balancing. Moved / refactored relevant code into those classes.
Taken from LayoutMultiColumnFlowThread, LayoutMultiColumnSet,
MultiColumnFramentainerGroup, and even LayoutBlockFlow.

BUG=521964
R=jchaffraix@chromium.org,leviw@chromium.org

Review URL: https://codereview.chromium.org/1399493002

Cr-Commit-Position: refs/heads/master@{#353463}
sigbjornf
Oilpan: always shrink tail-allocated backing storage.
When shrinking backing storage allocations, some care is taken not to
introduce excessive fragmentation and/or limit later expansion of the
same object. That logic does not need to apply if the backing store is
at the tail of the current heap chunk: unconditionally reset the
allocation point, if it is.

R=haraken
BUG=420515

Review URL: https://codereview.chromium.org/1393863004

Cr-Commit-Position: refs/heads/master@{#353321}
mpawlowski
Add dependency on gfx_vector_icons to autofill_core_browser
autofill_cc_infobar_delegate.cc which is built as part of
autofill_core_browser uses generated vector_icons.h, there
should be an explicit dependency otherwise builds succeed
randomly.

BUG=

Review URL: https://codereview.chromium.org/1394603003

Cr-Commit-Position: refs/heads/master@{#353305}
mstensho
A new LayoutState should never locate a containing flow thread on its own.
If the parent (m_next) LayoutState doesn't have a containing flow thread set,
and the child doesn't establish one, the child shouldn't have one either. This
is crucial when doing subtree layouts directly from a FrameView, skipping any
ancestor fragmentation contexts that might be there. Changing the contents of
an INPUT element triggers this.

The bottom line here is: If we really want to re-lay out parts of a multicol
container, we better pretend that we're not inside a fragmentation context at
all.

This is perfectly safe, as long as the object we're laying out is unsplittable
and hasn't changed its own dimensions (which is true when changing the value of
an INPUT element). We have been doing this for a long time, but there was a bug
hidden in there, that got more easily exposed by
https://codereview.chromium.org/1387553002 , where we disallow strut propagation
to flex boxes, and INPUT type="number" is implemented using flexbox.

R=leviw@chromium.org

Review URL: https://codereview.chromium.org/1395753004

Cr-Commit-Position: refs/heads/master@{#353291}
fs
SVGFilterBuilder::getEffectById never return nullptr
Drop the dead null-check-and-return to avoid giving the impression that
it's actually a possible error path.

BUG=533457

Review URL: https://codereview.chromium.org/1383013002

Cr-Commit-Position: refs/heads/master@{#353282}
sigbjornf
Oilpan: fix build after r353269.
TBR=oilpan-reviews
BUG=539883
NOTRY=true

Review URL: https://codereview.chromium.org/1398103002

Cr-Commit-Position: refs/heads/master@{#353281}
sigbjornf
Oilpan: fix build after r353261, part 2.
HTMLAnchorElement needs to be a declared GC mixin.

TBR=oilpan-reviews
BUG=498219
NOTRY=true

Review URL: https://codereview.chromium.org/1396983003

Cr-Commit-Position: refs/heads/master@{#353275}
sigbjornf
Oilpan: fix build after r353261.
TBR=oilpan-reviews
BUG=498219
NOTRY=true

Review URL: https://codereview.chromium.org/1398993002

Cr-Commit-Position: refs/heads/master@{#353273}
philipj
Sync the DeviceOrientation and DeviceMotion interfaces with the spec
http://w3c.github.io/deviceorientation/spec-source-orientation.html

Ther are no changes to the generated code, as a nullable readonly
attribute is handled by bindings just like a non-nullable one.

BUG=460722
R=timvolodine@chromium.org

Review URL: https://codereview.chromium.org/1387453002

Cr-Commit-Position: refs/heads/master@{#353253}
davve
Crash fix for when running under the Android emulator
For unknown reasons some versions of the Android emulator returns NULL
when asked for GL_SHADING_LANGUAGE_VERSION. Avoid passing NULL to
std::string, which causes undefined behavior.

Review URL: https://codereview.chromium.org/1358873002

Cr-Commit-Position: refs/heads/master@{#353246}
fs
Split SVGFilterbuilder into "builder" and "node map" parts
This separates the longer lived state (the LayoutObject->FilterEffect
and FilterEffect dependents maps) from the state that's only used/valid
while building a (sub)filter-graph. The former is moved to the new
class SVGFilterGraphNodeMap while the latter remain in
SVGFilterBuilder. SVGFilterBuilder can thus be converted to something
that is allocated on the stack and only kept for the building
operation. FilterData is changed to the keep a SVGFilterGraphNodeMap
instead of a builder.
The graph-building code in ReferenceFilterBuilder::build and
LayoutSVGResourceFilter::buildPrimitives is consolidated into
SVGFilterBuilder::buildGraph, with the more "relaxed" behavior of the
former kept. This should only result in a change in behavior for the
case where externally referenced filters are used.

BUG=109224,533457

Review URL: https://codereview.chromium.org/1382163003

Cr-Commit-Position: refs/heads/master@{#353125}
philipj
Sync the RTCPeerConnection interface with the spec
https://w3c.github.io/webrtc-pc/#interface-definition
https://w3c.github.io/webrtc-pc/#legacy-interface-extensions

BUG=460722
R=tommi@chromium.org

Review URL: https://codereview.chromium.org/1375533002

Cr-Commit-Position: refs/heads/master@{#353053}
sigbjornf
Oilpan: tidy up some HeapVector<> uses.
Heap references should be wrapped up using Member:

  HeapVector<T*> => HeapVector<Member<T>>

R=haraken
BUG=515524

Review URL: https://codereview.chromium.org/1394193002

Cr-Commit-Position: refs/heads/master@{#353026}
mstensho
Factor out the actual break checking from apply{After,Before}Break().
We're soon going to call this from the column balancing code.

Moved inNormalFlow() to isForcedBreakAllowed(). The new function performs some
additional checks to make sure it's an in-flow block level element. That
assumption could safely be made from apply{After,Before}Break(), but other call
sites shouldn't have to worry about such things.

Removed FIXME pair for something that was already working.

R=jchaffraix@chromium.org,leviw@chromium.org

Review URL: https://codereview.chromium.org/1393673004

Cr-Commit-Position: refs/heads/master@{#353021}
sigbjornf
Revert of CC Animations: Enable external animation host for blink. (patchset #6 id:100001 of https://codereview.chromium.org/1308053006/ )
Reason for revert:
Breaks a number of tests across bots,

 http://build.chromium.org/p/chromium.webkit/builders/WebKit%20Linux/builds/55219

Confirmed locally that reverting addresses the instability.

Original issue's description:
> CC Animations: Enable external animation host for blink.
>
> Depends on blink layout tests:
> https://codereview.chromium.org/1360233004/
>
> BUG=394777
>
> Committed: https://crrev.com/399f035cbbb4726b1a5fb3729d569dedaab7919e
> Cr-Commit-Position: refs/heads/master@{#352989}

TBR=ajuma@chromium.org,vollick@chromium.org,piman@chromium.org,loyso@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=394777

Review URL: https://codereview.chromium.org/1398713002

Cr-Commit-Position: refs/heads/master@{#353020}
rune
Support deeply nested uncommonAttributeSelectors.
Selectors containing attribute selectors are collected to the
StyleResolver and matched against elements to check if they can share
style with other elements.

The function looking for attributes only went one level down for
functional pseudo classes, which means selectors like:

  :-webkit-any(:not([attr]))

were ignored and caused style to be incorrectly shared between elements.

R=leviw@chromium.org
BUG=540856

Review URL: https://codereview.chromium.org/1394663003

Cr-Commit-Position: refs/heads/master@{#353019}
sigbjornf
Oilpan: drop use of transition type for InvalidationSetVector.
Followup r352829 and remove transition type for InvalidationSetVector;
it unintentionally left it as a HeapVector with Oilpan enabled.

TBR=oilpan-reviews
BUG=

Review URL: https://codereview.chromium.org/1389403002

Cr-Commit-Position: refs/heads/master@{#352873}
sigbjornf
Do not keep InvalidationSets on the Oilpan heap.
An InvalidationSet keeps sets of names/strings and tend to have lifetimes
that track those of RuleFeatureSets and not be shared.

Hence it doesn't meet the bar for being on the Oilpan heap; for workloads
where invalidations happen frequently, having them on the heap just causes
unnecessary follow-on work in having to sweep out at some later GC.

Trivially tidy up StyleResolver construction as part of this CL also.

R=haraken
BUG=

Review URL: https://codereview.chromium.org/1389333003

Cr-Commit-Position: refs/heads/master@{#352829}
mstensho
Keep block pagination struts after layout, and store them before any type of break.
Any block-level object (block container, block-displayed image, for instance)
may now have a strut, so this is stored in the rare data section of LayoutBox.

Added layout tests for things that I nearly broke or wanted to make sure that I
didn't break, while working on this.

No behavioral changes are intended with this CL, and because struts aren't
web-exposed, I added a few "unit tests" for pagination struts.

This is a preparatory patch for refactoring the column balancing
implementation to do everything after layout, instead of during layout (will
fix bugs, get rid of the rather esoteric setPageBreak() calls scattered around,
and also make it easier to do optimizations in the future, instead of doing
almost unconditional deep layout passes when doing multicol or printing).

R=jchaffraix@chromium.org,leviw@chromium.org

Review URL: https://codereview.chromium.org/1375673004

Cr-Commit-Position: refs/heads/master@{#352804}
mpawlowski
Select dark colors for generating fallback icon if possible.
When trying to establish the background color for the fallback icon,
we select the dominant color of a site's favicon and clamp its luminosity
so that we don't end up with a very light background and white text.

If the favicon has a lot of white and a bit of blue, the algorithm
returns white which we clamp down to grey. Instead, we should have used
the blue. We can force the algorithm to return blue by specifying the
upper bound of the dominant color we'd like to receive.

We still need to clamp the result because the source image may actually
not have any dark colors, in which case the algorithm will ignore the
upper bound.

BUG=539771

Review URL: https://codereview.chromium.org/1382343002

Cr-Commit-Position: refs/heads/master@{#352798}
rune
setLoadFinishTime on ImageResource for ImageDocument.
The loadFinishTime was never set on ImageResource used for the generated
image element inside an ImageDocument. We discovered this checking for
that time stamp in an internal Opera project.

Set the finish time of the ImageResource to that of the document (which
is the actual image).

Review URL: https://codereview.chromium.org/1380163006

Cr-Commit-Position: refs/heads/master@{#352730}
fs
Fix SVGUseElement "instance tree loading" status check
SVGUseElement::instanceTreeIsLoading was not checking the loading status
of the immediate <use> targer (the |targetInstance| argument to the
method.) It also wasn't checking the correct element for loading status,
since correspondingUseElement() will return the containing (innermost)
shadow host - which is not the <use> that will carry the relevant
loading status.
Make sure to check the immediate target, and check the loading status of
any <use> elements encountered (instead of attempting to look at the
"corresponding <use>").
Also rewrite the checker method to use Traversal<...>::next instead of
being recursive, and simplify resourceIsStillLoading() some.

BUG=232901

Review URL: https://codereview.chromium.org/1388093002

Cr-Commit-Position: refs/heads/master@{#352645}
mstensho
Multicol: Add test that re-lays out a float and pushes it downwards at the same time.
The test passes, but the code seems somewhat brittle, so better make sure that
it keeps working.

Inline-level layout of floats is weird. LayoutBlockFlow::layoutInlineChildren()
lays out the float before its position is updated, and then marks the lines that
it thinks are affected as dirty (it may find the wrong lines here, but I haven't
been able to make anything fail because of it). For pagination this
additionally means that the pagination strut may be wrong (since the float's
position hasn't been updated). Luckily, we get an opportunity to lay out again
in insertFloatingObject() (still at the old position, though), and yet another
opportunity in positionNewFloats() (this time at the updated position).

R=jchaffraix@chromium.org,leviw@chromium.org,robhogan@gmail.com

Review URL: https://codereview.chromium.org/1375913003

Cr-Commit-Position: refs/heads/master@{#352587}
mstensho
LayoutBlockFlow: rename paginationStrut to paginationStrutPropagatedFromChild.
While lines (RootInlineBox) store and keep the pagination struts that get
applied in front of them, blocks don't. So using the same term (simply
paginationStrut) in blocks and lines wasn't really appropriate [*]. This
paginationStrutPropagatedFromChild thing is really something that's only needed
during layout (see if children want to move a block to the next page column
and re-lay out if necessary). Ideally it shouldn't be stored in the objects at
all, but finding a way to avoid it proved hard. Stowing it in LayoutState was
one idea, but it turned out to be too complicated.

[*] The plan is to also store proper pagination struts on blocks (because
column balancing will benefit from it). This is a preparatory patch for that.

Did some light clean-up on my way, most notably: don't add in the old and
possibly stale pagination strut when estimating a logical top position in a
subsequent layout pass. The strut had typically been set to 0 at this point
anyway, but if it hasn't this code could possibly cause some mischief. In other
words, the code was either useless or harmful.

R=leviw@chromium.org, jchaffraix@chromium.org

Review URL: https://codereview.chromium.org/1381993002 .

Cr-Commit-Position: refs/heads/master@{#352582}
tmoniuszko
Make cld2_table_size configurable in GN builds
BUG=

Review URL: https://codereview.chromium.org/1377333002

Cr-Commit-Position: refs/heads/master@{#352566}
sigbjornf
Remove unused LinkedStack.h include.
One of the few ones left in Blink, and not used.

R=haraken
BUG=none

Review URL: https://codereview.chromium.org/1385173002

Cr-Commit-Position: refs/heads/master@{#352561}
fs
Pass SkiaImageFilterBuilder& to FilterEffect::createImageFilter
The builder should never be null, so just make it a reference.

Drop the builder arguments on SVGFEImage::createImageFilterForLayoutObject
because it's unused, and make the LayoutObject& const while touching those
lines.

Make createImageFilter overrides private.

Review URL: https://codereview.chromium.org/1387573003

Cr-Commit-Position: refs/heads/master@{#352543}
mstensho
Consistently check if a block can handle pagination strut propagation.
https://codereview.chromium.org/1360753002 got it right for inline child
layout, but did nothing for block child layout.

BUG=329421
R=jchaffraix@chromium.org,leviw@chromium.org

Review URL: https://codereview.chromium.org/1387553002

Cr-Commit-Position: refs/heads/master@{#352429}
ckulakowski
Make global variable g_testing_build_time lazily created.
It's a fix for compilation error:
../../../../chromium/src/chrome/browser/ssl/ssl_error_classification.cc:121:12: error: declaration requires a global constructor [-Werror,-Wglobal-constructors]
base::Time g_testing_build_time;

Review URL: https://codereview.chromium.org/1380483004

Cr-Commit-Position: refs/heads/master@{#352410}
mstensho
Remove unused LayoutState::clearPaginationInformation().
R=jchaffraix@chromium.org,leviw@chromium.org

Review URL: https://codereview.chromium.org/1377573004

Cr-Commit-Position: refs/heads/master@{#352362}
fs
Remove lingering -webkit-svg-shadow tests
-webkit-svg-shadow support was removed in r154982 (tracked in issue
262857), but leaving these three tests behind (two of which would
trivially pass because they were ref tests.)

BUG=262857,223332

Review URL: https://codereview.chromium.org/1387823003

Cr-Commit-Position: refs/heads/master@{#352332}
rune
Missing clear() for pseudo invalidation sets.
Missing clear in RuleFeatureSet::clear caused rules removed from shadow
trees to still affect invalidation after removal.

R=sigbjornf@opera.com
BUG=538586

Review URL: https://codereview.chromium.org/1368313005

Cr-Commit-Position: refs/heads/master@{#352278}
sigbjornf
Re-enable blink_perf.dom on all platforms.
TBR=eakuefner,dtu
BUG=532093
CQ_EXTRA_TRYBOTS=tryserver.chromium.perf:linux_perf_bisect;tryserver.chromium.perf:mac_10_10_perf_bisect;tryserver.chromium.perf:win_perf_bisect;tryserver.chromium.perf:android_nexus5_perf_bisect

Review URL: https://codereview.chromium.org/1387783002

Cr-Commit-Position: refs/heads/master@{#352277}
sigbjornf
Oilpan: fix build after r352251.
TBR=oilpan-reviews
BUG=495801

Review URL: https://codereview.chromium.org/1387773002

Cr-Commit-Position: refs/heads/master@{#352272}
sigbjornf
Skip DOM/click_webkit_user_select_none.html performance test.
Running it is only supported by --browser=content-shell performance runs;
skip it always for the time being.

R=haraken
BUG=532903

Review URL: https://codereview.chromium.org/1388623002

Cr-Commit-Position: refs/heads/master@{#352270}
fs
Add test for crbug.com/231604
Derived from TC by:
  Tamas Czene <tczene@inf.u-szeged.hu>
in:
  https://bugs.webkit.org/show_bug.cgi?id=88654

BUG=231604

Review URL: https://codereview.chromium.org/1369923006

Cr-Commit-Position: refs/heads/master@{#352066}
sigbjornf
Oilpan: fix build after r351974.
TBR=oilpan-reviews
BUG=225420
NOTRY=true

Review URL: https://codereview.chromium.org/1372323004

Cr-Commit-Position: refs/heads/master@{#351990}
sigbjornf
Oilpan: fix build after r351868.
We do not have compiler support for traceable Oilpan heap references,
hence undo the Member<> to ref conversion that r351868 made.

TBR=oilpan-reviews
BUG=
NOTRY=true

Review URL: https://codereview.chromium.org/1370143007

Cr-Commit-Position: refs/heads/master@{#351887}
tsniatowski
Fix unix file permissions in resource zips and jar files
https://codereview.chromium.org/1319623002 changed how zip files are
created in the python helper and (accidentally?) made it set 000 unix file
permissions for the archived files. Make it 644 so the zip files are not
suprising to work with on Linux if anyone needs to look at them manually.

BUG=523420
R=dpranke@chromium.org, agrieve@chromium.org,

Review URL: https://codereview.chromium.org/1384513002

Cr-Commit-Position: refs/heads/master@{#351843}
fs
Update error-handling for fe*Lighting and feTurbulence
Invalid parameters now produce transparent black rather than failing the
build step.
The new behavior matches Gecko for fe*Lighting but not for feTurbulence
(where they seem to allow negative baseFrequency values), so in the
latter case we're siding with the "Negative values are unsupported"
wording in the spec[1].

[1] https://drafts.fxtf.org/filters/#element-attrdef-feturbulence-basefrequency

BUG=533457

Review URL: https://codereview.chromium.org/1375793003

Cr-Commit-Position: refs/heads/master@{#351817}
sigbjornf
Allow cross-thread destruction of RTCSessionDescriptionRequest objects.
ligjingle may queue incoming CreateOffer/Answer session requests from
the browser process. Should the RTC session be shut down before those
requests have been processed & queue is drained, the libjingle thread
will destruct these requests as part the session shutdown. (See
associated bug for stack trace of when&how this happens.)

Embedded in those requests are references to Oilpan heap objects, by way
of Persistent<RTCSessionDescriptionRequest>. As Persistent<>s are thread
local, requiring that the thread that created & registered them is the
one that finalizes, the destruction performed by the libjingle thread
runs into trouble.

Hence, allow libjingle to destruct CreateSessionDescriptionRequests by
having WebRTCSessionDescriptionRequests refer to the Oilpan Blink object
by way of a CrossThreadPersistent<>. It imposes no same-thread restriction
wrt destruction.

R=haraken, tommi, philipj
BUG=537745

Review URL: https://codereview.chromium.org/1380023004

Cr-Commit-Position: refs/heads/master@{#351783}
philipj
Remove some obsolete FIXMEs for HTMLAllCollection
Made obsolete by https://github.com/whatwg/html/issues/210

BUG=460722
NOTRY=true
R=jl@opera.com

Review URL: https://codereview.chromium.org/1379633005

Cr-Commit-Position: refs/heads/master@{#351782}
sigbjornf
Retire GC lockout on initializing hash buckets.
Do not disallow GCs across initialization of hash table buckets, be they
from freshly allocated tables or reuse of deleted entries. It serves
no real purpose to disallow GCs for the reasons given in the code
(the key isn't stored separately), and if the bucket is a deleted entry
being initialized, we already run the risk of having GCs with those
in the table. Hence, disallowing it extra here serves no purpose.

R=haraken
BUG=

Review URL: https://codereview.chromium.org/1378273002

Cr-Commit-Position: refs/heads/master@{#351781}
rune
SubtreeStyleChange will propagate through <content>.
No need to mark outer shadow hosts for style recalc when adding style
elements with ::content rules because InsertionPoint::willRecalcStyle
makes sure that distributed nodes and their descendants are recalculated.

BUG=537480

Review URL: https://codereview.chromium.org/1380883002

Cr-Commit-Position: refs/heads/master@{#351741}
sigbjornf
Remove unused Allocator::{enter,leave}NoAllocationScope().
R=haraken
BUG=

Review URL: https://codereview.chromium.org/1381493006

Cr-Commit-Position: refs/heads/master@{#351740}
fs
Refine FilterEffect::createTransparentBlack
Use an image filter that will produce a region of pixels rather than one
that won't.
Fixes issue with feConvolveMatrix error handling with -webkit-filter.

BUG=533457

Review URL: https://codereview.chromium.org/1380733002

Cr-Commit-Position: refs/heads/master@{#351658}
philipj
Remove SVGSVGElement.pixelUnitToMillimeterX and friends
Intent to Deprecate and Remove:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/uJCmB7SzYNo/cBASMfJuBAAJ

BUG=537177
R=fs@opera.com, timvolodine@chromium.org

Review URL: https://codereview.chromium.org/1374233003

Cr-Commit-Position: refs/heads/master@{#351540}
philipj
Make Document.charset an alias of characterSet, as per spec
https://dom.spec.whatwg.org/#interface-document

Remove counters DocumentInputEncoding and DocumentCharset, they have
fulfilled their purpose as both have been specified as aliases based on
the data collected:
https://www.w3.org/Bugs/Public/show_bug.cgi?id=27435
https://www.w3.org/Bugs/Public/show_bug.cgi?id=27436

BUG=438392
R=dominicc@chromium.org

Review URL: https://codereview.chromium.org/1365923002

Cr-Commit-Position: refs/heads/master@{#351508}
sigbjornf
On Document disposal, only dispose of script runner.
Reinstate the invariant that a Document always has a ScriptRunner
(m_scriptRunner), even after the document has been dispose()d.

The reason for disposing the Document's ScriptRunner is to clear
out back references that would otherwise cause the Document to
leak. Do just that, but don't destruct the now-empty ScriptRunner
object.

R=haraken
BUG=536796

Review URL: https://codereview.chromium.org/1380543002

Cr-Commit-Position: refs/heads/master@{#351385}
joleksy
Fix false negatives in system key events recognition
Cmd + <some other modifier> + (b|i) should be treated as a system key event.

This was already reviewed in https://codereview.chromium.org/1215633003/

now rebased to new project structure.

Review URL: https://codereview.chromium.org/1374933002

Cr-Commit-Position: refs/heads/master@{#351374}
sigbjornf
Oilpan: fix build after r351269.
R=haraken
BUG=439376

Review URL: https://codereview.chromium.org/1377813002

Cr-Commit-Position: refs/heads/master@{#351325}
fs
Move feConvolveMatrix error handling to FEConvolveMatrix
This moves the checking of error-conditions from
SVGFEConvolveMatrixElement::build to SkImageFilter build time
(FEConvolveMatrix::createImageFilter), with the change in behavior that
an feConvolveMatrix primitive that is "in error" now produces
transparent black rather than fail the chain (for 'filter' - is ignored
for '-webkit-filter'). This new behavior matches Gecko.
The 'order' vs. size('kernelMatrix') checking is also strengthed / made
more obvious by explicitly failing when overflowing the (positive) int
range. (And avoids depending on signed overflow.)
Also introduce a helper FilterEffect::createTransparentBlack and use in
FEConvolveMatrix and FEImage, and drop a bunch of unused accessor
methods on FEConvolveMatrix.

BUG=533457

Review URL: https://codereview.chromium.org/1376473002

Cr-Commit-Position: refs/heads/master@{#351139}
mostynb
add missing content_test_mojo_bindings gyp dep in content_tests.gypi
This should avoid possible build flakiness.

Found using this proposed ninja patch:
https://github.com/martine/ninja/pull/1031

BUG=536641

Review URL: https://codereview.chromium.org/1371073002

Cr-Commit-Position: refs/heads/master@{#351063}
sigbjornf
Reinstate memory pressure Oilpan GC check post V8 major GCs.
To handle workloads with high allocation rates, where the Oilpan heap
allocations only make up a small fraction compared to what's allocated
by either PartitionAlloc or V8, use V8's major GC notification as
a signal to check for the need to perform an "emergency" memory
pressure conservative GC. Otherwise there might not be enough Oilpan
allocations made to trigger out-of-line heap allocations which trigger
that same check. These GCs and workloads are rare, but reduces the
possibility of running into OOM conditions when Oilpan is faced with
those.

An example where it does show up is Dromaeo's dom-modify.html, which
has a subtest that heavily allocates Text nodes, each holding a longer
string. As each Text node is a small Oilpan heap object, not a lot of heap is
needed for the nodes, but PartitionAlloc's buffer partition size grows much
more sharply and risks signalling OOM. V8's RTS notices the memory pressure
and triggers extra GCs; reuse that signal in Oilpan.

Hence, bring back the check that https://codereview.chromium.org/1190513006/
added for checking this condition.

R=haraken
BUG=474470

Review URL: https://codereview.chromium.org/1369783002

Cr-Commit-Position: refs/heads/master@{#351044}
sigbjornf
Return early for vec.remove(position, 0).
If the item range being removed has no extent, no item is removed
from the vector. Return early, if so.

Style invalidation uses this Vector remove() operation upon restoring
state (RecursionCheckpoint), with the length being zero often.
Optimize its handling.

The performance of blink_perf.css.ClassInvalidation and
blink_perf.css.ClassDescendantSelector is improved 15-20% as a result
(without Oilpan, windows + linux64.)

R=haraken
BUG=

Review URL: https://codereview.chromium.org/1370933002

Cr-Commit-Position: refs/heads/master@{#351029}
rune
No need to recalc style before StyleResolver::computeFont.
StyleResolver::computeFont does not rely on the computed style of any
elements in the document tree. The updateLayoutTree call was there to
avoid an assert due to an unnecessary composed tree traversal for a
parent node. That traversal was removed by [1], so the updateLayoutTree
call should no longer be needed.

This change gets rid of synchronous style recalcs when FontFaceSet.load()
is called.

[1] https://codereview.chromium.org/1367743002/

BUG=536625

Review URL: https://codereview.chromium.org/1372823002

Cr-Commit-Position: refs/heads/master@{#351025}
sigbjornf
Avoid creating duplicate Range objects when handling misspellings.
When iterating over the input text and marking its misspellings, avoid
creating duplicate Range objects from the check & paragraph EphemeralRanges
if they're identical.

This addresses a performance regression on trunk (non-Oilpan) for
blink_perf.dom.textarea-edit introduced by the EphemeralRange-switching
https://codereview.chromium.org/1331893002

R=haraken
BUG=530740

Review URL: https://codereview.chromium.org/1369713002

Cr-Commit-Position: refs/heads/master@{#351001}
sigbjornf
Speed up updating inner value of HTMLTextFormControlElements.
Upon setting the inner string value of an element like <textarea/>, we
append a solitary trailing <br> if the new value ends with a line
break character (for layout and content editable purposes.)

Upon replacing that string value with another, check if the shadowed
inner element being updated has such a trailing <br> element and remove
it first, before proceeding with setting the new value. Doing so enables
fast replacement of text nodes rather than invoking the general path of
replacing a set of siblings with a text node.

This is of most benefit with Oilpan enabled, as it reduces the heap
allocations made when handling this update operation. For a deep-loop
microbenchmark like blink_perf.DOM.textarea-dom, a 10% speedup is
observed (linux, windows).

Linux64-chrome numbers on textarea-dom:

- Oilpan enabled:
  + ToT: 14.6 runs/s
  + CL:  16.6 runs/s

- Oilpan disabled:
  + ToT: 16.5 runs/s
  + CL:  16.9 runs/s

R=tkent,haraken,esprehn
BUG=

Review URL: https://codereview.chromium.org/1355013002

Cr-Commit-Position: refs/heads/master@{#350989}
fs
Refine invalidation of filter clients in LayoutSVGResourceContainer
When an outermost <svg> had a non-filter-induced layer it would fall
into the layer-oriented code-path in
LayoutSVGResourceContainer::registerResource even if it didn't have a
'-webkit-filter' property. Because of this, the layout object would not
get invalidated (if it had a 'filter' property).
Refine the conditions involved to allow both properties to trigger
invalidations as needed. Also avoid the filter invalidation hack when
possible and take the opportunity to make good use of a for-range loop.

BUG=535800

Review URL: https://codereview.chromium.org/1364403003

Cr-Commit-Position: refs/heads/master@{#350900}
fs
Allow zero inputs for feMerge
An feMerge which doesn't have any inputs should simply produce no output
(rather than failing the filter chain.)
Both FEMerge (w/ minor tweak) and SkMergeImageFilter are able to cope with
this case.
Any single-input primitives that sources from the merge will also not
produce any output. This behavior actually matches Gecko, and the spec
is not very outspoken on the matter.

BUG=533457

Review URL: https://codereview.chromium.org/1368113002

Cr-Commit-Position: refs/heads/master@{#350884}
sigbjornf
Oilpan: fix build after r350813.
TBR=oilpan-reviews
BUG=510398
NOTRY=true

Review URL: https://codereview.chromium.org/1365503006

Cr-Commit-Position: refs/heads/master@{#350820}
sigbjornf
Oilpan: revert page navigation count GCing.
The inclusion of https://codereview.chromium.org/1353283002 as
part of r350775 was not intentional - back it out.

We want to land some variation of this now, but not in this form.

R=haraken
BUG=534524

Review URL: https://codereview.chromium.org/1369683003

Cr-Commit-Position: refs/heads/master@{#350806}
sigbjornf
Manage WebGLRenderingContextBase's weak refs manually without Oilpan.
WebGLRenderingContextBase keeps a set of registered on-heap WebGLContextObjects,
ensuring that these are detached if it is finalized first -- it being unsafe to
make any reverse access of the *Base object from those after that point. These
references must however be weak as the *Base object mustn't keep WebGL objects
alive if they're not otherwise used & referenced.

Without Oilpan enabled by default, *Base isn't on the heap, that set of
weak WebGLContextObject references must be managed manually rather than relying
on HeapHashSet<WeakMember<T>>. If we were to do so, a GC might identify a
WebGLContextObject as only being weakly referenced from the *Base object and
clear out the entry for it in the set. Should the *Base object then be finalized
and destructed before that WebGLContextObject is lazily swept, it would attempt
to access an already freed object. With sorry consequences.

To address, we keep an off-heap set of untraced raw WebGLContextObject pointers,
which are effectively weak. Like now/before, it is the responsibility of either
the WebGLContextObject to detach itself when finalized or have the *Base
object do that and detach the whole set.

R=kbr,haraken
BUG=534524

Review URL: https://codereview.chromium.org/1363243003

Cr-Commit-Position: refs/heads/master@{#350775}
tsniatowski
Move goma/ccache logic to //build/toolchain/gcc_toolchain.gni
Avoid logic duplication between linux/android/... toolchain definitions
that all did the same thing. This is helpful for further work with
compiler prefixes / wrappers, in particular for non-goma-users.

Some toolchains used the prefix on nm and objcopy calls, this was probably
wrong and no longer happens. The toolchains that used gcc_toolchain.gni
but did not manually setup goma/ccache opt out of the setting to avoid
large behavior changes.

BUG=

Review URL: https://codereview.chromium.org/1361403002

Cr-Commit-Position: refs/heads/master@{#350767}
jb
Pending scripts can cause disposed documents to leak.
The script runner of a document may still be holding pending scripts
when the document is disposed (e.g. due to navigation). The script
runner, and thus the pending scripts, is cleared in the destructor of
the document. However, the pending scripts keep a reference to the
script element they belong to. The script element in turn, keeps a
guard ref to the document, so the document will never be deleted.
Clearing the script runner in dispose clears the pending scripts and
breaks the reference cycle so that document can be deleted.

BUG=534844
R=sigbjornf@opera.com

Review URL: https://codereview.chromium.org/1368623003

Cr-Commit-Position: refs/heads/master@{#350664}
sigbjornf
Common up eager handling of sweeping.
Code tidying, no change in functionality.

R=haraken
BUG=

Review URL: https://codereview.chromium.org/1361073002

Cr-Commit-Position: refs/heads/master@{#350644}
fs
Tweak asserts for dominant-baseline in SVGTextLayoutEngineBaseline
The 'no-change' and 'reset-size' dominant-baseline value will consult
their parent to try and resolve a suitable value. If the parent has one
of these values, the process will continue up the ancestor chain.
When reaching the LayoutView however, we should encounter the initial
value ('auto') and the search will end.
Move the assertion for an existing parent down into the branches that
handle the values 'no-change' and 'reset-size'.
Also rewrap a comment and replace a FIXME with TODO.

BUG=534796

Review URL: https://codereview.chromium.org/1360083003

Cr-Commit-Position: refs/heads/master@{#350612}
fs
Make error-handling for feColorMatrix consistent
After/with https://codereview.chromium.org/1087283002, error-handling
for feColorMatrix will differ based on when the error occured (in
"initial" content, or through later script mutation; "initial" meaning
the state on first paint).
Align the two different code-paths by removing error-handling entirely
from one of them (SVGFEColorMatrixElement::build) building on the CL
mentioned above.

Also take this opportunity to align our error-handling behavior with
Gecko:
 * Excess 'values' for type='matrix' => use identity
 * Excess 'values' for type='saturate'/'huerotate' => use identity

The test svg/filterS/feColorMatrix-values.svg is updated to reflect the
above, and is converted to a ref-test while at it.
Tweak the DRT output for FEColorMatrix to only output 'values' if they
are valid and actually used.

BUG=534763, 533457
TBR=senorblanco@chromium.org,fmalita@chromium.org

Review URL: https://codereview.chromium.org/1366903002

Cr-Commit-Position: refs/heads/master@{#350607}
alexanderk
Extend unittest to test follow-module behavior of find_dependencies.py
Problem origin: https://crbug.com/527836
Fixed: https://codereview.chromium.org/1306953007

BUG=531562

Review URL: https://codereview.chromium.org/1347283006

Cr-Commit-Position: refs/heads/master@{#350582}
sigbjornf
blink_perf.dom.textarea-dom: vary text nodes added.
This benchmark is meant to measure the performance of a sequence of
text node appends to a <textarea/> element. Have that sequence consist
of varying strings rather than the exact same one. This is done so as to
have the measurement not be influenced by whatever reuse of text
node strings that the underlying allocator is able to provide if using
identical strings.

R=
BUG=

Review URL: https://codereview.chromium.org/1367923004

Cr-Commit-Position: refs/heads/master@{#350533}
philipj
Remove SVG hasExtension() methods
Intent to Deprecate and Remove:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/Ae_lmov16_o/Wa5XhHFoAAAJ

BUG=532405
R=fs@opera.com

Review URL: https://codereview.chromium.org/1359053004

Cr-Commit-Position: refs/heads/master@{#350512}
sigbjornf
Oilpan: exempt CSSBasicShapeValue from GC plugin checking.
The GC plugin isn't capable of determining that CSSValue's
traceAfterDispatch() method is safe for subtypes of CSSBasicShapeValue
and throws an error. Until the plugin or the method have been adjusted
into a form that passes the plugin's static checks, exempt the
class from the GC plugin's reach.

R=haraken
BUG=535448

Review URL: https://codereview.chromium.org/1365003002

Cr-Commit-Position: refs/heads/master@{#350508}
christiank
Allow task pools to reason about transparency.
This will allow task pools to select different formats depending on if a tile contains transparency or not.

BUG=434699
CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel

Review URL: https://codereview.chromium.org/1351283003

Cr-Commit-Position: refs/heads/master@{#350495}
tsniatowski
Add ninja console pool support to GN
Allow GN actions to specify "console = true", which will translate into
a "pool = console" setting in the generated ninja files. The console
pool allows a ninja target to have unbuffered io, access to standard
input, and is limited to one target at a time.

R=brettw@chromium.org
BUG=

Review URL: https://codereview.chromium.org/1358803002

Cr-Commit-Position: refs/heads/master@{#350321}
mstensho
Only block container children support pagination struts.
Removed partial support for pagination struts on table captions, since it
didn't work too well (caused inconsistent layout and also overlap with the
table section that followed). Instead, set a strut on the content inside the
caption (first line, for instance), just like we already do for table cells.

We had a check to avoid setting pagination struts on table cells, but there was
no similar check for table captions. Replaced the check with examining the
containing block. We may only set a pagination strut on a block if its
containing block is a block container (LayoutBlockFlow). This automatically
fixes similar issues with flexboxes and possible other layout modes too.

BUG=329421
R=jchaffraix@chromium.org,leviw@chromium.org

Review URL: https://codereview.chromium.org/1360753002

git-svn-id: svn://svn.chromium.org/blink/trunk@202648 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Update handling of negative radius for feMorphology
Spec[1] states:

 "A negative or zero value disables the effect of the given filter
  primitive (i.e., the result is the filter input image)."

So change FEMorphology to clamp radii to non-negative and stop treating
as an error in SVGFEMorphologyElement::build.

[1] https://drafts.fxtf.org/filters/#element-attrdef-femorphology-radius

BUG=533457

Review URL: https://codereview.chromium.org/1344283004

git-svn-id: svn://svn.chromium.org/blink/trunk@202644 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Update handling of negative std.dev for feGaussianblur/feDropShadow
Spec[1] states:

 "A negative value or a value of zero disables the effect of the given
  filter primitive (i.e., the result is the filter input image)."

Update SVGFEGaussianBlurElement and SVGFEDropShadowElement to reflect
this, and update the references for the corresponding tests.

Drop accessors on FEDropShadow because they are unused.

[1] https://drafts.fxtf.org/filters/#element-attrdef-fegaussianblur-stddeviation

BUG=533457

Review URL: https://codereview.chromium.org/1350903009

git-svn-id: svn://svn.chromium.org/blink/trunk@202643 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Sync m_lastRemainingAllocationSize on promptly freeing objects.
A heap's m_lastRemainingAllocationSize field is used to limit updating
of heap allocated object size tracking. Upon promptly freeing objects,
make sure it is synchronized so as to it avoid deviating across multiple
such operations.

R=haraken
BUG=534423

Review URL: https://codereview.chromium.org/1360763002

git-svn-id: svn://svn.chromium.org/blink/trunk@202634 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Consider Layout tree cycles when resolving the <pattern> content element
When SVGPatternElement determines the attributes of a pattern, it will
not factor in any cycles brought upon it by the actual content elements.
The cycle solver however does this analysis when it is run on a
resource.
To bridge this DOM vs. Layout tree "gap", make sure to inspect the chain
of linked resources when determining the content element to use when
generating the pattern data.

BUG=104448

Review URL: https://codereview.chromium.org/1356053002

git-svn-id: svn://svn.chromium.org/blink/trunk@202631 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r202625.
TBR=oilpan-reviews
BUG=529640
NOTRY=true

Review URL: https://codereview.chromium.org/1358083002

git-svn-id: svn://svn.chromium.org/blink/trunk@202629 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Remove unused variable movedSectionLogicalTop from table layout code.
R=jchaffraix@chromium.org

Review URL: https://codereview.chromium.org/1351383006

git-svn-id: svn://svn.chromium.org/blink/trunk@202628 bbb929c8-8fbe-4397-9dbb-9b2b20218538
davve
[Docs] Fix shell command formatting and line breaking
Review URL: https://codereview.chromium.org/1351233003

Cr-Commit-Position: refs/heads/master@{#350117}
fs
Remove kernelUnitLength plumbing
'kernelUnitLength' is not supported in Blink, and is deprecated in the
spec [1][2][3].
Rip out the plumbing and (FilterEffect) storage for it, since it's dead
code for practical purposes (see below though...)

The svg/dynamic-updates/SVGFEConvolveMatrixElement-*-kernelUnitLength-*
tests now actually show something because the kernelUnitLength of 0.05
no longer truncate to 0 and trigger an error. (0.05 should have been a
valid value previously too.)

The tests for negative kernelUnitLengths are dropped because they're no
longer of any use.

[1] https://drafts.fxtf.org/filters/#element-attrdef-feconvolvematrix-kernelunitlength
[2] https://drafts.fxtf.org/filters/#element-attrdef-fediffuselighting-kernelunitlength
[3] https://drafts.fxtf.org/filters/#element-attrdef-fespecularlighting-kernelunitlength
    (feSpecularLighting seems to be missing the Note, but it's the same
     as for feDiffuseLighting anyhow.)

BUG=231613

Review URL: https://codereview.chromium.org/1354923003

git-svn-id: svn://svn.chromium.org/blink/trunk@202601 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Drop virtual LightSource::create
Not used.

Review URL: https://codereview.chromium.org/1355713004

git-svn-id: svn://svn.chromium.org/blink/trunk@202593 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: like Vector<T>, restrict Deque<T> to certain part objects.
Impose the limitations put on Vector<T> on Deque<T> also. They're
both backed by a vector buffer where unused slots are zero'ed so as
to be safe when (conservatively) tracing the buffer contents or when
finalizing it.

In order to use a designated zero for cleared elements, certain
conditions have to be placed on the kinds of T we can allow when
T is a part object annotated with ALLOW_ONLY_INLINE_ALLOCATION().
Impose these statically by way of static_assert()s.

R=tkent,haraken
BUG=420515

Review URL: https://codereview.chromium.org/1051853003

git-svn-id: svn://svn.chromium.org/blink/trunk@202574 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r202549.
R=haraken
BUG=501896

Review URL: https://codereview.chromium.org/1357803002

git-svn-id: svn://svn.chromium.org/blink/trunk@202569 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
linux gn config should check use_gconf before looking for it with pkg-config
BUG=388412

Review URL: https://codereview.chromium.org/1355793003

Cr-Commit-Position: refs/heads/master@{#349790}
fs
Scale objectBoundingBox units for primitive dimensions w/ -webkit-filter
Minor mismatch with the other code-path (in SVGFilterPainter).
Drop the default argument value from the 4-ary Filter::create().

BUG=532938

Review URL: https://codereview.chromium.org/1346143005

git-svn-id: svn://svn.chromium.org/blink/trunk@202522 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Avoid stack overflow triggered by out-of-band layout of flexbox child.
Flexbox uses LayoutBlock::finishDelayUpdateScrollInfo(), which may jump to some
arbitrary block in the subtree and lay it out directly. This is bad, at least
for multicol, since it requires that a flow thread be entered have its children
laid out without skipping any parents in the chain.

LayoutMulticolFlowThread::skipColumnSpanner() was called on the wrong flow
thread, which resulted in m_lastSetWorkedOn pointing to a column set that was
part of an inner flow thread, and not the flow thread we called. That made
columnSetAtBlockOffset() return a column set from an inner flow thread, causing
an infinite recursion when walking upwards in the flow thread ancestry chain).

So the spanner was in the inner flow thread, but it was the outer flow thread
that got called. This happened because our LayoutState says that's the
innermost flow thread being laid out at the moment, because
finishDelayUpdateScrollInfo() just teleported and laid out a descendant of the
inner flow thread.

Luckily there's a safer way of obtaining the flow thread associated with a
spanner, so do that instead.

This is not a perfect fix. LayoutState still points to the wrong flow thread
(we just avoid asking it). The root cause remains (out-of-band layout), and
there may be other bugs caused by this. For multicol, we're still not in the
clear. Since we have a skipColumnSpanner() call without laying out the flow
thread, we'll get an assertion failure next time we lay out the flow thread,
because it will assert that there be no m_lastSetWorkedOn (but
skipColumnSpanner() has set that one while not laying out the flow thread).

But at least we're getting rid of the infinite recursion.

Since we now call skipColumnSpanner() on a LayoutMultiColumnFlowThread, instead
of on a LayoutFlowThread, we need to make that method public (private overrides
is just asking for trouble). And since this is the only caller, make it
non-virtual while at it. LayoutFlowThread no longer needs this.

BUG=526664
R=jchaffraix@chromium.org,leviw@chromium.org

Review URL: https://codereview.chromium.org/1328923002

git-svn-id: svn://svn.chromium.org/blink/trunk@202519 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjorn
Add histogram for key exchange strength
BUG=525957

Review URL: https://codereview.chromium.org/1312363004

Cr-Commit-Position: refs/heads/master@{#349644}
sigbjorn
Expose OpenSSL's key_exchange_info in the content API
The key_exchange_info contains information about the strength of the SSL
key exchange. This information is useful for statistics, user information,
and making trust decisions for connections. This commit makes the information
available in the API.

BUG=525957

Review URL: https://codereview.chromium.org/1313363003

Cr-Commit-Position: refs/heads/master@{#349635}
fs
Merge SVGFilter into Filter
This brings the handling for bbox-relative coordinates into the base
class and drops the empty shell that remains.

BUG=109224

Review URL: https://codereview.chromium.org/1348973004

git-svn-id: svn://svn.chromium.org/blink/trunk@202465 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r202439.
TBR=oilpan-reviews
BUG=437696
NOTRY=true

Review URL: https://codereview.chromium.org/1349013003

git-svn-id: svn://svn.chromium.org/blink/trunk@202440 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r202421.
TBR=oilpan-reviews
BUG=492204
NOTRY=true

Review URL: https://codereview.chromium.org/1346413003

git-svn-id: svn://svn.chromium.org/blink/trunk@202432 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Increment style version for all style changes.
markAncestorsWithChildNeedsStyleRecalc incremented styleVersion on
Document, while markAncestorsWithChildNeedsStyleInvalidation did not.
That made us detect style changes differently depending on the type of
selectors which would be affected by a change - if we would schedule an
invalidation set, or set SubtreeStyleChange directly.

Instead increment style version on scheduleLayoutTreeUpdate.

R=ericwilligers@chromium.org,esprehn@chromium.org

Review URL: https://codereview.chromium.org/1333193004

git-svn-id: svn://svn.chromium.org/blink/trunk@202419 bbb929c8-8fbe-4397-9dbb-9b2b20218538
tsniatowski
Fix //content/plugin ax_enums gn build flake (take 2)
Flake observerd with target_os="android" and enable_plugins=true,
probably can happen on other platforms as well.
//content/plugin/plugin_thread.cc ends up including the generated
ax_enums header so needs a dependency.

This is a retry of crrev.com/1343883003 with a direct ax_gen dep instead
of going via //content/public/common to avoid a dependency cycle in
component builds.

R=ananta@chromium.org, jam@chromium.org
BUG=

Review URL: https://codereview.chromium.org/1344883002

Cr-Commit-Position: refs/heads/master@{#349228}
mostynb
gn help switches doc fixup
GN docs refer to "gn help" for common command-line switches in a couple
of places, but that only shows the top level help.  The reference
should of course be "gn help switches".

Review URL: https://codereview.chromium.org/1348633002

Cr-Commit-Position: refs/heads/master@{#349215}
mstensho
Remove special pagination code for floats and out-of-flow objects.
This got added years ago, to make something work, either for CSS regions or for
the old multicol implementation.

I see no need for this code, and it was getting in my way.

R=jchaffraix@chromium.org,leviw@chromium.org

Review URL: https://codereview.chromium.org/1343163005

git-svn-id: svn://svn.chromium.org/blink/trunk@202351 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Specify the source rect on the SourceGraphic
Instead of carrying the source rectangle of the filter input (the
'SourceGraphic') in the Filter, specify it in the input FilterEffect
(SourceGraphic).
This allows for getting rid of the sourceImageRect() method on Filter
and implementations (it's only actually non-empty for SVGFilter and
related code-paths.)

BUG=109224

Review URL: https://codereview.chromium.org/1338753003

git-svn-id: svn://svn.chromium.org/blink/trunk@202346 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Lazily instantiate Geolocation permission manager maps.
Delay creating the bidirectional maps needed to handle Geolocation
permission requests until actually used. To avoid instantiating a
pair of Persistent<> references when doing so, move the wrapper
private object to the Oilpan heap.

R=haraken,tkent
BUG=340522

Review URL: https://codereview.chromium.org/1339353002

git-svn-id: svn://svn.chromium.org/blink/trunk@202336 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
move zip template to a non-android-specific .gni file
The zip template really isn't android-specific, let's move it to its
own .gni file which doesn't assert(is_android).

Review URL: https://codereview.chromium.org/1345733002

Cr-Commit-Position: refs/heads/master@{#349016}
fs
Propagate resource-triggered repaints to text node children of <text>
When a paint server is modified, it is marked for layout and its clients
are marked for repaint. In the case of <text> (and <tspan> and other
text content elements), the text nodes (for which the actual painting is
performed) uses their parent (LayoutObject) to get the fill/stroke. This
means that if a repaint is requested for all clients of a resource, the
text nodes will not be notified.
Add and use a new paint invalidation reason for this case:
PaintInvalidationSVGResourceChange
Handle this reason in LayoutSVGText and LayoutSVGInline.
Generalize the ancestorHadPaintInvalidationForLocationChange
functionality, renaming it to forcedSubtreeInvalidationWithinContainer.

BUG=528159

Review URL: https://codereview.chromium.org/1331053002

git-svn-id: svn://svn.chromium.org/blink/trunk@202280 bbb929c8-8fbe-4397-9dbb-9b2b20218538
tsniatowski
Fix //content/plugin ax_enums gn build flake
Flake observerd with target_os="android" and enable_plugins=true:
//content/plugin/plugin_thread.cc ends up including the generated
ax_enums header so make it depend on it.

BUG=

Review URL: https://codereview.chromium.org/1343883003

Cr-Commit-Position: refs/heads/master@{#348918}
fs
Don't import win32gui when it's not needed
If --parent-window=... isn't passed, then parent_window will be None,
and importing win32gui then is unnecessary.

Review URL: https://codereview.chromium.org/1335993002

Cr-Commit-Position: refs/heads/master@{#348914}
the_jk
Fix running gyp with configuration_policy=0
Running gyp in chromium with configuration_policy set to 0 fails as
multiple targets that are behind condition of configuration_policy==1
are referenced without corresponding conditionals

BUG=530579

Review URL: https://codereview.chromium.org/1334253002

Cr-Commit-Position: refs/heads/master@{#348903}
fs
Merge ReferenceFilter into Filter
The number of differences between the different subclasses of Filter is
decreasing. This brings in a sink and source reference into the
baseclass and makes use of that for users of the SVGFilter subclass too.
Instances of 'targetBoundingBox' is renamed to 'referenceBox' and the
absoluteFilterRegion() method is simplified.

BUG=109224

Review URL: https://codereview.chromium.org/1326183002

git-svn-id: svn://svn.chromium.org/blink/trunk@202273 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Document that navigator.appName is always "Netscape" (per spec)
https://www.w3.org/Bugs/Public/show_bug.cgi?id=27796
https://html.spec.whatwg.org/#client-identification

BUG=460722
NOTRY=true

Review URL: https://codereview.chromium.org/1339683004

git-svn-id: svn://svn.chromium.org/blink/trunk@202268 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r202264.
TBR=oilpan-reviews
BUG=513568
NOTRY=true

Review URL: https://codereview.chromium.org/1339303002

git-svn-id: svn://svn.chromium.org/blink/trunk@202265 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Have a Page's MemoryPurgeController be a separate allocation also.
A Page keeps and owns a number of controllers, each being separately allocated.
Extend that to also apply to MemoryPurgeController; it is created on demand,
and no longer a part object.

R=haraken
BUG=520496

Review URL: https://codereview.chromium.org/1335373003

git-svn-id: svn://svn.chromium.org/blink/trunk@202261 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Floats' margins do not collapse with page or column boundaries.
When we push a float to the next page or column, push its top margin as well,
and do so consistently. In some cases we lost the margin, in some other cases
we got a double margin, and in yet some other cases we actually got it right.

There was code that asserted (in a comment) that having a pagination strut and
being unsplittable for pagination were mutually exclusive, but that's wrong. If
the first child (block / line) of a float doesn't fit in the current page or
column, we'll set a strut on the float. At the same time, the float may very
well be unsplittable for pagination. So, first pushing to the next page or
column because it's unsplittable, and THEN adding the strut will effectively
result in adding the pagination strut twice. This would be a problem both with
and without a top margin on the float.

R=jchaffraix@chromium.org,leviw@chromium.org

Review URL: https://codereview.chromium.org/1303993007

git-svn-id: svn://svn.chromium.org/blink/trunk@202212 bbb929c8-8fbe-4397-9dbb-9b2b20218538
alexanderk
Add module dir to sys.path in FindPythonDependencies
while loading modules using imp.load_source()

find_dependencies script was broken
after modifications done in tools/perf/run_benchmark
CL https://codereview.chromium.org/1280903003

BUG=527836

Review URL: https://codereview.chromium.org/1306953007

Cr-Commit-Position: refs/heads/master@{#348653}
fs
Compute outline mid-line in way that works with negative start-values
Since the expression (x1+x2)/2 will always "round" towards zero, if one
of the points (usually x1) is negative, the wrong "mid-line" will be
computed, and as a result part of the outline will shift right/down.
Instead compute the mid-line as x1+(x2-x1)/2 (or x1+thickness/2) i.e
perform the division on something that is known to be non-negative and
then offset from the starting point. (Similar reasoning for the other
dimension.)

BUG=529010

Review URL: https://codereview.chromium.org/1343773002

git-svn-id: svn://svn.chromium.org/blink/trunk@202205 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Conditionally update FontSelector on invalidation.
When invalidating a FontFallbackList to use a new FontSelector, check that
the new FontSelector really represents a change. Avoids needless
RefPtr/Persistent churn.

R=haraken
BUG=

Review URL: https://codereview.chromium.org/1341783003

git-svn-id: svn://svn.chromium.org/blink/trunk@202203 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Simplify SelfKeepAlive<T>'s representation.
Following r202197, a Persistent<> is only instantiated when assigned a
non-null pointer value. Consequently, SelfKeepAlive<>'s use of an OwnPtr<>
indirection to achieve the same is no longer needed.

R=haraken
BUG=420515

Review URL: https://codereview.chromium.org/1339043002

git-svn-id: svn://svn.chromium.org/blink/trunk@202202 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
No longer any need to delete the line box tree on our own.
The LayoutBlockFlow::moveChildrenTo() override takes of that for us.

BUG=327070
R=szager@chromium.org

Review URL: https://codereview.chromium.org/1311023003

git-svn-id: svn://svn.chromium.org/blink/trunk@202200 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Restrict registered PersistentNodes to non-empty ones.
It is not uncommon for Persistent<> members to be left as empty/null
upon construction, but possibly written to later during the object's
lifetime. Hence delaying the allocation and registeration of the
Persistent<>'s PersistentNode until it is initialized with a non-null
value avoids the alloc/free overhead for Persistent<>s that are never
initialized. And reduces the number of PersistentNode roots that the
GC has to iterate over.

By adopting that scheme here, the number of PersistentNodes allocated
when loading google.com is (approx) halved. Similar reductions consistently
seen elsewhere.

Dually, we also introduce the deallocation of the PersistentNode upon
updating the Persistent<> with nullptr. This is done so as to allow
a thread to cleanly shut down by first only clearing the persistents it
has allocated (and not require it to somehow separately destruct these
first -- that happens upon clearing.)


R=haraken
BUG=483380

Review URL: https://codereview.chromium.org/1338573003

git-svn-id: svn://svn.chromium.org/blink/trunk@202197 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Explicitly include MacScrollTypes.h in view_messages.h
This header is currently included via WebScrollbarTheme.h (which is
needed for blink::ScrollerStyle). Explicitly including it makes the
dependency clearer.

Review URL: https://codereview.chromium.org/1339613002

Cr-Commit-Position: refs/heads/master@{#348601}
fs
Move safe_browsing include into FULL_SAFE_BROWSING guard
Review URL: https://codereview.chromium.org/1339663002

Cr-Commit-Position: refs/heads/master@{#348586}
sigbjornf
Add (back) assignment operator overloads over Persistent<> types.
Overloads aren't inherited, so add the required delegating operator=
overload implementation for (CrossThread)(Weak)Persistent<> types.

Without these, an assignment like

  V :: Persistent<T>
  X :: RawPtr<T>

  V = X;

will be desugared & compiled as

  V = Persistent<T>(X);  // where "=" is the copy constructor.

i.e., introducing (and allocating) a temporary Persistent<> for the RHS.

(This assignment shows up when initializing a WebPrivatePtr<T> over a GCed
type T, for instance.)

R=haraken
BUG=420515

Review URL: https://codereview.chromium.org/1335303002

git-svn-id: svn://svn.chromium.org/blink/trunk@202191 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r202176.
R=haraken
BUG=437696
NOTRY=true

Review URL: https://codereview.chromium.org/1337383002

git-svn-id: svn://svn.chromium.org/blink/trunk@202186 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Multicol: Min-height should have no effect if content is taller and height is auto.
Calling computeLogicalHeight() before layout is somewhat problematic, since we
don't know the content/intrinsic height at that point. Specifying that height
as 0 would return the value of min-height (if specified) and make the multicol
code believe that height is constrained, and prevent columns from getting any
taller than that. In other words, min-height was more or less treated as
max-height in multicol.

Since we only want to know if we have a non-auto height that could constrain
the column heights, we can just skip computeLogicalHeight() if height is
indefinite.

BUG=65731
R=jchaffraix@chromium.org,leviw@chromium.org

Review URL: https://codereview.chromium.org/1322513003

git-svn-id: svn://svn.chromium.org/blink/trunk@202162 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
unbreak no-webrtc builds
https://codereview.chromium.org/1330873002 broke builds with webrtc
disabled.

BUG=262211

Review URL: https://codereview.chromium.org/1340483002

Cr-Commit-Position: refs/heads/master@{#348435}
fs
Rename LayoutSVGTransformableContainer::m_lastTranslation
To m_additionalTranslation, since 'last' is ambiguous. The 'additional'
is from spec wording: "An additional transformation translate(x,y) ...".

Review URL: https://codereview.chromium.org/1337063002

git-svn-id: svn://svn.chromium.org/blink/trunk@202147 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Replace use Range::selectNodeContents() with EphemeralRange counterpart.
Switch to EphemeralRange::rangeOfContents() and avoid a Range allocation
in the process.

R=haraken
BUG=388681

Review URL: https://codereview.chromium.org/1337923002

git-svn-id: svn://svn.chromium.org/blink/trunk@202139 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Introduce Range::dispose() for prompt detachment from owner Document.
With Oilpan, Range objects become detached from their Document once GC
determines that the Range object is no longer referred to and can be
swept out, along with clearing out the object from the Document's weak
map. If GCs aren't otherwise being triggered regularly, this can in
some cases lead to unnecessary buildup of weakly held, but effectively
dead objects in that Document map. Something which slows down GC once
it eventually strikes.

To address, we introduce a dispose() method over Range so as to let code
handle the cases where it is known that the Range object is no longer
referenced & used and can be promptly detached from its Document. Less
GC overhead being the (desired) result.

R=yosin,haraken
BUG=388681

Review URL: https://codereview.chromium.org/1335573004

git-svn-id: svn://svn.chromium.org/blink/trunk@202138 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r202130.
The Blink GC plugin is syntactic, requiring GCed fields to literally
appear within the trace() method body. Once that don't are assumed not
to have been traced. Which prevents the use of an accessor, like r202130
introduced.

TBR=oilpan-reviews,yosin
BUG=513568
NOTRY=true

Review URL: https://codereview.chromium.org/1337933002

git-svn-id: svn://svn.chromium.org/blink/trunk@202137 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Include additional translation in getBBox for SVGUseElement
LayoutObject::objectBoundingBox() can't be used, because the additional
translation is included in the local-to-parent transform.

BUG=512081

Review URL: https://codereview.chromium.org/1310873004

git-svn-id: svn://svn.chromium.org/blink/trunk@202136 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Remove tautological comparison in CellSpan::ensureConsistency
Avoid a compilation warning when compiling with -Wtautological-compare
flag.

Review URL: https://codereview.chromium.org/1339633002

git-svn-id: svn://svn.chromium.org/blink/trunk@202135 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Avoid warnings in NetworkQualityEstimatorTest.TestCaching
Gets rid of the following compilation errors:
../../net/base/network_quality_estimator_unittest.cc:465:118: error: expression with side effects has no effect in an unevaluated context [-Werror,-Wunevaluated-expression]
../../net/base/network_quality_estimator_unittest.cc:476:118: error: expression with side effects has no effect in an unevaluated context [-Werror,-Wunevaluated-expression]

Review URL: https://codereview.chromium.org/1335943002

Cr-Commit-Position: refs/heads/master@{#348384}
ckulakowski
Guard usage of kEnableMediaRouter with ENABLE_MEDIA_ROUTER
Definition of kEnableMediaRouter is guarded with ENABLE_MEDIA_ROUTER.
All usages also should be guarded with this switch.

Review URL: https://codereview.chromium.org/1219063014

Cr-Commit-Position: refs/heads/master@{#348365}
fs
Check renderability of images in a (-webkit-)cross-fade before using
If the image fails to decode or otherwise trigger an error, we don't
want to render it, since it will render (or measure) the "broken image"
placeholder.

BUG=111512

Review URL: https://codereview.chromium.org/1334713002

git-svn-id: svn://svn.chromium.org/blink/trunk@202122 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Switch TextCheckingParagraph&Helper over to EphemeralRanges.
With the lighter EphemeralRange available, it is unnecessary to have
the SpellChecker utilities TextCheckingHelper and TextCheckingParagraph
continue to use Range objects. Switch over to EphemeralRange.

R=yosin
BUG=388681

Review URL: https://codereview.chromium.org/1331893002

git-svn-id: svn://svn.chromium.org/blink/trunk@202121 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Sync svg-d-interpolation.html expectations.
Following Blink r202067, this test no longer leaks.

R=haraken
BUG=529370
NOTRY=true

Review URL: https://codereview.chromium.org/1334163002

git-svn-id: svn://svn.chromium.org/blink/trunk@202119 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Introduce firstEphemeralRangeOf().
Provide an EphemeralRange counterpart to firstRangeOf() and make use of
it where possible.

R=
BUG=388681

Review URL: https://codereview.chromium.org/1332823002

git-svn-id: svn://svn.chromium.org/blink/trunk@202090 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Avoid a SVG property list-induced leak (Oilpan).
Address animations/svg-attribute-interpolation/svg-d-interpolation.html
leak.

R=haraken,kouhei
BUG=528275

Review URL: https://codereview.chromium.org/1328223002

git-svn-id: svn://svn.chromium.org/blink/trunk@202067 bbb929c8-8fbe-4397-9dbb-9b2b20218538
bratell
Memory-infra: Change "objects_count" to "object_count" in category name.
TBR=thakis@chromium.org
BUG=

Review URL: https://codereview.chromium.org/1334673004

Cr-Commit-Position: refs/heads/master@{#348166}
fs
Drop special-case handling of zero-length subpaths
Handled by Skia with https://codereview.chromium.org/1314213002

BUG=422974, 529845

Review URL: https://codereview.chromium.org/1328693002

git-svn-id: svn://svn.chromium.org/blink/trunk@202056 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Revert of set svg zero length to rebaseline (patchset #1 id:1 of https://codereview.chromium.org/1336543002/ )
Reason for revert:
Reverting this in favor of https://codereview.chromium.org/1328693002/ (less rebaselines needed)

Original issue's description:
> set svg zero length to rebaseline
> 
> The Skia change has been relanded to handle zero-length
> caps natively. Rebaseline the affected SVG tests.
> 
> R=fmalita@chromium.org
> BUG=529845
> 
> Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=202052

TBR=fmalita@chromium.org,caryclark@chromium.org,caryclark@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=529845

Review URL: https://codereview.chromium.org/1333913002

git-svn-id: svn://svn.chromium.org/blink/trunk@202053 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Restrict visibility of internal TextCheckingParagraph predicates.
Reduce exposed interface slightly; no change in functionality.

R=
BUG=None

Review URL: https://codereview.chromium.org/1333813003

git-svn-id: svn://svn.chromium.org/blink/trunk@202050 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Generalize ScopedDisposal<T> to handle non-GC types.
Drop the restriction that ScopedDisposal<T> can only be used with
Oilpan GCed types + parameterize the template over the disposal method
to use (with dispose() being the default.)

R=haraken
BUG=

Review URL: https://codereview.chromium.org/1332743002

git-svn-id: svn://svn.chromium.org/blink/trunk@202048 bbb929c8-8fbe-4397-9dbb-9b2b20218538
tmoniuszko
Make gyp_flag_compare.py work on Windows
BUG=

Review URL: https://codereview.chromium.org/1319063004

Cr-Commit-Position: refs/heads/master@{#348113}
sigbjornf
Oilpan: fix build after r201994.
TBR=oilpan-reviews
BUG=488628
NOTRY=true

Review URL: https://codereview.chromium.org/1327193002

git-svn-id: svn://svn.chromium.org/blink/trunk@202004 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Update outer flow thread membership before changing multicolness.
This change is about being more strict about applying style changes in tree
order: first adjust the relationship to the ancestry, THEN adjust the children.

This order is important if a multicol container has a child out-of-flow
multicol container with a spanner, and this child is changed to become in-flow
at the same time as it ceases to be a multicol container, and instead becomes a
spanner. If we change it from multicol to spanner first (instead of making it
part of the outer multicol container first), the outer multicol container is
going to believe that it contains the inner spanner, and we'd end up with a
spanner inside another spanner, which isn't allowed.

#a - multicol
  #b - abspos multicol, changing it to static spanner
    #c - spanner (but it should become a regular block once #b becomes a spanner)

The effect of this fix is that we swap the ordering of notifying the flow thread
about descendant style changes (flowThreadDescendantStyleWillChange(),
flowThreadDescendantStyleDidChange()), compared to when handling style changes
locally on the object (styleWillChange(), styleDidChange()) takes place. More
specifically, we need to get to flowThreadDescendantStyleDidChange() first
(which registers or unregisters descendants in the flow thread - i.e. updates
the LayoutMultiColumnSet / LayoutMultiColumnSpanner placeholder structure), and
THEN to evacuateAndDestroy() (via LayoutBlockFlow::styleDidChange() and 
createOrDestroyMultiColumnFlowThreadIfNeeded()), instead of the other way around.
This way we register #b (now a spanner) in #a first. That will prevent #a from
seeing anything inside #b (spanners are rather opaque).

Since we're now notifying the flow thread from LayoutBox instead of
LayoutObject, we can change the style change notification methods to take
LayoutBox instead of any kind of LayoutObject. The flow thread only cares about
LayoutBox or better here anyway. This allows for some cleanup in the
notification methods, since we no longer need to worry about computed style
weirdness on text layout objects.

BUG=516532
R=eae@chromium.org,jchaffraix@chromium.org,leviw@chromium.org

Review URL: https://codereview.chromium.org/1320843005

git-svn-id: svn://svn.chromium.org/blink/trunk@201993 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Drop SVGElement::getBoundingBox
The two users can be trivially replaced with queries on the layout tree
instead.

Review URL: https://codereview.chromium.org/1317563010

git-svn-id: svn://svn.chromium.org/blink/trunk@201973 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
gn: fix documentation typo
s/currebt/current/

TBR=brettw

Review URL: https://codereview.chromium.org/1318963007

Cr-Commit-Position: refs/heads/master@{#347900}
rune
Schedule a BeginFrame when we stop deferring commits.
We do not scheduleVisualUpdate for setNeedsStyleRecalc when we have
pending stylesheets. If we setNeedsStyleRecalc while loading a stylesheet,
we won't necessarily trigger a BeginFrame when the stylesheet finishes
loading because subsequent setNeedsStyleRecalc call won't trigger those
either if the ascendants are already marked with childNeedsStyleRecalc
because we assume the visual update is already scheduled.

Schedule a BeginFrame from resumeTreeViewCommits to make sure deferred
visual updates are triggered.

BUG=384934

Review URL: https://codereview.chromium.org/1316403004

git-svn-id: svn://svn.chromium.org/blink/trunk@201933 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Drop getBBox() override on SVGPathElement
path().boundingRect() is exactly what objectBoundingBox() will return
for LayoutSVGPath, so the implementation from SVGGraphicElement can be
used.

Review URL: https://codereview.chromium.org/1315983012

git-svn-id: svn://svn.chromium.org/blink/trunk@201917 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Limit stack-allocated uses of CancellableTaskFactory(PassOwnPtr<Closure>).
Classes that keep a CancellableTaskFactory should create() these via the
provided factory method, which takes care of creating the task factory's
closure in a manner that doesn't cause an (Oilpan) leak.

Not using the factory method is convenient when testing, so accommodate
this by way of a protected CancellableTaskFactory<> constructor, and use
it in unit tests. The unit tests exercise functionality rather than direct
usage by Blink objects, so hiding the constructor is considered acceptable.

R=haraken
BUG=

Review URL: https://codereview.chromium.org/1320023009

git-svn-id: svn://svn.chromium.org/blink/trunk@201916 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r201904.
TBR=oilpan-reviews,yosin
BUG=513568
NOTRY=true

Review URL: https://codereview.chromium.org/1303993005

git-svn-id: svn://svn.chromium.org/blink/trunk@201907 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r201865.
TBR=oilpan-reviews,yosin
BUG=513568
NOTRY=true

Review URL: https://codereview.chromium.org/1323023004

git-svn-id: svn://svn.chromium.org/blink/trunk@201879 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Revert "Implement proposed shadow tree cascade order."
This reverts commit bb5572c1de7405160a32b80c6224477b13eaac14.

Conflicts:
	Source/core/css/resolver/StyleResolver.h

TBR=kochi@chromium.org
BUG=487125

Review URL: https://codereview.chromium.org/1332493002

git-svn-id: svn://svn.chromium.org/blink/trunk@201875 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Revert 201092 "Reland of moved unused CascadeOrder. (patchset #1..."
> Reland of moved unused CascadeOrder. (patchset #1 id:1 of https://codereview.chromium.org/1306693007/ )
> 
> Reason for revert:
> I don't think this contributes any of "too many opened files".
> (as is commented bay jianli
> https://code.google.com/p/chromium/issues/detail?id=524248#c7 )
> 
> Will revert and reland the original patch.
> 
> 
> 
> Original issue's description:
> > Revert of Removed unused CascadeOrder. (patchset #1 id:1 of https://codereview.chromium.org/1291873005/ )
> > 
> > Reason for revert:
> > Speculative revert for causing "Too many opened files in the system".
> > 
> > https://code.google.com/p/chromium/issues/detail?id=523598
> > 
> > 
> > Original issue's description:
> > > Removed unused CascadeOrder.
> > > 
> > > CascadeOrder is always ignoreCascadeOrder after [1] and can be removed.
> > > 
> > > [1] https://codereview.chromium.org/1298173004
> > > 
> > > BUG=487125
> > > 
> > > Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=201019
> > 
> > TBR=kochi@chromium.org,rune@opera.com
> > NOPRESUBMIT=true
> > NOTREECHECKS=true
> > NOTRY=true
> > BUG=487125
> > 
> > Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=201082
> 
> TBR=rune@opera.com,jianli@chromium.org
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=487125
> 
> Review URL: https://codereview.chromium.org/1313713005

TBR=kochi@chromium.org

Review URL: https://codereview.chromium.org/1331573002

git-svn-id: svn://svn.chromium.org/blink/trunk@201871 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
A block that establishes a new formatting context is pushed by floats.
Only block containers that don't establish new formatting contexts are
allowed to ignore (and thus potentially overlap with) floats.

This obviously also applies inside multicol, but we had a check that actively
prevented that. This was some residue from CSS regions support (shared
implementation with multicol), which had a much more sophisticated positioning
implementation, which we've removed ages ago.

BUG=528179
R=jchaffraix@chromium.org

Review URL: https://codereview.chromium.org/1325323002

git-svn-id: svn://svn.chromium.org/blink/trunk@201867 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Avoid duplicated code in LayoutBlockChild::layoutBlockChild().
Before laying out, we try to estimate and set the logical top of the child, but
it may turn out after one layout pass that the estimate was wrong, due to
margin collapsing, float clearance or pagination.

So sometimes we need to reposition and relayout once or even twice inside
layoutBlockChild(). This was done with slightly poorly duplicated code.
Refactor into positionAndLayoutOnceIfNeeded() (and
markDescendantsWithFloatsForLayoutIfNeeded()). One instance of this duplicated
code used to sit in adjustBlockChildForPagination(). Moved it into
layoutBlockChild(), to make it easier to understand what's going on (and to
give adjustBlockChildForPagination() one less thing to worry about - one
parameter removed). Renamed |result| to |newLogicalTop| in
adjustBlockChildForPagination(), and |logicalTopAfterClear| to |newLogicalTop|
in layoutBlockChild().

No behavioral changes were actually intended, but when unifying
almost-duplicated code, some changes are inevitable. Added some tests for
something that now works, and used to fail. In the subsequent layout passes we
forgot to check if the new position changed how we were affected by floats.

R=jchaffraix@chromium.org,leviw@chromium.org

Review URL: https://codereview.chromium.org/1315353005

git-svn-id: svn://svn.chromium.org/blink/trunk@201866 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
move gconf config inside use_gconf block
BUG=132847

Review URL: https://codereview.chromium.org/1328883002

Cr-Commit-Position: refs/heads/master@{#347440}
sigbjornf
Oilpan: tidy up NavigationScheduler.
Allocate this object separately and not as a part of a LocalFrame. The
main motivation for this is to play better with its use of a
CancellableTaskFactory following r201780.

R=haraken
BUG=

Review URL: https://codereview.chromium.org/1330653003

git-svn-id: svn://svn.chromium.org/blink/trunk@201794 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Improve CancellableTaskFactory handling and Oilpan usage.
If a CancellableTaskFactory is used by an Oilpan heap object, the
closure that the factory works with/over, cannot embed a reference
back to that object by way of an off-heap Persistent<> (WTF::Closure
is not on the heap.) If it does, such a reference will keep the heap
object alive, without it ever being released. Memory leaks are very likely.

This is too easy a slip-up to make with the current CancellableTaskFactory
constructor, so rephrase the constructor so as to make leaks no longer (easily)
possible. For Oilpan heap objects baked into the closure, the persistent reference
now held will be weak.

At the same time, take the opportunity to have this object no longer be a part object,
but a separate (off-heap) allocation. This lets us drop the ad-hoc ASan unpoisoning
support that was previously needed if CancellableTaskFactory was a part object
of an Oilpan heap object. Less magic.

R=haraken
BUG=

Review URL: https://codereview.chromium.org/1312843009

git-svn-id: svn://svn.chromium.org/blink/trunk@201787 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Don't transfer viewport to an invalid/dirty <use> instance
If an update is pending for a <use> shadow tree, the width/height
needn't be updated, since the update of the shadow tree will do it.
Make sure to clear the reference to the instance root when
invalidating the shadow tree.
Also split clearResourceReferences into a few different parts.

BUG=516051

Review URL: https://codereview.chromium.org/1323443003

git-svn-id: svn://svn.chromium.org/blink/trunk@201738 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r201727.
TBR=oilpan-reviews
BUG=262211
NOTRY=true

Review URL: https://codereview.chromium.org/1329753003

git-svn-id: svn://svn.chromium.org/blink/trunk@201733 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Never move unbreakable blocks that are at the top of a column / page.
That's just going to leave a column / page blank, without fitting any content
better. If the block is too tall to fit in the current column / page, it's
going to be just as too tall for the next one as well.

BUG=526098
R=jchaffraix@chromium.org

Review URL: https://codereview.chromium.org/1318653004

git-svn-id: svn://svn.chromium.org/blink/trunk@201732 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove BarProp.visible TODO that has been fixed in the spec
NOTRY=true
R=fs@opera.com

Review URL: https://codereview.chromium.org/1328723004

git-svn-id: svn://svn.chromium.org/blink/trunk@201721 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Fix GC_PROFILING builds following r201671.
R=haraken
BUG=527054
NOTRY=true

Review URL: https://codereview.chromium.org/1308053007

git-svn-id: svn://svn.chromium.org/blink/trunk@201707 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r201667.
TBR=oilpan-reviews
BUG=none
NOTRY=true

Review URL: https://codereview.chromium.org/1314773009

git-svn-id: svn://svn.chromium.org/blink/trunk@201670 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r201639.
TBR=oilpan-reviews
BUG=none
NOTRY=true

Review URL: https://codereview.chromium.org/1312073003

git-svn-id: svn://svn.chromium.org/blink/trunk@201650 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Revert of Oilpan: fix build after r201639. (patchset #1 id:1 of https://codereview.chromium.org/1312073003/ )
Reason for revert:
Not complete, reverting to reland.

Original issue's description:
> Oilpan: fix build after r201639.
> 
> TBR=oilpan-reviews
> BUG=none
> NOTRY=true
> 
> Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=201647

TBR=oilpan-reviews@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=none

Review URL: https://codereview.chromium.org/1319623006

git-svn-id: svn://svn.chromium.org/blink/trunk@201648 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r201639.
TBR=oilpan-reviews
BUG=none
NOTRY=true

Review URL: https://codereview.chromium.org/1312073003

git-svn-id: svn://svn.chromium.org/blink/trunk@201647 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Have uses of MockImageResourceClient leak less.
Turn this unit test helper into something more RAII-like to avoid
Resources not having their clients removed.

For the tests touched, addresses reported Resource leaks.

R=haraken
BUG=526423

Review URL: https://codereview.chromium.org/1327653004

git-svn-id: svn://svn.chromium.org/blink/trunk@201645 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r201632.
R=haraken
BUG=523249
NOTRY=true

Review URL: https://codereview.chromium.org/1325983003

git-svn-id: svn://svn.chromium.org/blink/trunk@201636 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Fix Resource leak in ActivityLoggerTest unit tests.
Evict resources from the memory cache upon shutdown.

R=haraken
BUG=526423

Review URL: https://codereview.chromium.org/1309843011

git-svn-id: svn://svn.chromium.org/blink/trunk@201634 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r201622.
TBR=oilpan-reviews
BUG=513568
NOTRY=true

Review URL: https://codereview.chromium.org/1310633005

git-svn-id: svn://svn.chromium.org/blink/trunk@201629 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Add inline style in the element's scope.
Style attribute declarations were added in a separate scope after all
other author origins. Instead add style attribute declarations right after
collecting matching rules from the element's scope. This means that we can
override values set on the style attribute from outer scopes, like we can
with values from inner scope's stylesheet.

Without this fix, you would get green on orange below:

<style>html /deep/ span { color: green; background-color: lime }</style>
<host>
  <host:root>
    <style>span { color:red }</style>
    <span style="background:orange">Green on orange?</span>
  </host:root>
</host>

With this change, we will get green on lime.

The regression (issue 526634) was not relying on this, but it would be
more complex code to fix the regression without fixing the style attribute
cascading order.

R=kochi@chromium.org,hayato@chromium.org
BUG=526634

Review URL: https://codereview.chromium.org/1322753006

git-svn-id: svn://svn.chromium.org/blink/trunk@201620 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Update the visibility of XHR-related interfaces to match spec
https://github.com/whatwg/xhr/issues/19

BUG=395931
R=dominicc@chromium.org

Review URL: https://codereview.chromium.org/1310543002

git-svn-id: svn://svn.chromium.org/blink/trunk@201597 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: update plugin handling to work over plugins persisted over reattach
Following Blink r201401, a plugin element's persisted plugin will be
cleared out upon the plugin element being removed from the tree or being
re-attached and there being no layout object. With Oilpan, this may
bring about disposal of the underlying plugin.

A disposed persisted plugin is consequently observable if subsequently
try to return the plugin wrapper object for the plugin element -- add
the required check so as to handle this properly.

R=haraken
BUG=526999

Review URL: https://codereview.chromium.org/1326603002

git-svn-id: svn://svn.chromium.org/blink/trunk@201572 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Sync OilpanExpectations.
Remove some now-unbound virtual slimmingpaint test entries along with
removing expectation for

 svg/as-background-image/animated-svg-animation-control.html

which was removed in r201021.

R=haraken
BUG=345655,370906,356658,356742,456357,522652
NOTRY=true

Review URL: https://codereview.chromium.org/1323963002

git-svn-id: svn://svn.chromium.org/blink/trunk@201550 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Clarify the TODO for FrameRequestCallback
BUG=460722

Review URL: https://codereview.chromium.org/1326523002

git-svn-id: svn://svn.chromium.org/blink/trunk@201540 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove a few IDL TODOs that have been fixed in the HTML spec
BUG=460722
R=domenic@chromium.org

Review URL: https://codereview.chromium.org/1308553005

git-svn-id: svn://svn.chromium.org/blink/trunk@201536 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
If javascript: returns no result, balance load progress notifications.
Upon executing a javascript: URL in an empty document, we take care to
notify that the load has started. Should the result of executing the
script code be no result and navigation, balance the progress notifications
by signalling completion also.

R=haraken
BUG=495495

Review URL: https://codereview.chromium.org/1158973004

git-svn-id: svn://svn.chromium.org/blink/trunk@201481 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix building with blink_gc_profiling:1
R=haraken
BUG=

Review URL: https://codereview.chromium.org/1321173002

git-svn-id: svn://svn.chromium.org/blink/trunk@201473 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Fix method name typo in PartitionAlloc.
Review URL: https://codereview.chromium.org/1320243003

git-svn-id: svn://svn.chromium.org/blink/trunk@201454 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r201436, r201444.
TBR=oilpan-reviews
BUG=none
NOTRY=true

Review URL: https://codereview.chromium.org/1317363003

git-svn-id: svn://svn.chromium.org/blink/trunk@201451 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Throw exceptions for charnum == getNumberOfChars in get{...}OfChar APIs
According to the spec [1], IndexSizeError should be thrown if:

"...the charnum is negative or if charnum is greater than or equal to
 the number of characters at this node."

This is what's implemented by IE, Gecko and Presto.

[1] http://www.w3.org/TR/SVG11/text.html#__svg__SVGTextContentElement__getStartPositionOfChar
    The current SVG2 draft has a different formulation:

     (https://svgwg.org/svg2-draft/text.html#__svg__SVGTextContentElement__getStartPositionOfChar)
     "If cluster is null, then then throw a DOMException with code
      INDEX_SIZE_ERR."

    but will have the same result.

BUG=391345

Review URL: https://codereview.chromium.org/1321783002

git-svn-id: svn://svn.chromium.org/blink/trunk@201411 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Remove redundant DocumentLoadTiming references.
Having ScriptedIdleTaskController and its auxillary object keep a reference
to a document's DocumentLoadTiming part object is unnecessary as the deadlines
do not have to be translated wrt a Document's baseline reference time.

R=sami, rmcilroy
BUG=

Review URL: https://codereview.chromium.org/1316323002

git-svn-id: svn://svn.chromium.org/blink/trunk@201338 bbb929c8-8fbe-4397-9dbb-9b2b20218538
alexanderk
Try to reset quota database which is suspected to be corrupted
If we are able to open quota database file but cannot create a table
then we suspect it to be corrupted and trying to reset.

BUG=508916

Review URL: https://codereview.chromium.org/1236583002

Cr-Commit-Position: refs/heads/master@{#345966}
fs
Don't drop type information returned from locateRenderSVGTextAncestor
LayoutSVGText::locateRenderSVGTextAncestor returns a LayoutSVGText*, so
widening it to LayoutObject only serves to lose information - for the
primary benefit of "interface hiding".
This in turn mean that some calls can be devirtualized.

Also restructure the methods themselves to avoid stating the predicate
twice (negated and not.)

Review URL: https://codereview.chromium.org/1308983006

git-svn-id: svn://svn.chromium.org/blink/trunk@201319 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Applying the "all" property needs to check all properties against the whitelist.
When applying any other property than "all", we already perform this whitelist
check, but applying "all" is a separate code path, and the checks were missing
there.

BUG=524682
R=rune@opera.com

Review URL: https://codereview.chromium.org/1304123006

git-svn-id: svn://svn.chromium.org/blink/trunk@201315 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Invalidate style from shadow host, not root, to apply :host rules.
This is a regression from r201058. We incorrectly marked the shadow root
node for style recalc instead of the host. Marking the host is necessary
to apply new :host rules.

R=esprehn@chromium.org
BUG=525280

Review URL: https://codereview.chromium.org/1311463004

git-svn-id: svn://svn.chromium.org/blink/trunk@201311 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Have resetInternalsObject() handle detached documents.
R=haraken
BUG=524261

Review URL: https://codereview.chromium.org/1309673004

git-svn-id: svn://svn.chromium.org/blink/trunk@201306 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: avoid using WeakPtr<> for heap residing objects.
GlobalFetch::ScopedFetcher instances are heap objects, so avoid using
WeakPtr<>s over those.

Also switch over to using WeakPtr* transition types where possible.

R=haraken
BUG=509911

Review URL: https://codereview.chromium.org/1320563003

git-svn-id: svn://svn.chromium.org/blink/trunk@201305 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Remove applyStatefulResource interface from SVGClipPainter
applyClippingToContext is equally "stateful", so the two entrypoints
does not seem warranted.
Fold applyClippingToContext into applyStatefulResource and then rename
it to prepareEffect (to match mask and filter). Similarly rename
postApplyStatefulResource to finishEffect.

Review URL: https://codereview.chromium.org/1308223003

git-svn-id: svn://svn.chromium.org/blink/trunk@201262 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Move painting code out of LayoutSVGResourceClipper
LayoutSVGResourceClipper::tryPathOnlyClipping contains the code to
emit the path - if one is successfully built. For the sake of layering,
push this out into the caller (SVGClipPainter) instead.

Also replace uses of clipperResource().isEmpty() with hasClipper(),
rename objectBoundingBox referenceBox (to better match the Masking spec
terminology) and rename the tryPathOnlyClipping to asPath.

Review URL: https://codereview.chromium.org/1308983007

git-svn-id: svn://svn.chromium.org/blink/trunk@201254 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
createPlainText(): avoid a 32k buffer allocation for empty ranges.
The pre-allocation of the StringBuilder is redundant if the range is
empty, hence avoid.

While here, simplify empty string builder testing also.

R=yosin
BUG=

Review URL: https://codereview.chromium.org/1317593003

git-svn-id: svn://svn.chromium.org/blink/trunk@201212 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Don't resolve rectangle as different unit if viewport is empty
SVGLengthContext::resolveRectangle would resolve oBB units as uSOU units
if the "viewport" provided was empty.
This would lead to incorrect rendering in certain cases - like with
filters on content with an empty bbox.

BUG=252696

Review URL: https://codereview.chromium.org/1313893003

git-svn-id: svn://svn.chromium.org/blink/trunk@201140 bbb929c8-8fbe-4397-9dbb-9b2b20218538
tsniatowski
Fix typo in gn ccache support for linux:x86
BUG=

Review URL: https://codereview.chromium.org/1308403004

Cr-Commit-Position: refs/heads/master@{#345355}
fs
svg/custom/resource-client-removal.svg no longer flaky
Stabilized after https://codereview.chromium.org/1286093008

TBR=pdr@chromium.org
BUG=521856

Review URL: https://codereview.chromium.org/1317543002

git-svn-id: svn://svn.chromium.org/blink/trunk@201128 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Don't change the media controls visibility in MediaControls::reset()
reset() is called from a number of places with the expectation of
putting the controls into the state they would be if created anew.

One such place is via HTMLMediaElement::preDispatchEventHandler, where
the controls are reset when entering or exiting fullscreen. This has a
very strange side-effect, namely that dispatching a synthetic
webkitfullscreenchange event on a video will cause the media controls to
become visible.

It would be rather messy to write a layout test for this, and it would
be slow to run, so instead add unit tests to test this more directly.

R=fs@opera.com

Review URL: https://codereview.chromium.org/1319433003

git-svn-id: svn://svn.chromium.org/blink/trunk@201126 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Drop LayoutVTTCue::adjustForTopAndBottomMarginBorderAndPadding
This method only serves to break the cue layout computed by
SnapToLinesLayouter. If we want to factor in margin+border for cues (and
padding for the cue container), then factor that into the cue layout
algorithm instead.

BUG=301580

Review URL: https://codereview.chromium.org/1314613002

git-svn-id: svn://svn.chromium.org/blink/trunk@201119 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove TODO <video preload> case-sensitivity (invalid spec bug)
NOTRY=true
R=fs@opera.com

Review URL: https://codereview.chromium.org/1318443002

git-svn-id: svn://svn.chromium.org/blink/trunk@201108 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
svg/custom/js-late-pattern-and-object-creation.svg no longer flaky
Stabilized after https://codereview.chromium.org/1286093008

TBR=pdr@chromium.org
BUG=522649

Review URL: https://codereview.chromium.org/1310203004

git-svn-id: svn://svn.chromium.org/blink/trunk@201061 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r201058.
TBR=oilpan-reviews
BUG=522860
NOTRY=true

Review URL: https://codereview.chromium.org/1303953005

git-svn-id: svn://svn.chromium.org/blink/trunk@201060 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Should not ASSERT what we know will fail.
The input to the selector position and the rule position is known to
possibly overflow 12 and 18 bits respectively since the input comes from
unsigned positions into data structures known to keep more elements than
that. The selector and rule positions will be wrong regardlessly, unless
we make RuleData bigger.

Truncating the position to a max value instead of just letting it
overflow could be an option. It doesn't make sense for selector position
as trying to match any of the other selectors won't make any difference.

Truncating the rule position would make the cascading order correct when
comparing rules in the representable range with a rule outside the range,
while just letting it overflow starting from zero again will yield a
correct cascading order between two rules both outside of the
representable range.

Given that, I conclude to just remove the ASSERTs and not do anything
clever about values outside of the ranges.

BUG=519315
R=timloh@chromium.org

Review URL: https://codereview.chromium.org/1312703002

git-svn-id: svn://svn.chromium.org/blink/trunk@201059 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Fix crash when removing stylesheets from shadow tree.
The added sheets passed into StyleSheetInvalidationAnalysis may either be
added or removed. When they are removed style elements from a shadow tree,
the style element may no longer have a containingShadowRoot if the element
has already been removed. That caused a crash when the containingShadowRoot
was accessed without a nullptr check.

Instead of deducing the scope from the style element, pass the stylesheet
collection TreeScope to the analysis object. The m_scopingNodes, which is
probably a left-over from <style scoped> has been removed.

Now, the shadow tree root node, or outermost shadow host if ::content
rules makes that necessary, is always marked sub-tree dirty. The previous
code-path could trigger id/class invalidation of separate elements when
the stylesheet contents had multiple owner nodes, but that was most likely
wrong if it could ever happen.

BUG=522860

Review URL: https://codereview.chromium.org/1313443003

git-svn-id: svn://svn.chromium.org/blink/trunk@201058 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Sync some media/track test expectations.
Remove entries that were asserting prior to crbug.com/521520 being fixed.

R=haraken,keishi
BUG=521102,521861
NOTRY=true

Review URL: https://codereview.chromium.org/1311733002

git-svn-id: svn://svn.chromium.org/blink/trunk@201051 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Accurately update Document node counts on disposing shadow roots.
When cleaning out a ShadowRoot's child Nodes as part of its disposal,
the child Nodes will in some cases not have other references than the
shadow root. If so, the Node will be summarily deleted without being
notified of it being removed from its DOM tree first. By calling its
removedFrom().

As a Document need to maintain an accurate attached node count, arrange
for the otherwise-unreferenced Node's document to be decremented.

R=
BUG=521520

Review URL: https://codereview.chromium.org/1309083002

git-svn-id: svn://svn.chromium.org/blink/trunk@201044 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Remove tests svg/as-background-image/animated-svg-animation-control.html
This test has been flaky all along because the sequence of events it
tries to observe is not fully observable. There's still some coverage of
the reset-animation-when-no-longer-running case elsewhere.

BUG=522652

Review URL: https://codereview.chromium.org/1292703004

git-svn-id: svn://svn.chromium.org/blink/trunk@201021 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
make use of use_glib variable rather than is_linux when adding glib config
Review URL: https://codereview.chromium.org/1306473003

Cr-Commit-Position: refs/heads/master@{#344877}
rune
Removed unused CascadeOrder.
CascadeOrder is always ignoreCascadeOrder after [1] and can be removed.

[1] https://codereview.chromium.org/1298173004

BUG=487125

Review URL: https://codereview.chromium.org/1291873005

git-svn-id: svn://svn.chromium.org/blink/trunk@201019 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r200992.
TBR=oilpan-reviews
BUG=514651
NOTRY=true

Review URL: https://codereview.chromium.org/1309593003

git-svn-id: svn://svn.chromium.org/blink/trunk@201005 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Implement proposed shadow tree cascade order.
This CL implements the shadow tree cascade order proposed in [1].

Previously, in Blink, specificity would win over scope origin, even if the
scopes had an inner/outer scope relationship, and the order-of-appearance
was governed by the CascadeOrder type. Also, !important rules did not
apply in the reverse scope order, as the current spec says for inner/outer
scopes, and the proposal in [1] says apply between all shadow scopes.

What has been done is:

1. CascadeOrder is not used, as it represents order-of-appearance
   (Removal of CascadeOrder is not done here to make the CL smaller. Will
   be removed in a follow-up CL).

2. When collecting rules, sort after each scope instead of just after UA
   and Author since we had:

   UA important
   Author important
   Author
   UA

   and now we have (with A(n) appearing before A(n+1) in the tree-of-trees
   order):

   UA important
   Author scope A(n) important
   ...
   Author scope A(1) important
   Author scope A(1)
   ...
   Author scope A(n)
   UA

   The applyProperties code is hot, and I have made performance runs for
   the micro-benchmarks in Layout and CSS without consistent regressions.

3. Since the cascading order between scopes are just the inner/outer
   relationship in the composed tree (direction decided by !important),
   which is the same as the tree-of-trees order of the shadow trees,
   we can just traverse the DocumentOrderedList of scopes in the reverse
   order instead of doing calculation tricks for CascadeOrder values.

   Because of this, TreeBoundaryCrossingRules is now reduced to a
   DocumentOrderedList of scoping nodes, so the TreeBoundaryCrossingRules
   class is removed.

[1] https://lists.w3.org/Archives/Public/www-style/2015Jun/0303.html

BUG=452542, 455148, 487125

NOTRY=true

Review URL: https://codereview.chromium.org/1298173004

git-svn-id: svn://svn.chromium.org/blink/trunk@200994 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Sync snap-to-lines VTT cue layout steps with spec
 * Sync step documentation ('line position' -> 'line' and similar.)
 * Remove remnants of 'best position' and re-number steps.
 * Implement new cue dodging logic.

BUG=301580

Review URL: https://codereview.chromium.org/1306833003

git-svn-id: svn://svn.chromium.org/blink/trunk@200987 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Drop unused showingTrackWithSameKind declaration from HTMLMediaElement
Review URL: https://codereview.chromium.org/1304183003

git-svn-id: svn://svn.chromium.org/blink/trunk@200985 bbb929c8-8fbe-4397-9dbb-9b2b20218538
joleksy
Allow default font size changing on Linux.
Currently base rendering font size on Linux is hardcoded to 16.0 with no possibility of changing it. This patch add such possibility in RendererPreferences.

Webkit part: https://codereview.chromium.org/570243002/

BUG=

Review URL: https://codereview.chromium.org/549303004

Cr-Commit-Position: refs/heads/master@{#344746}
sigbjornf
Keep TextMetrics on the Oilpan heap always.
R=haraken
BUG=340522

Review URL: https://codereview.chromium.org/1297383003

git-svn-id: svn://svn.chromium.org/blink/trunk@200969 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
CompositorWorker is now always on the heap.
Consequently, update its IDL attribute to [GarbageCollected] and adjust
the return type of its constructor.

R=haraken
BUG=522949

Review URL: https://codereview.chromium.org/1309463002

git-svn-id: svn://svn.chromium.org/blink/trunk@200964 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: have PromiseTracker callback keep a WeakPersistent<>.
For the v8 callback objects that PromiseTrackers create, insist on using
a WeakPersistent<> back reference to the PromiseTracker when Oilpan
is enabled.

R=haraken
BUG=340522

Review URL: https://codereview.chromium.org/1301253002

git-svn-id: svn://svn.chromium.org/blink/trunk@200963 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Keep auxilliary media objects on the heap always.
Fully transition MediaError, MediaKeyError and TimeRanges to Oilpan.

R=haraken
BUG=340522

Review URL: https://codereview.chromium.org/1306613002

git-svn-id: svn://svn.chromium.org/blink/trunk@200962 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r200912.
TBR=oilpan-reviews
BUG=492204
NOTRY=true

Review URL: https://codereview.chromium.org/1298253004

git-svn-id: svn://svn.chromium.org/blink/trunk@200925 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
make use of media_use_ffmpeg in BUILD.gn
Review URL: https://codereview.chromium.org/1297583004

Cr-Commit-Position: refs/heads/master@{#344525}
fs
Replace setTimeout() with runAfterLayoutAndPaint() in a few tests
This is in line with the FIXMEs in these tests, and hopefully end up
curing some flakyness. Fingers crossed.

BUG=522649, 521856

Review URL: https://codereview.chromium.org/1286093008

git-svn-id: svn://svn.chromium.org/blink/trunk@200903 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
use more specific variables in net/BUILD.gn
Review URL: https://codereview.chromium.org/1290383005

Cr-Commit-Position: refs/heads/master@{#344492}
davve
Refactor code for calculating background image geometry
Extract BoxPainter::calculateBackgroundImageGeometry implementation
and related functions to the BackgroundImageGeometry class. This
enables shrinking the API surface of BackgroundImageGeometry and eases
further code health improvements.

BUG=521481

Review URL: https://codereview.chromium.org/1300103003

git-svn-id: svn://svn.chromium.org/blink/trunk@200850 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Avoid floating point when calculating the actual column count.
It's too inaccurate.

BUG=502407
R=jchaffraix@chromium.org,leviw@chromium.org

Review URL: https://codereview.chromium.org/1285273004

git-svn-id: svn://svn.chromium.org/blink/trunk@200848 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Store SVGResourcesCache inline in SVGDocumentExtensions
Indirections--

BUG=521334

Review URL: https://codereview.chromium.org/1296353004

git-svn-id: svn://svn.chromium.org/blink/trunk@200845 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Don't register excessive pending SVG resources
When an SVG resource was destroyed, it would notify the
SVGResourcesCache, which would walk the entire cache, notify the layout
object and add a "pending" entry for the id referring to the
corresponding element.
This would mean that every layout object which had any kind of resource
would get a "pending" reference from every id to itself - regardless of
if it ever referred to a resource with the given id. In the particular
test, this resulted in a fairly large (ever-growing) "pending" element
sets because there was persistent resource references in the document.

Fix by only adding "pending" entries for the current clients of the
resource that's being destroyed.
SVGResourcesCache::resourceDestroyed is removed in favor of new method
detachAllClients() in LayoutSVGResourceContainer. The part that
unregistered the resource itself as a client is removed in favor of the
pre-existing call to clientDestroyed() already existing in
LayoutSVGModelObject::willBeDestroyed (delegated to from the resource.)
SVGResources::resourceDestroyed is changed to not call
removeAllClientsFromCache() on the resource being passed - this is
instead done once after having cleared the references in all the
clients.

With this change, the "cycle time" of the test in the bug changes from
linearly increasing to constant.

BUG=521334

Review URL: https://codereview.chromium.org/1302713003

git-svn-id: svn://svn.chromium.org/blink/trunk@200840 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Recalculate intrinsic widths in the old containing block chain when going out of flow.
When an object goes out of flow, it no longer contributes to the intrinisic
widths of its parents. We need to mark them for recalculation while we can
still walk that ancestry chain, i.e. before applying the style change.

BUG=521819
R=esprehn@chromium.org,leviw@chromium.org

Review URL: https://codereview.chromium.org/1294063005

git-svn-id: svn://svn.chromium.org/blink/trunk@200836 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
libgtk2ui should only add the cups config if use_cups is true
The cups gn config is defined inside a use_cups block,
therefore other targets should only try to add this config
inside another use_cups block.

Review URL: https://codereview.chromium.org/1296043003

Cr-Commit-Position: refs/heads/master@{#344268}
mostynb
pkg-config.py should use --libs instead of --libs-only-l --libs-only-L
When specifying both --libs-only-l and --libs-only-L to
pkg-config, the results from the latter are not included.
This feels like a bug in pkg-config, reported upstream:
https://bugs.freedesktop.org/show_bug.cgi?id=91689

Our pkg-config.py wrapper can use --libs instead of the
flags mentioned above- this includes flags from both but
maybe also some additional flags (eg -rdynamic).

BUG=522564

Review URL: https://codereview.chromium.org/1291803008

Cr-Commit-Position: refs/heads/master@{#344260}
christiank
Add glCompressedCopySubTextureCHROMIUM
This CL adds a GPU command for copying sub regions of compressed textures.
The implementation is based on glCopySubTextureCHROMIUM.

BUG=434699

Review URL: https://codereview.chromium.org/1272153004

Cr-Commit-Position: refs/heads/master@{#344220}
fs
Random clean up of SVGResourcesCache
 * Fix up some comments.

 * Rename resourcesCacheFromLayoutObject to resourcesCache; let it take
   a Document& instead (to reflect the wider "scope" it has), and make it
   return a SVGResourceCache& since the cache will always be present if
   SVGDocumentExtensions are.

 * Drop redundant qualification.

BUG=521334

Review URL: https://codereview.chromium.org/1288903003

git-svn-id: svn://svn.chromium.org/blink/trunk@200826 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Handle LocalFrame being nestedly detached by subframe.
As part of detaching a LocalFrame, its subframes are also detached. Should the
detachment of those subframes trigger a nested detach of the LocalFrame that
initiated their detachment, the LocalFrame being returned to after having
detached the subframes could well be in a detached state. The detach steps that
followed (FrameLoader operations) weren't prepared for being in a detached state
(following r199143) and failed.

And the FrameLoader shouldn't have to gracefully handle being used in a detached
state, so add an is-detached check to the LocalFrame's detach steps before continuing.
Leaving early if so.

R=dcheng,japhet
BUG=520014

Review URL: https://codereview.chromium.org/1290053003

git-svn-id: svn://svn.chromium.org/blink/trunk@200820 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Prepare for multiple !important author ranges.
This CL is split out from [1] where we support multiple author origins in
terms of shadow dom scopes. The vector of MatchedProperties contains
matched declarations from all origins in the order in which they should
be applied. For !important declarations, they are applied in the same
order within the same origin, but the order of the origins are different
as the cascading order is:

  - UA important
  - Author important
  - Author
  - UA

We used to have two ranges, one for UA and one for author to accomplish
this. However, with the normal/!important cascading order for
declarations from different shadow doms, we need multiple author ranges:

  - UA important
  - Author important scope n
  ...
  - Author important scope 1
  - Author scope 1
  ...
  - Author scope n
  - UA

We introduce an ImportantAuthorRangeIterator to iterate through the
author ranges and add iterator-style iteration for each range through the
MatchedPropertiesRange class.

As the applyMatchedProperties code is hot, I've run the blink_perf.css
tests locally. Some improved by 2-4%, some became worse by similar
percentages.

[1] https://codereview.chromium.org/1224673002/

BUG=487125
TEST=fast/css

Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=200697

Review URL: https://codereview.chromium.org/1282243002

git-svn-id: svn://svn.chromium.org/blink/trunk@200818 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
gn build: check use_udev before depending on udev
Review URL: https://codereview.chromium.org/1295303006

Cr-Commit-Position: refs/heads/master@{#344047}
mostynb
use_udev is more accurate than is_linux for udev gn deps
TBR=keybuk

Review URL: https://codereview.chromium.org/1295353002

Cr-Commit-Position: refs/heads/master@{#344046}
sigbjornf
Oilpan: fix build after r200730.
TBR=oilpan-reviews
BUG=382542
NOTRY=true

Review URL: https://codereview.chromium.org/1290593004

git-svn-id: svn://svn.chromium.org/blink/trunk@200733 bbb929c8-8fbe-4397-9dbb-9b2b20218538
davve
Use background positioning origin for repeating backgrounds
When support for 4-value syntax for background-position was added,
only the non-repeating case was actually tested and render support for
the non-top-left anchor points were missing.

This patch adds render support and a simple test for the three anchor
positions that wasn't supported before for repeated/tiled
backgrounds.

BUG=488707,521481

Review URL: https://codereview.chromium.org/1287293002

git-svn-id: svn://svn.chromium.org/blink/trunk@200718 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mmaliszkiewicz
Allow enable_hangout_services_extension overriding in gn build
BUG=

Review URL: https://codereview.chromium.org/1299543005

Cr-Commit-Position: refs/heads/master@{#343871}
davve
Mark BackgroundImageGeometry as stack allocated
BUG=521481

Review URL: https://codereview.chromium.org/1297913003

git-svn-id: svn://svn.chromium.org/blink/trunk@200715 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Prepare for multiple !important author ranges.
This CL is split out from [1] where we support multiple author origins in
terms of shadow dom scopes. The vector of MatchedProperties contains
matched declarations from all origins in the order in which they should
be applied. For !important declarations, they are applied in the same
order within the same origin, but the order of the origins are different
as the cascading order is:

  - UA important
  - Author important
  - Author
  - UA

We used to have two ranges, one for UA and one for author to accomplish
this. However, with the normal/!important cascading order for
declarations from different shadow doms, we need multiple author ranges:

  - UA important
  - Author important scope n
  ...
  - Author important scope 1
  - Author scope 1
  ...
  - Author scope n
  - UA

We introduce an ImportantAuthorRangeIterator to iterate through the
author ranges and add iterator-style iteration for each range through the
MatchedPropertiesRange class.

As the applyMatchedProperties code is hot, I've run the blink_perf.css
tests locally. Some improved by 2-4%, some became worse by similar
percentages.

[1] https://codereview.chromium.org/1224673002/

BUG=487125
TEST=fast/css

Review URL: https://codereview.chromium.org/1282243002

git-svn-id: svn://svn.chromium.org/blink/trunk@200697 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
valueForLength() cannot do anything with min-intrinsic.
Length::intrinsic() doesn't return true for min-intrinsic. isLegacyIntrinsic()
does. But use isIntrinsicOrAuto() to catch both intrinsic, legacy-intrinsic and
auto values, since that seems to be a rather popular way of doing things.
Nobody seems to call isLegacyIntrinsic() directly. Regarding auto values here,
it doesn't really matter whether we call valueForLength() or not, since they'll
resolve to 0 anyway.

BUG=521526
R=leviw@chromium.org,robhogan@gmail.com

Review URL: https://codereview.chromium.org/1292163005

git-svn-id: svn://svn.chromium.org/blink/trunk@200695 bbb929c8-8fbe-4397-9dbb-9b2b20218538
davve
Remove unused parameter to BackgroundImageGeometry::setHasNonLocalGeometry()
BUG=521481

Review URL: https://codereview.chromium.org/1298653003

git-svn-id: svn://svn.chromium.org/blink/trunk@200642 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Initial support for nested multicol layout.
Nested column balancing doesn't work yet. Also no support for mapping visual
points to flow thread points (which is used by a few operations, but not by the
most common ones, like painting and hit-testing).

There are other corner-cases to sort out, too.

Still no support for printing multicol documents, but that's the ultimate goal
of this work.

BUG=447718
R=jchaffraix@chromium.org,leviw@chromium.org

Review URL: https://codereview.chromium.org/1292163002

git-svn-id: svn://svn.chromium.org/blink/trunk@200639 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Move some members of the Selection interface out of the non-standard section
BUG=391673
R=yoichio@chromium.org

Review URL: https://codereview.chromium.org/1283233003

git-svn-id: svn://svn.chromium.org/blink/trunk@200638 bbb929c8-8fbe-4397-9dbb-9b2b20218538
davve
Make LayoutBoxModelObject const when passed to calculateBackgroundImageGeometry
BUG=521481

Review URL: https://codereview.chromium.org/1298553004

git-svn-id: svn://svn.chromium.org/blink/trunk@200637 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Conditionally bail out earlier in Heap::reportMemoryUsageForTracing()
R=haraken
BUG=474470

Review URL: https://codereview.chromium.org/1301463002

git-svn-id: svn://svn.chromium.org/blink/trunk@200608 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Add missing getTraceCategoryEnabledFlag() override.
For the Platform object used by ResourceTest, add required
override of getTraceCategoryEnabledFlag(). Needed following
the addition GC tracing in Blink r200146.

R=haraken
BUG=521230

Review URL: https://codereview.chromium.org/1292983003

git-svn-id: svn://svn.chromium.org/blink/trunk@200606 bbb929c8-8fbe-4397-9dbb-9b2b20218538
davve
Remove unnecessary declaration
All test elements already have the equivalent 'background-repeat:
no-repeat' declaration.

BUG=488707

Review URL: https://codereview.chromium.org/1290913003

git-svn-id: svn://svn.chromium.org/blink/trunk@200542 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Don't require a valid reference scope for a <use> shadow tree update
When determining if a URL-string was pointing to an internal or external
resource, the null-string was considered external because it does not
start w/ '#' and Document::completeURL will explicitly return a null KURL
in that case. The latter means that the comparison against the document
URL will fail - i.e. the "URL" will be considered to be external.
Due to this, no attempt to rebuild the shadow-tree will be made, leaving
it in an inconsistent state.
Fix by dropping the check for a valid referenceScope in
scheduleShadowTreeRecreation
(in favor of the check in buildPendingResource).
This also fixes the case where a local reference is replaced by an
invalid remote reference (like one lacking a fragment identifier). This
would previously fail to update because it too had a null "reference"
scope.
Also convert callers of SVGURIReference::isExternalURIReference to call
isStructurallyExternal instead. This lends a bit of consistency to the
definition of "local" used in SVGUseElement. It also means that the null
'href' case is considered to be a local reference (which has no practical
consequence, but makes the handling of null be similar to the handling of
the empty string - with the exception of base URL handling.)

BUG=516051

Review URL: https://codereview.chromium.org/1287243003

git-svn-id: svn://svn.chromium.org/blink/trunk@200537 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Don't update the active cue set in detached Documents
After (or during) detaching the document, it makes very little sense to
keep updating the timeline and the set of active cues. Instead just punt
and ignore. Most importantly, this avoids trying to dispatch events to
Nodes (HTMLTrackElements precisely) during the disposal of the Document.
Remove the similar check in CueTimeline::endIgnoringUpdateRequests,
that was originally added for WK bug 105606 [1] which fixed a similar
issue, since the check in updateActiveCues should cover the relevant
part of that too.

[1] https://bugs.webkit.org/show_bug.cgi?id=105606

BUG=516298

Review URL: https://codereview.chromium.org/1282903003

git-svn-id: svn://svn.chromium.org/blink/trunk@200507 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Revert of Better handle reentrancy into DocumentLoader::dataReceived(). (patchset #10 id:180001 of https://codereview.chromium.org/1263363005/ )
Reason for revert:
ASan bots are reporting a handful of UAFs,

 http://build.chromium.org/p/chromium.webkit/builders/WebKit%20Linux%20ASAN/builds/19837

Original issue's description:
> Better handle reentrancy into DocumentLoader::dataReceived().
> 
> dataReceived() can be called reentrantly if it triggers a nested message
> loop when detaching a Document or parsing script for the new Document.
> Since dataReceived() isn't safe for reentrancy, any nested invocations
> queue the received data to be processed by the top-level invocation of
> dataReceived().
> 
> BUG=515876
> 
> Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=200436

TBR=japhet@chromium.org,kouhei@chromium.org,morrita@chromium.org,dcheng@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=515876

Review URL: https://codereview.chromium.org/1295553002

git-svn-id: svn://svn.chromium.org/blink/trunk@200487 bbb929c8-8fbe-4397-9dbb-9b2b20218538
haavardm
Add a info flag set when certs fails to conform to the CT policy.
This is useful for clients that only wants to show CT
info if the certificate is not CT compliant.

BUG=None

Review URL: https://codereview.chromium.org/1287023003

Cr-Commit-Position: refs/heads/master@{#343170}
mstensho
Clean up PageBoundaryRule enum.
Replace the {Include,Exclude}PageBoundary values with
AssociateWith{Former,Latter}Page, since it was rather confusing what was meant
by "include" or "exclude" in most situations. Also remove default
PageBoundaryRule values from method declarations taking this enum as a
parameter, since there's really no natural default value, and each caller
should be aware of what it's asking for.

Realizing what's actually going on here allowed for some cleanup in
nextPageLogicalTop().

Also made the enum public, since there are public methods taking it as a
parameter.

No behavioral changes intended.

R=leviw@chromium.org

Review URL: https://codereview.chromium.org/1287113002

git-svn-id: svn://svn.chromium.org/blink/trunk@200438 bbb929c8-8fbe-4397-9dbb-9b2b20218538
davve
Remove effective zoom from font metrics before length calculations
Since https://codereview.chromium.org/308123010 and
https://codereview.chromium.org/323053002, the effectiveZoom is
included in the style's font. This patch adds missing code to
SVGLengthContext to remove the effective zoom before computing ex
(x-height) and ch (zero-width) units.

BUG=519133

Review URL: https://codereview.chromium.org/1283463003

git-svn-id: svn://svn.chromium.org/blink/trunk@200393 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Fix a few typos in the IPC message macros documentation
BUG=none
R=tsepez@chromium.org

Review URL: https://codereview.chromium.org/1284593004

Cr-Commit-Position: refs/heads/master@{#342990}
mstensho
Move code for locating the containing flow thread out of LayoutObject.
BUG=447718
R=leviw@chromium.org

Review URL: https://codereview.chromium.org/1286693003

git-svn-id: svn://svn.chromium.org/blink/trunk@200345 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Auto-height table cells must stop percentage resolution of child heights.
This also needs to apply when a table cell is anonymous. The spec only mentions
*blocks* when it comes to skipping anonymous objects for resolving percentages
[1]. No mention of table cells anywhere.

[1] http://www.w3.org/TR/2011/REC-CSS2-20110607/visuren.html#anonymous-block-level

BUG=518210
R=leviw@chromium.org

Review URL: https://codereview.chromium.org/1289463002

git-svn-id: svn://svn.chromium.org/blink/trunk@200337 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Add toLayoutMultiColumnFlowThread().
BUG=447718
R=leviw@chromium.org

Review URL: https://codereview.chromium.org/1282923004

git-svn-id: svn://svn.chromium.org/blink/trunk@200336 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Handle Performance object creation on loader-less Documents.
Speculatively fix reported null crasher in Performance ctor,
checking if Document has a DocumentLoader before accessing.
Should this object be created while its frame is being detached
(see bug stack trace), this can potentially happen.

R=haraken,ksakamoto
BUG=518775

Review URL: https://codereview.chromium.org/1287513003

git-svn-id: svn://svn.chromium.org/blink/trunk@200307 bbb929c8-8fbe-4397-9dbb-9b2b20218538
alexanderk
Convert octane test score to float first
to prevent fails on slow devices

BUG=508907
CQ_EXTRA_TRYBOTS=tryserver.chromium.perf:linux_perf_bisect;tryserver.chromium.perf:mac_perf_bisect;tryserver.chromium.perf:win_perf_bisect

Review URL: https://codereview.chromium.org/1230063007

Cr-Commit-Position: refs/heads/master@{#342772}
mstensho
Prepare height calculation methods in LayoutFlowThread for nested multicol.
Rename pageLogicalHeight() in LayoutMultiColumnSet to
pageLogicalHeightForOffset(), so that it matches the naming of
pageRemainingLogicalHeightForOffset().

Move the innards to LayoutMultiColumnSet. And some 0 -> LayoutUnit() cleanup.

Had to adjust some call sites because of this and introduce
isPageLogicalHeightKnown().

No behavioral changes intended for now.

R=jchaffraix@chromium.org,leviw@chromium.org
BUG=447718

Review URL: https://codereview.chromium.org/1282353002

git-svn-id: svn://svn.chromium.org/blink/trunk@200272 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
A line that doesn't fit in a column shouldn't pull preceding floats to the next column.
Require that a line box be flush with the content edge of the block if it is to
pull its parent block to the next column.

Also cleaned up the surrounding code and documented it. It had a rather complex
if-expression not really suitable for human consumption as it was, and adding
even more to it would have been just evil. No other behavioral changes
intended, apart from the actual bugfix.

BUG=516296
R=jchaffraix@chromium.org,leviw@chromium.org

Review URL: https://codereview.chromium.org/1277613004

git-svn-id: svn://svn.chromium.org/blink/trunk@200269 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Make LayoutFlowThread::fragmentsBoundingBox() faster.
It used to let collectLayerFragments() handle the job, with an infinite dirty
rectangle. This forced us to collect all columns, when we really only needed to
know the bounding boxes of the first and the last columns in each fragmentainer
group.

This gives a major speed-up in the Layout/multicol/tall-content-short-columns-*
tests. It will also make it possible to submit a fix for bug 502407 and write a
test for it that doesn't time out.

R=jchaffraix@chromium.org,leviw@chromium.org

Review URL: https://codereview.chromium.org/1265933002

git-svn-id: svn://svn.chromium.org/blink/trunk@200264 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
GC plugin: consider references equal to raw pointers.
Unmanaged raw pointers to managed(GC) classes aren't safe across GCs,
hence fields with raw pointer types to such GCed classes are identified
and reported as errors or warnings.

Extend that checking to also apply to reference pointer types.

R=haraken
BUG=420515

Review URL: https://codereview.chromium.org/1274403002

Cr-Commit-Position: refs/heads/master@{#342615}
sigbjornf
Oilpan: tidy up some inter-stack object references.
Add uses of STACK_ALLOCATED() so as to allow these objects to safely
keep references to other stack allocated objects.

For other heap allocated objects that keep references to GCed objects,
convert these into appropriate Member<> refs.

R=haraken, philipj@opera.com
BUG=509911

Review URL: https://codereview.chromium.org/1278103002

git-svn-id: svn://svn.chromium.org/blink/trunk@200242 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Revert of Elements whose contents start with an astral Unicode symbol disappear when CSS `::first-letter` is … (patchset #9 id:160001 of https://codereview.chromium.org/1133853006/ )
Reason for revert:
ASan picking up a number of UAF failures due to this one,

 http://build.chromium.org/p/chromium.webkit/builders/WebKit%20Linux%20ASAN/builds/19782

Original issue's description:
> Elements whose contents start with an astral Unicode symbol disappear when CSS `::first-letter` is applied to them.
> 
> This CL is inspired by http://trac.webkit.org/changeset/172513
> written by Myles C. Maxfield.
> The previous code assumed that all "characters" are exactly 1 16-bit code unit wide.
> Instead, use numCharactersInGraphemeClusters().
> 
> For blink, we add countCharactersAndGraphemesInCluster to bring a similar
> functionality to blink. This api is based on countGraphemesInCluster and improved
> to figure out the number of characters and grapheme at the same time in the given clusters.
> 
> BUG=401945
> 
> Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=200227

TBR=leviw@chromium.org,eae@chromium.org,esprehn@chromium.org,drott@chromium.org,shivamidow@gmail.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=401945

Review URL: https://codereview.chromium.org/1277803004

git-svn-id: svn://svn.chromium.org/blink/trunk@200228 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Revert of Upon load failure, remove sync script from execution queue. (patchset #4 id:60001 of https://codereview.chromium.org/1263743002/ )
Reason for revert:
Crashes due to a release assert added here are being reported in https://code.google.com/p/chromium/issues/detail?id=517970 . Better revert this until that can be looked into more closely.

Original issue's description:
> Upon load failure, remove sync script from execution queue.
> 
> If a script element is to be loaded synchronously and executed in order,
> it's queued for execution before loading. Should that load fail, the
> immediate execution of the script,
> 
>   https://html.spec.whatwg.org/#execute-the-script-block
> 
> should only result in an error event being dispatched.
> 
> Implementation-wise, along with signalling error, the failed script must also
> be removed from the internal in-order execution queue. We're done with
> (not) executing the script and failure to remove it will cause subsequent
> processing of the script execution queue to see the script as having failed
> to load and re-dispatch an error event.
> 
> [This is a reland of r199656, which wrongly updated&removed scripts from the
> in-order queue.]
> 
> R=haraken
> BUG=503077
> 
> Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=200045

TBR=haraken@chromium.org,tkent@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=503077

Review URL: https://codereview.chromium.org/1277273002

git-svn-id: svn://svn.chromium.org/blink/trunk@200186 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: catch some self-referential leaks (main thread.)
Track the number of SelfKeepAlive<>s that are currently active on
the main thread, so as to be able to detect if any remains on
shutdown. A clear indication of a leak, if so.

Also add some debugging support for detecting thread shutdown
leaks due to Persistent<>s not being released; see
PersistentRegion::dumpLivePersistents() and ThreadState::cleanup().

R=haraken
BUG=420515

Review URL: https://codereview.chromium.org/1275863002

git-svn-id: svn://svn.chromium.org/blink/trunk@200174 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: turn EventHandlerRegistry::m_frameHost into a traced reference.
R=haraken
BUG=509911

Review URL: https://codereview.chromium.org/1280043002

git-svn-id: svn://svn.chromium.org/blink/trunk@200171 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: convert DOMWindowIndexedDatabase::m_window to a Member<>.
R=haraken
BUG=509911

Review URL: https://codereview.chromium.org/1277653006

git-svn-id: svn://svn.chromium.org/blink/trunk@200170 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: mark StylePropertySet::PropertyReference as stack allocated.
Annotate this object as stack allocated + turn its StylePropertySet
reference into a Member.

R=haraken
BUG=509911

Review URL: https://codereview.chromium.org/1276243002

git-svn-id: svn://svn.chromium.org/blink/trunk@200169 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
mention MPL tri-licensed code in our copy of zlib
Review URL: https://codereview.chromium.org/1279843003

Cr-Commit-Position: refs/heads/master@{#342346}
mostynb
mention MPL tri-licensed code in our copy of libpng
Review URL: https://codereview.chromium.org/1274513004

Cr-Commit-Position: refs/heads/master@{#342345}
sigbjornf
Oilpan: have ResourceFetcher use a prefinalizer.
The changes in r200133 unsafely allows access to other heap objects during
the finalization of ResourceFetcher. Perform the clearing of preload
resources using a prefinalizing action instead.

R=haraken
BUG=509911

Review URL: https://codereview.chromium.org/1270343003

git-svn-id: svn://svn.chromium.org/blink/trunk@200165 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: tidy StylePropertySerializer's handling of GCed objects.
Add the required annotations + correctly represent and trace embedded
StylePropertySet references.

R=haraken
BUG=509911

Review URL: https://codereview.chromium.org/1278143002

git-svn-id: svn://svn.chromium.org/blink/trunk@200164 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: catch some self-referential leaks (main thread.)
Track the number of SelfKeepAlive<>s that are currently active on
the main thread, so as to be able to detect if any remains on
shutdown. A clear indication of a leak, if so.

Also add some debugging support for detecting thread shutdown
leaks due to Persistent<>s not being released; see
PersistentRegion::dumpLivePersistents() and ThreadState::cleanup().

R=haraken
BUG=420515

Review URL: https://codereview.chromium.org/1275863002

git-svn-id: svn://svn.chromium.org/blink/trunk@200163 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Fix WebRemoteFrame leak in DetachRemoteFrame unit test.
TBR=haraken
BUG=none

Review URL: https://codereview.chromium.org/1282443002

git-svn-id: svn://svn.chromium.org/blink/trunk@200160 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
GC plugin: consider references equal to raw pointers.
Unmanaged raw pointers to managed(GC) classes aren't safe across GCs,
hence fields with raw pointer types to such GCed classes are identified
and reported as errors or warnings.

Extend that checking to also apply to reference pointer types.

R=haraken
BUG=420515

Review URL: https://codereview.chromium.org/1274403002

Cr-Commit-Position: refs/heads/master@{#342320}
sigbjornf
Oilpan: handle MediaControls like the GCed object it is.
R=haraken
BUG=340522

Review URL: https://codereview.chromium.org/1274273003

git-svn-id: svn://svn.chromium.org/blink/trunk@200148 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Fix WebRemoteFrame leak in WebFrameSwapTest.SwapParentShouldDetachChildren
R=haraken
BUG=none

Review URL: https://codereview.chromium.org/1274283002

git-svn-id: svn://svn.chromium.org/blink/trunk@200144 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
convince gcc that cpu_used et al are always initialized
Without this, gcc thinks that min_quantizer, max_quantizer and cpu_used
are used uninitialized and emits a warning which is promoted to an error.

BUG=455409
TBR=bbudge

Review URL: https://codereview.chromium.org/1276633004

Cr-Commit-Position: refs/heads/master@{#342214}
mostynb
mention NPL/MPL source files in our libjpeg licences
Review URL: https://codereview.chromium.org/1272633005

Cr-Commit-Position: refs/heads/master@{#342151}
sigbjornf
Oilpan: fix build after r200105.
TBR=oilpan-reviews
BUG=514755
NOTRY=true

Review URL: https://codereview.chromium.org/1277483005

git-svn-id: svn://svn.chromium.org/blink/trunk@200107 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Deflake http/tests/misc/script-sync-slow-scripts-onerror.html
R=
BUG=503077

Review URL: https://codereview.chromium.org/1279743003

git-svn-id: svn://svn.chromium.org/blink/trunk@200106 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Fix WebLocalFrame leaks in unit tests.
Not calling close() on locally created WebLocalFrames will keep
the objects alive on shutdown. Add the required calls to
WebViewTest.ClientTapHandlingNullWebViewClient and
ParameterizedWebFrameTest.CreateLocalChildWithPreviousSibling.

R=haraken
BUG=none

Review URL: https://codereview.chromium.org/1273023002

git-svn-id: svn://svn.chromium.org/blink/trunk@200103 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: have WebRemoteFrameImpl use SelfKeepAlive<>.
Canonicalize WebRemoteFrameImpl's self-referential persistent as
a SelfKeepAlive<>.

R=haraken
BUG=420515

Review URL: https://codereview.chromium.org/1276513002

git-svn-id: svn://svn.chromium.org/blink/trunk@200048 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
CrossThreadPersistent invalidation: add missing orphaned check.
The main thread may well be detached before other Oilpan-attached threads.
Its orphaned heap pages must consequently be checked for when doing later
invalidation of thread-local CrossThreadPersistent<>s.

R=haraken
BUG=517031

Review URL: https://codereview.chromium.org/1271243003

git-svn-id: svn://svn.chromium.org/blink/trunk@200046 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Upon load failure, remove sync script from execution queue.
If a script element is to be loaded synchronously and executed in order,
it's queued for execution before loading. Should that load fail, the
immediate execution of the script,

  https://html.spec.whatwg.org/#execute-the-script-block

should only result in an error event being dispatched.

Implementation-wise, along with signalling error, the failed script must also
be removed from the internal in-order execution queue. We're done with
(not) executing the script and failure to remove it will cause subsequent
processing of the script execution queue to see the script as having failed
to load and re-dispatch an error event.

[This is a reland of r199656, which wrongly updated&removed scripts from the
in-order queue.]

R=haraken
BUG=503077

Review URL: https://codereview.chromium.org/1263743002

git-svn-id: svn://svn.chromium.org/blink/trunk@200045 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: have CSSImageGeneratorValue use SelfKeepAlive<>.
Canonicalize CSSImageGeneratorValue's self-referential persistent as
a SelfKeepAlive<>.

R=haraken
BUG=366546

Review URL: https://codereview.chromium.org/1261253004

git-svn-id: svn://svn.chromium.org/blink/trunk@200044 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: have WebLocalFrameImpl use SelfKeepAlive<>.
Canonicalize WebLocalFrameImpl's self-referential persistent as
a SelfKeepAlive<>.

R=haraken
BUG=420515

Review URL: https://codereview.chromium.org/1268103003

git-svn-id: svn://svn.chromium.org/blink/trunk@200038 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Switch SuspendableScriptExecutor over to using SelfKeepAlive<>.
Have this Oilpan-hosted object keep itself alive using SelfKeepAlive<>,
moving it onto the Oilpan heap by default in the process.

R=haraken
BUG=420515

Review URL: https://codereview.chromium.org/1258653003

git-svn-id: svn://svn.chromium.org/blink/trunk@200036 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Disallow relayout roots inside multicol.
It's just too complicated to figure out if it's safe to let a descendant of a
multicol container be a relayout root, so disallow it.

BUG=515260
R=jchaffraix@chromium.org,leviw@chromium.org

Review URL: https://codereview.chromium.org/1271513004

git-svn-id: svn://svn.chromium.org/blink/trunk@200034 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: lazily create SelfKeepAlive<>'s persistent reference.
To reduce overhead of having to register a Persistent<> that may
only have a non-null reference for a shorter interval, instantiate
the Persistent<> on assignment. And clear it out completely when
the SelfKeepAlive<> is cleared.

R=haraken
BUG=420515

Review URL: https://codereview.chromium.org/1263313003

git-svn-id: svn://svn.chromium.org/blink/trunk@200028 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Gracefully handle XMLDocumentParser being detached by mutation events.
Should a mutation event handler run while flushing out parser-buffered text,
we could end up in a detached state, something the implementation wasn't
prepared for.

Firm up exitText() usage, and rename it as updateLeafTextNode(). Also attempt
to make enterText() more descriptive as createLeafTextNodeIfNeeded().

R=haraken,tkent,kouhei
BUG=516290

Review URL: https://codereview.chromium.org/1267283002

git-svn-id: svn://svn.chromium.org/blink/trunk@200026 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Drop [TreatNullAs=NullString] for Document.designMode
Because Document::setDesignMode ignores everything except "yes" and "no"
this change is not observable.

BUG=460722

Review URL: https://codereview.chromium.org/1263043005

git-svn-id: svn://svn.chromium.org/blink/trunk@199988 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Remove unnecessary ENABLE(OILPAN) usage.
R=yutak
BUG=513729

Review URL: https://codereview.chromium.org/1268853009

git-svn-id: svn://svn.chromium.org/blink/trunk@199962 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Have ScriptPromiseResolver on the Oilpan heap always.
R=yhirano,haraken,jochen
BUG=340522

Review URL: https://codereview.chromium.org/1233173002

git-svn-id: svn://svn.chromium.org/blink/trunk@199953 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Include overflow when setting the logical flowthread bottom on the last column set.
The logical height of the flow thread may be shorter than the start flowthread
offset of the last column set, if there's overflowing content. We used to have
expandToEncompassFlowThreadOverflow() to correct this, but let's include
overflow right away, instead of setting the bottom offset twice (first
incorrectly, then correctly).

This avoids an assertion failure (in this case the assertion was harmless,
though).

BUG=512362
R=dsinclair@chromium.org,jchaffraix@chromium.org,leviw@chromium.org

Review URL: https://codereview.chromium.org/1266553002

git-svn-id: svn://svn.chromium.org/blink/trunk@199952 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Need to check for positional rules on parent with style change.
A local style change on the parent inhibited checks for positional rule
changes on children with an early return. Removed that early return.

R=dstockwell@chromium.org
BUG=510732

Review URL: https://codereview.chromium.org/1264573004

git-svn-id: svn://svn.chromium.org/blink/trunk@199950 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Remove HasInlinedTraceMethod<T>.
Follow up r193615's retirement of ENABLE(INLINE_TRACE) and remove the
now-unused HasInlinedTraceMethod<T> template.

R=haraken
BUG=420515

Review URL: https://codereview.chromium.org/1270043002

git-svn-id: svn://svn.chromium.org/blink/trunk@199942 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Invalidate cross-thread persistents on heap termination.
When a thread is detached from Oilpan and its ThreadState is
finalized, arrange for any CrossThreadPersistent<>s pointing
into one of its heaps to be cleared out. Not doing so risks
dangling pointers to be followed upon GC or by anyone else
still keeping these CrossThreadPersistent<>s alive.

The only operation that other threads are allowed over
CrossThreadPersistent<> (CTP) once the ThreadState has been
destructed, is to destruct the CTP.

R=haraken
BUG=515432

Review URL: https://codereview.chromium.org/1265103003

git-svn-id: svn://svn.chromium.org/blink/trunk@199891 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Reliably cancel in-progress CryptoResult(Impl) upon shutdown.
Move CryptoResult to the Oilpan heap and in order to support such
Oilpan-hosted CryptoResults mainly, also separate out the signalling
of crypto operation cancellation.

CryptoResults are wrapped up (WebCryptoResult) and passed to the
embedder's webcrypto layer upon initiating a crypto operation.
Should the Blink thread that initiated that operation be shut
down (before that crypto operation completes, possibly), it will
go through its shutdown steps, including notifying CryptoResults
that it is stopping. At which point the implementation has to
effectively cancel the ongoing crypto operation.

The Oilpan heaps belonging to the thread shutting down cannot be
reliably used to communicate cancellation status, as they're about
to be detached and destructed also. Hence, we keep a separate
off-heap cancellation object that can live beyond the Blink thread
that initiated it. And can be used by the webcrypto layer to 
safely query for cancellation status after the Blink thread has
been shut down entirely.

As webcrypto operations are handled on separate threads, the
cancellation object references can be safely accessed from any
thread, including handling their eventual destruction. The same goes
for the Oilpan-hosted CryptoResult -- external references (by way
of WebPrivatePtr<>) can be held and destructed from any thread.

R=haraken,eroman,tkent
BUG=440450

Review URL: https://codereview.chromium.org/1228373006

git-svn-id: svn://svn.chromium.org/blink/trunk@199878 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Tidy up ActiveDOMObject destructor.
R=haraken
BUG=462949

Review URL: https://codereview.chromium.org/1266443003

git-svn-id: svn://svn.chromium.org/blink/trunk@199845 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Revert of Upon load failure, remove sync script from execution queue. (patchset #3 id:40001 of https://codereview.chromium.org/1263743002/)
Reason for revert:
Speculatively reverting to see if it addresses the recent crashes being reported via http://crbug.com/515419

Original issue's description:
> Upon load failure, remove sync script from execution queue.
> 
> If a script element is to be loaded synchronously and executed in order,
> it's queued for execution before loading. Should that load fail, the
> immediate execution of the script,
> 
>   https://html.spec.whatwg.org/#execute-the-script-block
> 
> should only result in an error event being dispatched.
> 
> Implementation-wise, along with signalling error, the failed script must also
> be removed from the internal in-order execution queue. We're done with
> (not) executing the script and failure to remove it will cause subsequent
> processing of the script execution queue to see the script as having failed
> to load and re-dispatch an error event.
> 
> R=haraken
> BUG=503077
> 
> Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=199656

TBR=haraken@chromium.org,tkent@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=503077

Review URL: https://codereview.chromium.org/1271443002

git-svn-id: svn://svn.chromium.org/blink/trunk@199788 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
fix typo in DelegatedFrameHost::SwapDelegatedFrame arg name
BUG=503594
TBR=wjmaclean

Review URL: https://codereview.chromium.org/1263923003

Cr-Commit-Position: refs/heads/master@{#341204}
sigbjornf
Remove unused CallbackStack::swap() method.
R=haraken
BUG=420515

Review URL: https://codereview.chromium.org/1262993002

git-svn-id: svn://svn.chromium.org/blink/trunk@199739 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Unify code paths for fixed and absolutely positioned objects in accumulateOffsetTowardsAncestor().
Deleted most of the code specific to handling of fixed-positioned objects, and
have fixed-positioned objects use the code for absolutely positioned objects
instead. One piece needs to be kept, though: If the container of a fixed
positioned object is the viewport, we need to make sure that we call
LayoutObject::localToAbsolute() to calculate the correct position, since
DeprecatedPaintLayer::location() doesn't handle fixed-positioning properly.

This gets rid of an assertion failure that would trigger when we had a multicol
with a transform with a fixedpos.

BUG=496929
R=chrishtr@chromium.org,jchaffraix@chromium.org

Review URL: https://codereview.chromium.org/1268493002

git-svn-id: svn://svn.chromium.org/blink/trunk@199725 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Eagerly finalize V8AbstractEventListeners.
The listener's wrapper needs to be promptly cleared so as to prevent
untidy accesses to a poisoned heap by v8's GC if the listener is instead
lazily swept & finalized.

R=haraken
BUG=491488

Review URL: https://codereview.chromium.org/1263953002

git-svn-id: svn://svn.chromium.org/blink/trunk@199721 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
collectLayerFragments() expects a dirty rect relative to the multicol container.
It was actually relative to the flow thread (see call site at
DeprecatedPaintLayer::collectFragments()), but it's documented as "relative to
the multicol container" in MultiColumnFragmentainerGroup::collectLayerFragments().
So make it relative to the multicol container, then.

There was no layout test to catch this fundamental RTL issue, so I added one.

BUG=511655
R=dsinclair@chromium.org,jchaffraix@chromium.org,leviw@chromium.org

Review URL: https://codereview.chromium.org/1259943002

git-svn-id: svn://svn.chromium.org/blink/trunk@199697 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Get rid of subtract-one-whole-pixel hack.
Rectangles in Blink are endpoint-exclusive. There's a hack in the multicol code
to work around this (when mapping from block positions to column indices), but
it's not corner-case-proof. It both causes rendering errors and a recently
added assertion to fail. Fixed this.

R=dsinclair@chromium.org,jchaffraix@chromium.org,leviw@chromium.org

Review URL: https://codereview.chromium.org/1258883003

git-svn-id: svn://svn.chromium.org/blink/trunk@199683 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Revert of Refactor BeforeInstallPromptEvent to use ScriptPromiseProperty (patchset #11 id:250001 of https://codereview.chromium.org/1247283004/)
Reason for revert:
Causes app_banner/app-banner-event-prompt.html failure,

  http://test-results.appspot.com/dashboards/flakiness_dashboard.html#tests=app_banner%2Fapp-banner-event-prompt.html

Original issue's description:
> Refactor BeforeInstallPromptEvent to use ScriptPromiseProperty
> 
> This stops the event holding a ScriptPromise as a member, which may 
> lead to a memory leak. Instead, ScriptPromiseProperty members are held
> as members in the event. A WebCallbacks subclass is used to store a
> pointer to the necessary ScriptPromiseProperty in the associated event,
> with the interface exposed to Chromium. When a banner event is resolved,
> the WebCallbacks implementation in modules/app_banner looks up the 
> ScriptPromiseProperty and resolves its promise. This also makes
> resolving the prompt promise simpler as well, as it occurs entirely in the
> event.
> 
> This CL also removes the app-banner-event-prompt.html test from 
> LeakExpectations, and fixes some bugs in the test relating to promise
> resolution.
> 
> BUG=504675
> 
> Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=199472

TBR=mlamouri@chromium.org,yhirano@chromium.org,dominickn@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=504675

Review URL: https://codereview.chromium.org/1257823003

git-svn-id: svn://svn.chromium.org/blink/trunk@199666 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Perform initial GC to improve inspector/search test stability.
With Oilpan, inspector tests enumerating resources are susceptible to
"GC lag", including resources that have yet to be GCed and swept out.

To ensure a stable baseline for the tests, perform an initial,
flushing GC.

R=haraken
BUG=513393

Review URL: https://codereview.chromium.org/1254293008

git-svn-id: svn://svn.chromium.org/blink/trunk@199665 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Upon load failure, remove sync script from execution queue.
If a script element is to be loaded synchronously and executed in order,
it's queued for execution before loading. Should that load fail, the
immediate execution of the script,

  https://html.spec.whatwg.org/#execute-the-script-block

should only result in an error event being dispatched.

Implementation-wise, along with signalling error, the failed script must also
be removed from the internal in-order execution queue. We're done with
(not) executing the script and failure to remove it will cause subsequent
processing of the script execution queue to see the script as having failed
to load and re-dispatch an error event.

R=haraken
BUG=503077

Review URL: https://codereview.chromium.org/1263743002

git-svn-id: svn://svn.chromium.org/blink/trunk@199656 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
export the entire HTMLResourcePreloader class in shared_library builds
After https://codereview.chromium.org/1112833004/ landed, libblink_web.so
fails to link in some configurations, giving this error:

obj/third_party/WebKit/Source/core/html/parser/blink_web.HTMLResourcePreloaderTest.o:HTMLResourcePreloaderTest.cpp:function blink::HTMLResourcePreloaderTest::test(blink::PreconnectTestCase): error: undefined reference to 'vtable for blink::HTMLResourcePreloader'
/usr/bin/ld.gold: the vtable symbol may be undefined because the class is missing its key function

The blink::HTMLResourcePreloader vtable exists in lib/libwebcore_shared.so
but only as a local symbol, because I assume that the HTMLResourcePreloader
class has some un-exported virtual methods in these configuration.  So we
should be able to solve this by exporting the entire HTMLResourcePreloader
class.

Review URL: https://codereview.chromium.org/1266533002

git-svn-id: svn://svn.chromium.org/blink/trunk@199651 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Add assertion/crash test for flexbox with relpos with scrollable with abspos.
This test (attached to bug 498969) used to assert, but got fixed by accident by
the fix for bug 498770. Better add the test, in case it should regress.

BUG=498969
R=cbiesinger@chromium.org

Review URL: https://codereview.chromium.org/1261463005

git-svn-id: svn://svn.chromium.org/blink/trunk@199646 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Simplify MultiColumnFragmentainerGroup::collectLayerFragments().
No need to do so much stuff on our own in there, when we already have methods
that can do it for us.

This is just clean-up; no behavioral changes intended.

R=dsinclair@chromium.org,jchaffraix@chromium.org,leviw@chromium.org

Review URL: https://codereview.chromium.org/1252863005

git-svn-id: svn://svn.chromium.org/blink/trunk@199595 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Simplify ownership of a ThreadState's interruptors.
Have ThreadState assume ownership of interruptors registered with
addInterruptor(). That simplifies the handling on the caller side,
allowing them to register-and-forget rather than each having to
manually unregister & destruct their interruptor before shutting down.
(Not that this last step wasn't needed previously either, as ThreadState
would have destructed the interruptors upon its destruction.)

(ThreadState::removeInterruptor() is retained should it prove useful, but
currently unused.)

R=haraken
BUG=420515

Review URL: https://codereview.chromium.org/1257723002

git-svn-id: svn://svn.chromium.org/blink/trunk@199487 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
use_x11==1 is a better condition for xdisplaycheck dep
The previous condition was incorrect when building for
embedded linux without using the ozone porting layer.
use_x11==1 is used everywhere else for the xdisplaycheck
depdendency, let's do the same here.

Review URL: https://codereview.chromium.org/1256793002

Cr-Commit-Position: refs/heads/master@{#340376}
mostynb
stray c++11 ud suffix fixes for tcmalloc files
Followup to https://codereview.chromium.org/21157004 - here are a few
more warnings that we can silence.

BUG=263960

Review URL: https://codereview.chromium.org/1253873003

Cr-Commit-Position: refs/heads/master@{#340357}
mostynb
use_x11 is better than is_linux for xdisplaycheck dep in mandoline gn build
Review URL: https://codereview.chromium.org/1255843002

Cr-Commit-Position: refs/heads/master@{#340340}
alexanderk
Prevent URLRequestRedirectJob from doing async execution
when request is already canceled and job is killed.

BUG=508900,503306

Review URL: https://codereview.chromium.org/1232113002

Cr-Commit-Position: refs/heads/master@{#340298}
bratell
Revert of Precompile more in Blink in Windows for faster compilations (patchset #1 id:1 of https://codereview.chromium.org/1227953008/)
Reason for revert:
A chromium build bot broke with bad headers again. (see bug)

The pch file does not seem to be recompiled when it should be.

BUG=511945


Original issue's description:
> Precompile more in Blink in Windows for faster compilations
>  
> One reason Blink is slow to compile is that there is a lot of code
> included in every compilation unit since everything depends on either
> LayoutObject.h or Document.h and those in turn include huge portions
> of the rest of Blink.
> 
> By precompiling LayoutObject.h and Document.h the compilation of core and
> modules in Blink can be 4 times faster (4 minutes instead of
> 19 minutes on my computer).
> 
> The downside is that it will introduce Document.h and LayoutObject.h
> also in compilation units that didn't expect it, for instance
> XPathGrammer.y that suddenly will have both blink::Path and
> blink::XPath::Path in scope (and blink::Filter / blink::XPath::Filter)
> 
> Note that distributed compilation system disables precompiled headers
> globally so this will *not* make trybots faster.
> 
> This is a new attempt at this change after bug 511945 scared us into
> reverting it. We still do not know the exact cause of 511945 but we
> are making another attempt with this.
> 
> BUG=495697
> R=thakis@chromium.org,sigbjornf@chromium.org
> 
> Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=199168

TBR=brucedawson@chromium.org,jam@chromium.org,scottmg@chromium.org,thakis@chromium.org,sigbjornf@opera.com,tasak@google.com,haraken@chromium.org,philipj@opera.com
BUG=495697

Review URL: https://codereview.chromium.org/1259563002

git-svn-id: svn://svn.chromium.org/blink/trunk@199436 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Sync menulist-appearance-basic.html (Oilpan) expectations.
fast/forms/select/menulist-appearance-basic.html is no longer too
slow in Debug builds.

TBR=oilpan-reviews
BUG=397425
NOTRY=true

Review URL: https://codereview.chromium.org/1257673002

git-svn-id: svn://svn.chromium.org/blink/trunk@199435 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Revert of Add ExecuteJavaScriptForTest and make all tests use it (patchset #15 id:270001 of https://codereview.chromium.org/1123783002/)
Reason for revert:
Speculatively reverting to address failures,

 http://build.chromium.org/p/chromium.webkit/builders/WebKit%20Linux/builds/51422

Original issue's description:
> Add ExecuteJavaScriptForTest and make all tests use it
>
> Additionally, restrict the URLs that ExecuteJavaScript can be invoked on
> to chrome-controlled URLs.
>
> R=jam@chromium.org
> BUG=507809
>
> Committed: https://crrev.com/904f14ebdc3bdb8e893df0a3211d09de42d5619c
> Cr-Commit-Position: refs/heads/master@{#340231}

TBR=jam@chromium.org,mdjones@chromium.org,torne@chromium.org,jochen@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=507809

Review URL: https://codereview.chromium.org/1257603003

Cr-Commit-Position: refs/heads/master@{#340241}
sigbjornf
Make ContentDecryptionModuleResult cross-thread destructible.
So as to handle cross-thread uses of the corresponding
WebContentDecryptionModuleResult (WCDMResult), have WCDMResult
keep a cross-thread persistent (CrossThreadPersistent<>) by
way of its WebPrivatePtr<> reference.

CrossThreadPersistent<> can be destructed on a thread other than
the Oilpan thread creating it; the thread does not have to be
attached to Oilpan.

To control if WebPrivatePtr<> should use a cross-thread persistent
or not, it is now parameterized over an enum controlling which.
The default is to use same-thread persistents. If

  WebPrivatePtr<T, AllowCrossThreadDestruction>

is for a ref-counted T, T must derive from ThreadSafeRefCounted<T>. 

R=jrummell,xhwang,haraken,tkent
BUG=509588

Review URL: https://codereview.chromium.org/1249913002

git-svn-id: svn://svn.chromium.org/blink/trunk@199421 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: reinstate nullptr initialization following r199382.
TBR=oilpan-reviews
BUG=510918
NOTRY=true

Review URL: https://codereview.chromium.org/1249333003

git-svn-id: svn://svn.chromium.org/blink/trunk@199393 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r199375.
TBR=oilpan-reviews
BUG=350571
NOTRY=true

Review URL: https://codereview.chromium.org/1248353002

git-svn-id: svn://svn.chromium.org/blink/trunk@199378 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Make video.webkitSupportsFullscreen an alias of document.fullscreenEnabled
The removed checks both originate from the earliest revision of this
code, for ChromeClient::supportsFullscreenForNode() and
MediaPlayer::supportsFullscren() calls respectively:
http://trac.webkit.org/changeset/49136

Both were conservatively left in later cleanup:
https://codereview.chromium.org/13851023
https://codereview.chromium.org/139943006

Fullscreen requests in detached documents will instead fail silently in
Fullscreen::requestFullscreen() due to the document()->isActive() check.

As for the webMediaPlayer() check, this will change the value of
video.webkitSupportsFullscreen before a video is loaded, as seen in
LayoutTests/media/video-prefixed-fullscreen.html. However, at worst
this ought to cause custom fullscreen buttons to be shown too early,
just as they would if using one of the other fullscreen APIs without
checking that the video is ready to play.

Overall risk ought to be low given the low usage of these APIs:
https://www.chromestatus.com/metrics/feature/timeline/popularity/166
https://www.chromestatus.com/metrics/feature/timeline/popularity/168
https://www.chromestatus.com/metrics/feature/timeline/popularity/170

BUG=496637

Review URL: https://codereview.chromium.org/1240573005

git-svn-id: svn://svn.chromium.org/blink/trunk@199362 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Update documentation of Performance.timing/navigation
The specs have now been updated:
https://github.com/w3c/navigation-timing/issues/22
https://github.com/w3c/navigation-timing/issues/28
https://github.com/w3c/navigation-timing/issues/29

BUG=460722
R=ksakamoto@chromium.org

Review URL: https://codereview.chromium.org/1245343003

git-svn-id: svn://svn.chromium.org/blink/trunk@199361 bbb929c8-8fbe-4397-9dbb-9b2b20218538
tmoniuszko
Make FileSystemDirURLRequestJobTest locale-invulnerable
The format of the date in directory listing entry depends on the current
locale. In some countries (for example Poland) DD.mm.YYYY format is used.
base::Time::FromString() internally uses PR_ParseTimeString() from NSPR
library which doesn't support this format (date with dots as separators).
Use icu::DateFormat instead which is able to parse such kind of date
format.

BUG=

Review URL: https://codereview.chromium.org/1246463002

Cr-Commit-Position: refs/heads/master@{#340050}
sigbjornf
Oilpan: fix build after r199317.
TBR=oilpan-reviews
BUG=510483
NOTRY=true

Review URL: https://codereview.chromium.org/1252523003

git-svn-id: svn://svn.chromium.org/blink/trunk@199325 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
use sh instead of bash in ProcessUtilTest on linux
These unit tests don't seem to really depend on bash, by using sh
instead of bash we can run these on more embedded linux targets.

Review URL: https://codereview.chromium.org/1249973002

Cr-Commit-Position: refs/heads/master@{#339901}
sigbjornf
Oilpan: fix build after r199293.
TBR=oilpan-reviews
BUG=509911
NOTRY=true

Review URL: https://codereview.chromium.org/1244363002

git-svn-id: svn://svn.chromium.org/blink/trunk@199306 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mharanczyk
Avoid creating PasswordsPrivateDelegate when shutting down.
BUG=485227

Review URL: https://codereview.chromium.org/1228813006

Cr-Commit-Position: refs/heads/master@{#339855}
philipj
Remove the allowfullscreen exemption for the video-specific fullscreen API (reland)
Intent to Remove:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/3NukIuOaU4c/Boab2WxzhBYJ

Prompted by a question from Ali Alabbas (Microsoft) on blink-dev:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/f-V2GWatXkA/nvdHJ3xihMkJ

Feedback from Vimeo on blink-dev asking for more time:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/3NukIuOaU4c/MPyuWoDaz8AJ

New plan for removing the allowfullscreen exemption:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/3NukIuOaU4c/LWeJeKYvf1MJ

The video.webkitSupportsFullscreen change will be made separately:
https://codereview.chromium.org/1240573005

BUG=496637

Review URL: https://codereview.chromium.org/1237133002

git-svn-id: svn://svn.chromium.org/blink/trunk@199225 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Stop calling configureTextTrackDisplay() in clearMediaPlayer()
In the test case, the call chain is:
HTMLMediaElement::didMoveToNewDocument() -> userCancelledLoad() ->
clearMediaPlayer() -> configureTextTrackDisplay() ->
updateTextTrackDisplay() -> ensureTextTrackContainer()

ensureTextTrackContainer() will create the text track container if it
did not exist, triggering the assert in the EventDispatchForbiddenScope
set up by ContainerNode::appendChild().

In the test case, the order of setting TextTrack.mode and appending
the HTMLTrackElement matters, which is at the root of the problem. If
the text track container had been created, then there wouldn't have
been any attempt to create it when moving to a new document.
Unfortunately, the logic largely matches what the spec says:
https://www.w3.org/Bugs/Public/show_bug.cgi?id=28973

Instead of fixing the assymetry, just remove the
configureTextTrackDisplay() call and depend on the
cueTimeline().updateActiveCues(0) call in userCancelledLoad() instead.
This should suffice, because from the point of view of text track
rendering, the current time is all that matters.

The VisibilityChangeAssumption enum was introduced in order to avoid
unnecessary work in configureTextTrackDisplay():
https://codereview.chromium.org/22645014

This depends on a recent change to decouple VTTCue from VTTCueBox and
LayoutVTTCue, without which the configureTextTrackDisplay() call was
needed to avoid use-after-free of those VTTCue* pointers:
https://codereview.chromium.org/1240433007

BUG=489998

Review URL: https://codereview.chromium.org/1233313008

git-svn-id: svn://svn.chromium.org/blink/trunk@199210 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Don't resolve extended color keywords during parsing
Previously we were keeping the "basic" named colors (color keywords)
unresolved (as identifiers), while resolving the "extended" named
colors.
This CL makes us keep the "extended" colors as well, and resolve them
during style resolving instead (of during parsing.)
Because we now no longer expect to resolve named colors in the
fast-path, we can drop that part of CSSParserFastPaths::parseColor.

The new behavior matches Gecko and IE.

BUG=505410

Review URL: https://codereview.chromium.org/1232593004

git-svn-id: svn://svn.chromium.org/blink/trunk@199209 bbb929c8-8fbe-4397-9dbb-9b2b20218538
bratell
Use gold when compiling 32 bit binaries on an x64 machine.
gold can't normally be used on 32 bit machines because it uses too
much memory, but if the 32-bit binary that is being created is being
created on an x64 machine with sysroot, then it's possible.

BUG=511201
R=dpranke@chromium.org,thakis@chromium.org

Review URL: https://codereview.chromium.org/1234943009

Cr-Commit-Position: refs/heads/master@{#339514}
bratell
Precompile more in Blink in Windows for faster compilations
 
One reason Blink is slow to compile is that there is a lot of code
included in every compilation unit since everything depends on either
LayoutObject.h or Document.h and those in turn include huge portions
of the rest of Blink.

By precompiling LayoutObject.h and Document.h the compilation of core and
modules in Blink can be 4 times faster (4 minutes instead of
19 minutes on my computer).

The downside is that it will introduce Document.h and LayoutObject.h
also in compilation units that didn't expect it, for instance
XPathGrammer.y that suddenly will have both blink::Path and
blink::XPath::Path in scope (and blink::Filter / blink::XPath::Filter)

Note that distributed compilation system disables precompiled headers
globally so this will *not* make trybots faster.

This is a new attempt at this change after bug 511945 scared us into
reverting it. We still do not know the exact cause of 511945 but we
are making another attempt with this.

BUG=495697
R=thakis@chromium.org,sigbjornf@chromium.org

Review URL: https://codereview.chromium.org/1227953008

git-svn-id: svn://svn.chromium.org/blink/trunk@199168 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: remove unnecessary ENABLE(OILPAN) protections of trace() calls.
For modules/, minimize the use of ENABLE(OILPAN) in trace implementations.

R=haraken
BUG=340522

Review URL: https://codereview.chromium.org/1240223003

git-svn-id: svn://svn.chromium.org/blink/trunk@199164 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Separate VTTCue from VTTCueBox and LayoutVTTCue
Both VTTCueBox and LayoutVTTCue had a VTTCue member, which made for
tricky lifetime considerations, in particular the VTTCue destructor
was removing the VTTCueBox from the DOM, so that the stale VTTCue*
pointers would never be accessed.

Instead, let VTTCue provide VTTCueBox with the information it needs,
which will in turn provide it to LayoutVTTCue. Stale information
should not be a problem, as all relevant changes to VTTCue will call
cueDidChange(), whichs ends up removing and re-inserting the cue.

Refactoring only, no web-observable changes are intended.

BUG=511174, 509911
R=fs@opera.com

Review URL: https://codereview.chromium.org/1240433007

git-svn-id: svn://svn.chromium.org/blink/trunk@199160 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix webkit unit tests following r199143.
Need to promptly detach the local frame created in
FrameFetchContextCachePolicyTest.MainResource.

TBR=oilpan-reviews
BUG=505048
NOTRY=true

Review URL: https://codereview.chromium.org/1245513003

git-svn-id: svn://svn.chromium.org/blink/trunk@199155 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Revert of Canvas.toDataURL to use SkBitmap::readPixels to avoid uninitialized memory (patchset #4 id:60001 of https://codereview.chromium.org/1234083003/)
Reason for revert:
ASan bots are failing on toDataURL() tests,

 http://build.chromium.org/p/chromium.webkit/builders/WebKit%20Linux%20ASAN/builds/19488
 http://build.chromium.org/p/chromium.webkit/builders/WebKit%20Linux%20Oilpan%20ASAN/builds/2978

Original issue's description:
> Canvas.toDataURL to use SkBitmap::readPixels to avoid uninitialized memory
> 
> This change refactors toDataURL to make it read the canvas data into
> a pre-initialized buffer to avoid accessing unitialized memory in cases
> where a GPU readback fails silently.
> 
> BUG=504690
> 
> Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=199131

TBR=senorblanco@chromium.org,junov@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=504690

Review URL: https://codereview.chromium.org/1236173005

git-svn-id: svn://svn.chromium.org/blink/trunk@199154 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Stop propagating text decorations on outermost SVG roots
Outermost SVG roots should be consider atomic inline-level, and hence
text decorations should not propagate into them from the outside.

BUG=406966

Review URL: https://codereview.chromium.org/1241463003

git-svn-id: svn://svn.chromium.org/blink/trunk@199132 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Intersect with the dirty rect before deciding which columns to examine for collection.
When collecting layer fragments (to paint, hit-test, etc.) for multicol, we
should limit the number of columns to examine. There may be very many columns
(or pages), and processing them isn't for free. We already had code in place to
narrow down the column interval by intersecting with the bounding box of the
content, but in many cases we can narrow it down further (by a lot, in fact) by
intersecting with the dirty rect as well. So let's do that.

We used to intersect with the dirty rect as part of examining each column (i.e.
inside the column loop). Now we do it up-front instead, to decide which columns
are worth examining at all. So remove the dirty rect intersection check from
the column loop. Also remove a bounding box intersection check from the loop,
since we already do that up-front to set the column interval to examine. It
just seemed useless to do it again inside the loop.

This gives a major speed-up in the Layout/multicol/tall-content-short-columns*
performance tests.

R=dsinclair@chromium.org

Review URL: https://codereview.chromium.org/1237623010

git-svn-id: svn://svn.chromium.org/blink/trunk@199107 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Drop WebCoreInterpolationQualityToSkFilterQuality
Except for GraphicsContextState, this function is only used in one
location - SVGPaintContext. In that one instance it's hard-wired to 'low',
so make that even more obvious.
Move the function from SkiaUtils.h to GraphicsContextState.cpp and rename.

Review URL: https://codereview.chromium.org/1236363003

git-svn-id: svn://svn.chromium.org/blink/trunk@199092 bbb929c8-8fbe-4397-9dbb-9b2b20218538
bratell
Revert of Precompile more in Blink in Windows for faster compilations (patchset #9 id:160001 of https://codereview.chromium.org/1167523007/)
Reason for revert:
Strange errors in http://build.chromium.org/p/chromium.fyi/builders/Chromium%20Builder indicating that old versions of headers are used by the compiler. Possibly a stale cached pch file.

Original issue's description:
> Precompile more in Blink in Windows for faster compilations
> 
> One reason Blink is slow to compile is that there is a lot of code
> included in every compilation unit since everything depends on either
> LayoutObject.h or Document.h and those in turn include huge portions
> of the rest of Blink.
> 
> By precompiling LayoutObject.h and Document.h the compilation of core and
> modules in Blink can be 4 times faster (4 minutes instead of
> 19 minutes on my computer).
> 
> The downside is that it will introduce Document.h and LayoutObject.h
> also in compilation units that didn't expect it, for instance
> XPathGrammer.y that suddenly will have both blink::Path and
> blink::XPath::Path in scope (and blink::Filter / blink::XPath::Filter)
> 
> Note that distributed compilation system disables precompiled headers
> globally so this will *not* make trybots faster.
> 
> BUG=495697
> R=thakis@chromium.org
> 
> Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=198859

TBR=brucedawson@chromium.org,jam@chromium.org,scottmg@chromium.org,thakis@chromium.org,sigbjornf@opera.com,tasak@google.com,haraken@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=495697

Review URL: https://codereview.chromium.org/1234393002

git-svn-id: svn://svn.chromium.org/blink/trunk@199036 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Add 'printing' flag to PaintInfo
This adds a new paint flag - PaintInfo::printing() - to be preferred
before Document::printing() (and GC::printing()) during paint.
These flags should always have the same value.
The users of GC::printing() were the "PDF URL rect" code, SVG text
painting (to disable shadows) and TextPainter.
In the last case, the check can be dropped entirely because
TextPainter::*PaintingStyle explicitly clears |Style::shadow| if
|isPrinting| is true.
Rearrange code in PrintContextTest::printSinglePage to better reflect
the flow of actual printing.

BUG=424655

Review URL: https://codereview.chromium.org/1236183003

git-svn-id: svn://svn.chromium.org/blink/trunk@199034 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Work around unreliable metadata for HLS in WebMediaPlayerAndroid
There are two bugs involved, both specific to HLS:
 1. MediaPlayer.getDuration() returning 0 as opposed to -1.
 2. The MediaPlayer.OnVideoSizeChangedListener callback being called
    with width and height zero and later with a non-zero size.

Logging statements were used to test for the bugs on
http://www.aljazeera.com/watch_now/ with some different devices:
 * Huawei P6-U06, Android 4.2.2: both bugs
 * Samsung Galaxy S Duos 2, Android 4.2.2: duration bug
 * HTC One, Android 4.3: both bugs
 * Sony Xperia CP C5303, Android 4.3: both bugs
 * Samsung Galaxy S III, Android 4.3: duration bug
 * Samsung Galaxy S4, Android 4.4.2: duration bug
 * Samsung Galaxy Young 2, Android 4.4.2: duration bug
 * Samsung Galaxy Grand Prime, Android 4.4.4: duration bug
 * Sony Xperia Z2, Android 5.0.2: duration bug
 * Samsung Galaxy S4, CyanogenMod 12.1, Android 5.1.1: duration bug

In summary, the duration bug affects every device tested, while the
video size bug seems to affect some but not all devices running
Android 4.3 and older.

Avoid the need for a local duration variable in OnMediaMetadataChanged
by passing its argument by value, which is already the case for all
other OnMediaMetadataChanged methods in the code base.

BUG=501213, 509972
R=qinmin@chromium.org

Review URL: https://codereview.chromium.org/1241923003

Cr-Commit-Position: refs/heads/master@{#339019}
sebastianl
Don't zoom in TextFinder if autosizing is disabled
On android devices the zoom-level is always being reset if
the viewed page doesn't use/need text autosizing. Therefore,
only zoom to content if autosizing is set.

BUG=

Review URL: https://codereview.chromium.org/1231673007

git-svn-id: svn://svn.chromium.org/blink/trunk@199027 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Move parsing of "keyword only" SVG properties to CSSParserFastPaths
Transfers responsibility for the following properties:

  alignment-baseline
  buffered-rendering
  clip-rule
  color-interpolation
  color-interpolation-filters
  color-rendering
  dominant-baseline
  fill-rule
  mask-type
  shape-rendering
  stroke-linecap
  stroke-linejoin
  text-anchor
  vector-effect
  writing-mode

from CSSPropertyParser::parseSVGValue to CSSParserFastPaths.

Review URL: https://codereview.chromium.org/1213613013

git-svn-id: svn://svn.chromium.org/blink/trunk@199023 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Allow parsing SVG <paint> and <color> properties in the color fast-path
The following properties:

  fill
  flood-color
  lighting-color
  stop-color
  stroke

Will all accept a single <color> as a valid value. This means they can
be handled by the <color> parsing fast-path, which reduces the parsing
cost for these properties which often appear as presentation attributes.

Review URL: https://codereview.chromium.org/1221303013

git-svn-id: svn://svn.chromium.org/blink/trunk@199022 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Align color keyword handling in CSSParserFastPaths with CSSPropertyParser
Previously there has been some discrepancies between
CSSParserFastPaths::parseColor and CSSPropertyParser::parseColor with
regards which color keywords they accept, and whether they do so in
quirks mode or not. Use the same sequence of isColorKeyword and
isValueAllowedInMode in both places to try to prevent that happening
(again.)

BUG=505410

Review URL: https://codereview.chromium.org/1235943002

git-svn-id: svn://svn.chromium.org/blink/trunk@199021 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Update documentation of WindowPerformance and WorkerGlobalScopePerformance
The specs have now been updated:
https://github.com/w3c/hr-time/issues/9
https://github.com/w3c/hr-time/issues/10

BUG=460722
NOTRY=true
R=ksakamoto@chromium.org

Review URL: https://codereview.chromium.org/1239823002

git-svn-id: svn://svn.chromium.org/blink/trunk@199015 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Make sure that no column rows get negative flow thread portion heights.
BUG=510390
R=dsinclair@chromium.org

Review URL: https://codereview.chromium.org/1241703005

git-svn-id: svn://svn.chromium.org/blink/trunk@198970 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove the :-webkit-full-screen-document pseudo class
It is virtually unused in the wild, according to use counter data:
https://www.chromestatus.com/metrics/feature/timeline/popularity/627

Nothing similar exists in the spec or is likely to ever be added.

BUG=402378

Review URL: https://codereview.chromium.org/1233503003

git-svn-id: svn://svn.chromium.org/blink/trunk@198966 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Multicol performance tests for tall content (so that we get (very) many columns).
This is currently horribly slow. Discovered while working on bug 502407
(assertion failure). It seems impossible to write a test for that issue
that doesn't run into the performance problems illustrated by these tests,
so we have to land some performance improvements before fixing the actual
assertion. 

R=dsinclair@chromium.org

Review URL: https://codereview.chromium.org/1239783002

git-svn-id: svn://svn.chromium.org/blink/trunk@198956 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Measure usage of HTMLMediaElement preload states
Refactoring into a preloadType() is necessary in order to count cases
where the preload attribute is never set, i.e. the missing value default
case. Also, it's nice to have less state in HTMLMediaElement.

BUG=73609, 310450

Review URL: https://codereview.chromium.org/1227403004

git-svn-id: svn://svn.chromium.org/blink/trunk@198955 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Add a comment about counter availability in M45 branch
R=jochen@chromium.org
NOTRY=true

Review URL: https://codereview.chromium.org/1235963004

git-svn-id: svn://svn.chromium.org/blink/trunk@198954 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
May need to insert or remove column sets when out-of-flow objects get their containing block changed.
Out-of-flow descendants may become or cease to be a part of a multicol
container due to changes on an ancestor. An ancestor may become or cease to be
a containing block for out-of-flow descendants.

Transforms also establish containing blocks for absolutely and fixed positioned
descendants, so we need to check for that too.

BUG=509463
R=dsinclair@chromium.org

Review URL: https://codereview.chromium.org/1229983004

git-svn-id: svn://svn.chromium.org/blink/trunk@198940 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Only coerce interpolation mode returned from computeInterpolationQuality
This makes the interpolation mode remain as InterpolationNone if the
'printing' flag is set, which is in line with the documentation for said
flag.

This behavior was added in: 
  http://trac.webkit.org/changeset/117187
which did not mention the printing case.

This is a first step towards separating "per context" and "per image"
interpolation settings/adaption.

BUG=492794

Review URL: https://codereview.chromium.org/1237083004

git-svn-id: svn://svn.chromium.org/blink/trunk@198934 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Use LayoutObject to locate the flow thread.
No need for (poorly) duplicated efforts in DeprecatedPaintLayer.

Cleaned up the code a little while I was here. One of the transform checks was
getting in the way, so I removed them both. They did nothing useful anyway.
The flow thread (i.e. pagination layer) itself can never be transformed.

Also removed the fast-path completely, since most layers don't use it.

When all this was gone, it became obvious that we should just fold
updatePagination() into updatePaginationRecursive().

What really went wrong here was that we failed to re-establish the layers when
evacuating a flow thread (which happens when a multicol container ceases to be
one), so we just kept what we had, and the flow thread got deleted without any
of the decendant layers noticing (so that we were pointing to dead enclosing
pagination layers). There's code in LayoutBoxModelObject::moveChildTo() that
normally handles such things (notifications that involve re-establishing the
layers), but only for LayoutInline and LayoutBlock. In this case we were
dealing with a LayoutSVGRoot, which is LayoutReplaced. There could be other
problems with SVG with layers inside because of this, but in this bug, the
correct fix is to just disallow pagination-awareness inside SVG, which
LayoutObject::locateFlowThreadContainingBlock() already does for us, if we but
just bother to invoke it.

BUG=507992
R=chrishtr@chromium.org

Review URL: https://codereview.chromium.org/1235133004

git-svn-id: svn://svn.chromium.org/blink/trunk@198891 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r198872.
TBR=oilpan-reviews
BUG=510036
NOTRY=true

Review URL: https://codereview.chromium.org/1234793003

git-svn-id: svn://svn.chromium.org/blink/trunk@198887 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Don't paginate lines that are taller than the column / page.
This is a partial revert of https://codereview.chromium.org/1221803003

I still believe what that patch did was correct, but it broke printing of Google Docs.

BUG=507972
R=dsinclair@chromium.org

Review URL: https://codereview.chromium.org/1236163002

git-svn-id: svn://svn.chromium.org/blink/trunk@198866 bbb929c8-8fbe-4397-9dbb-9b2b20218538
bratell
Precompile more in Blink in Windows for faster compilations
One reason Blink is slow to compile is that there is a lot of code
included in every compilation unit since everything depends on either
LayoutObject.h or Document.h and those in turn include huge portions
of the rest of Blink.

By precompiling LayoutObject.h and Document.h the compilation of core and
modules in Blink can be 4 times faster (4 minutes instead of
19 minutes on my computer).

The downside is that it will introduce Document.h and LayoutObject.h
also in compilation units that didn't expect it, for instance
XPathGrammer.y that suddenly will have both blink::Path and
blink::XPath::Path in scope (and blink::Filter / blink::XPath::Filter)

Note that distributed compilation system disables precompiled headers
globally so this will *not* make trybots faster.

BUG=495697
R=thakis@chromium.org

Review URL: https://codereview.chromium.org/1167523007

git-svn-id: svn://svn.chromium.org/blink/trunk@198859 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Robustify window.internals.textSurroundingNode().
R=hajimehoshi	
BUG=509860

Review URL: https://codereview.chromium.org/1237093003

git-svn-id: svn://svn.chromium.org/blink/trunk@198856 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Allocate XMLHttpRequest on the eagerly finalized heap.
With XMLHttpRequest now being on the heap with !ENABLE(OILPAN), we need
to arrange for this ActiveDOMObject to be allocated as an eagerly
finalized object.

R=haraken
BUG=509841

Review URL: https://codereview.chromium.org/1237063002

git-svn-id: svn://svn.chromium.org/blink/trunk@198853 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Refresh Frame(Loader) detach() related comments.
Update comments not to refer the older detachFromParent().

R=haraken,dcheng
BUG=none
NOTRY=true

Review URL: https://codereview.chromium.org/1231273003

git-svn-id: svn://svn.chromium.org/blink/trunk@198804 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r198789.
TBR=oilpan-reviews
BUG=439376
NOTRY=true

Review URL: https://codereview.chromium.org/1237633003

git-svn-id: svn://svn.chromium.org/blink/trunk@198803 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r198788.
R=haraken
BUG=439376
NOTRY=true

Review URL: https://codereview.chromium.org/1232423002

git-svn-id: svn://svn.chromium.org/blink/trunk@198802 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: simplify ImageLoaderClient handling.
Simplify the unregistration of ImageLoaderClient objects. The weak client
references are removed as clients as part of weak processing or
when running the ImageLoader's prefinalizer.

R=haraken
BUG=383742

Review URL: https://codereview.chromium.org/1224323003

git-svn-id: svn://svn.chromium.org/blink/trunk@198790 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Don't cache MemoryInfo instance on ConsoleMemory object.
Round out r197581 and do same on console.memory

R=yurys,haraken
BUG=501270

Review URL: https://codereview.chromium.org/1230203003

git-svn-id: svn://svn.chromium.org/blink/trunk@198785 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Only allow the -webkit-text color keyword in quirks/UA-sheet mode
This color keyword is mainly used to implement the 'quirk-inherit'
special value for 'color' on <table> in quirks mode [1].
Currently this keyword is treated differently for different properties,
but for the most common properties, the "only in quirks mode" rule is
applied. It's also marked as "QuirksOrUASheet" in CSSValueKeywords.in.
Extend the "only in quirks mode" rule to apply to all <color>
properties.

The test fast/css/webkit-text-display-none.html is converted to run in
quirks mode. It worked previously because setting inline style would use
the fast-path color parser which was inconsistent with the non-fast-path
color parser in accepting '-webkit-text' in standards mode.

[1] https://quirks.spec.whatwg.org/#the-tables-inherit-color-from-body-quirk

BUG=505410

Review URL: https://codereview.chromium.org/1216523006

git-svn-id: svn://svn.chromium.org/blink/trunk@198770 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Return early in automaticTrackSelectionForUpdatedUserPreference()
If there are no text tracks, nothing in the method does anything,
except updateTextTrackDisplay() which will create the text track
container which is not needed yet.

BUG=457850

Review URL: https://codereview.chromium.org/1228293003

git-svn-id: svn://svn.chromium.org/blink/trunk@198767 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Gracefully handle track-less elements on updating track selection.
The media element may not have text tracks.

Follow up on r198661.

R=haraken
BUG=457850

Review URL: https://codereview.chromium.org/1224083013

git-svn-id: svn://svn.chromium.org/blink/trunk@198754 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: switch ImageLoader to be prefinalized.
If an ImageLoader for an SVGImage ends up being swept out along with a
FrameView (a ScrollableArea), the former may circuitously end up accessing
the latter via its destructor. Having both be eagerly finalized, or
prefinalized, doesn't guarantee a correct destruction order.

Hence, to address, arrange for the ImageLoader to be finalized/disposed of
first by way of a prefinalizing action.

R=haraken
BUG=491488

Review URL: https://codereview.chromium.org/1226373008

git-svn-id: svn://svn.chromium.org/blink/trunk@198753 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Remove unused ExtraData support on exported mediastream objects.
The Blink exported interfaces RTCSessionDescriptionRequest, RTCVoidRequest,
and MediaStreamTrackSourcesRequest provide a facility to the embedder of
allowing 'ExtraData' to be associated and attached to object instances.

The embedder does not make use of this functionality for these mediastream objects,
so retire the unused ExtraData support. This simplifies the implementation of these
exported objects, in particular as regards to when they must be finalized as Blink
objects.

R=
BUG=

Review URL: https://codereview.chromium.org/1233793002

git-svn-id: svn://svn.chromium.org/blink/trunk@198741 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: tidy HeapTest.VectorDestructors
R=haraken
BUG=none

Review URL: https://codereview.chromium.org/1227413003

git-svn-id: svn://svn.chromium.org/blink/trunk@198738 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Fix build following r198658.
Reintroduce the use of ASSERT_UNUSED() in
CharacterIterator{Algorithm}:range() that r198658 dropped. It is needed.

TBR=oilpan-reviews,yosin@chromium.org
BUG=
NOTRY=true

Review URL: https://codereview.chromium.org/1227413004

git-svn-id: svn://svn.chromium.org/blink/trunk@198737 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r198661.
TBR=oilpan-reviews
BUG=457850
NOTRY=true

Review URL: https://codereview.chromium.org/1228363004

git-svn-id: svn://svn.chromium.org/blink/trunk@198736 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Update histograms.xml
Used tools/metrics/histograms/update_use_counter_feature_enum.py

R=asvitkine@chromium.org

Review URL: https://codereview.chromium.org/1233493006

Cr-Commit-Position: refs/heads/master@{#338291}
philipj
Remove the (already disabled) OverflowChangedEvent runtime flag
The functionality was disabled for M43:
https://codereview.chromium.org/959643002

M43 reached the stable channel for Windows, Mac and Linux on May 19
and for Android on May 27, and there have been no issues reported.

BUG=460822

Review URL: https://codereview.chromium.org/1230013003

git-svn-id: svn://svn.chromium.org/blink/trunk@198689 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Prevent overflowing content from affecting multicol layout.
Don't let visual overflow (caused by outlines, text-shadow, text overflowing
its line box, and other things) affect layout. Note that this CL does exchange
one problem for another, but it should be better to have stable and predictable
(and correct) layout, than hacking line positions and column heights to make
the overflow fit in the same column as the line box.

This fixes a problem with links in multicol lists on wikipedia jumping back and
forth between columns.

What we're really lacking (after this CL, more than ever) is to be able to
paint column overflow correctly in the block direction. Fixing that would be
the right thing to do long-term, but it's going to require substantial amounts
of work (and probably a great deal of multicol awareness in the painting and
hit-testing code).

Removed the fast/multicol/split-in-top-margin.html test, since the behavior it
tested is what we remove in this CL.

calculateMinimumPageHeight() could be simplified because of this change,
including removal of (now) redundant parameters.

BUG=439820
R=dsinclair@chromium.org

Review URL: https://codereview.chromium.org/1224973002

git-svn-id: svn://svn.chromium.org/blink/trunk@198683 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Sync core/timing/ interfaces with their specs, or lack thereof
The only changes to the generated code are ordering and the added use
counters.

[Measure] does not mean that we should try to remove it, in cases where
usage is high we can use that data to ask for spec changes.

BUG=460722

Review URL: https://codereview.chromium.org/1219673003

git-svn-id: svn://svn.chromium.org/blink/trunk@198682 bbb929c8-8fbe-4397-9dbb-9b2b20218538
tmoniuszko
Add missing base/memory/scoped_ptr.h include to base/prefs/writeable_pref_store.h
BUG=

Review URL: https://codereview.chromium.org/1227323002

Cr-Commit-Position: refs/heads/master@{#338281}
philipj
Add counters for add/removeEventListener() called with one argument
This was attempted previously but only worked for no arguments:
https://codereview.chromium.org/815503002
https://codereview.chromium.org/928103002

The enum values are added in their original positions in UseCounter.h,
as they were always unreachable and thus not polluted by anything else.

The reason was that there is no generated impl-> call with one
argument, as EventListener has special handling in the bindings
generator such that it's effectively treated as having a default null
argument.

Give all the arguments default values in the IDL so that there is only
one impl-> call in the generated code, with the prologue and epilogue
immediately before and after it. This makes it more clear that the
prologue will always be called, and makes this purely a bindings bug.

The removed FIXMEs in EventTarget.cpp were wrong, it should be
possible to pass null for the listener argument and per spec that
should do nothing.

Rather than extending support for [Conditional] here, remove it for
[Custom=CallEpilogue] as it's actually never used there, nor tested.

BUG=353484

Review URL: https://codereview.chromium.org/1233483002

git-svn-id: svn://svn.chromium.org/blink/trunk@198681 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Fold CSSParser::colorFromRGBColorString into only user
Said method is very special flower, used by the SMIL animation code to
put color values into SVGColorProperty.
Since it's essentially a one-off (and supporting a deprecated class part
of a deprecated whole) fold it into it's only user and rid the CSSParser
of this burden, ehm, flower.

Review URL: https://codereview.chromium.org/1224223003

git-svn-id: svn://svn.chromium.org/blink/trunk@198672 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Add a use counter for HTMLFrameElement.getSVGDocument()
Review URL: https://codereview.chromium.org/1219463004

git-svn-id: svn://svn.chromium.org/blink/trunk@198616 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Update inclusion of GraphicsContextStateSaver.h
Not needed in a bunch of places due to other refactoring work.
Pushed down from PaintInfo.h into a number of places.

Opportunity targets were fired upon.

With this it's only being included in core/paint/ and platform/.

BUG=424655

Review URL: https://codereview.chromium.org/1230643006

git-svn-id: svn://svn.chromium.org/blink/trunk@198615 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Drop GraphicsContext::AccessMode
Unused. Missed when dropping layerBitmap(AccessMode ...) in
https://codereview.chromium.org/182183004

BUG=424655

Review URL: https://codereview.chromium.org/1229693007

git-svn-id: svn://svn.chromium.org/blink/trunk@198610 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Measure usage of Document.createTouch()
This is for the same reason as the init*Event() methods, to know if
making all the arguments non-optional is likely safe or not:
https://codereview.chromium.org/1215893006

Also remove the webkit prefixes on the arguments, as the corresponding
attribute are now unprefixed on the Touch interface.

BUG=460722
R=rbyers@chromium.org

Review URL: https://codereview.chromium.org/1227833002

git-svn-id: svn://svn.chromium.org/blink/trunk@198595 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ckulakowski
Added missing include in media_capture_devices_dispatcher.cc
Introduced by https://codereview.chromium.org/1095393004. Profile is still used in this file and missing include causes compilation error in our product.

Review URL: https://codereview.chromium.org/1221283005

Cr-Commit-Position: refs/heads/master@{#337992}
mstensho
Remove unnecessary LayoutUnit -> float -> LayoutUnit conversions.
R=szager@chromium.org

Review URL: https://codereview.chromium.org/1228633002

git-svn-id: svn://svn.chromium.org/blink/trunk@198573 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
LayoutFlowThread parameter to adjustLinePositionForPagination() is now unused.
R=dsinclair@chromium.org

Review URL: https://codereview.chromium.org/1215343004

git-svn-id: svn://svn.chromium.org/blink/trunk@198535 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Performance tests for lots of lines of text inside multicol.
One test with column balancing and one without.

R=dsinclair@chromium.org

Review URL: https://codereview.chromium.org/1227003002

git-svn-id: svn://svn.chromium.org/blink/trunk@198497 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ohrn
Add -bootclasspath argument to javac.
This silences the warning "bootstrap class path not set in conjunction
with -source 1.7" when building with OpenJDK 1.8.

The multiple_proguards test was removed as javac will now catch the use
of host packages that do not exist on Android.

BUG=

Review URL: https://codereview.chromium.org/1213433007

Cr-Commit-Position: refs/heads/master@{#337805}
the_jk
Make it possible to change libc++ library files used for android
Useful for specifying specific or modified libc++ library files instead of
always using the one in android_ndk_root.

Review URL: https://codereview.chromium.org/1215713006

Cr-Commit-Position: refs/heads/master@{#337797}
sigbjorn
Don't autofill credit cards on non-secure pages
Instead of checking for scheme only when suggesting credit card autofills,
ensure that the page is secure.

Also add missing tests for storing credit cards (even when submitted on
http).

Review URL: https://codereview.chromium.org/1136473006

Cr-Commit-Position: refs/heads/master@{#337796}
philipj
Sync the Presentation API interfaces with the spec again
Speedily fixed in https://github.com/w3c/presentation-api/pull/144

The [SameObject] attribute does not change the generated code.

BUG=460722
R=mfoltz@chromium.org

Review URL: https://codereview.chromium.org/1226633007

git-svn-id: svn://svn.chromium.org/blink/trunk@198426 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Behave more normally for content taller than the fragmentainer it's in.
Refusing to break just because content happens to be taller than the multicol
container is just weird, and it's getting in the way for fixing bug 439820.

If we had behaved the same way for line layout, we'd refuse to wrap to the next
line if we encountered a word that was wider than the container (in addition to
being too wide at the current inline position on the line). If the text to lay
out is "abc def ghijklmnopqr stu" and the container has room for 10 characters,
we'd lay out like this:

+----------+
|abc def ghijklmnopqr
|stu       |
+----------+

instead of this (the correct way):

+----------+
|abc def   |
|ghijklmnopqr
|stu       |
+----------+

The usefulness of the hasUniformPageLogicalHeight thing vanished into thin air
in the process (calling pageLogicalHeightForOffset() isn't that expesive).
Having one bit in LayoutFlowThread specifying if column heights are uniform was
just bogus anyway, since column sets are typically separated by column
spanners, and if the heights of the set preceding and following a spanner
differ, why should adjustLinePositionForPagination() care? This was a relic
from the CSS regions days, thought to also be useful for multicol. But it
isn't.

R=dsinclair@chromium.org
BUG=

Review URL: https://codereview.chromium.org/1221803003

git-svn-id: svn://svn.chromium.org/blink/trunk@198415 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Sync the Presentation API interfaces with the spec
https://w3c.github.io/presentation-api/

Spec issues found in the process:
https://github.com/w3c/presentation-api/issues/137
https://github.com/w3c/presentation-api/issues/138
https://github.com/w3c/presentation-api/issues/139
https://github.com/w3c/presentation-api/issues/140
https://github.com/w3c/presentation-api/issues/141

BUG=460722

Review URL: https://codereview.chromium.org/1209423005

git-svn-id: svn://svn.chromium.org/blink/trunk@198408 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Fix the indentation of MouseEvent.pageX/Y
BUG=503274
NOTRY=true

Review URL: https://codereview.chromium.org/1214723004

git-svn-id: svn://svn.chromium.org/blink/trunk@198398 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Sync the EventSource interface with the spec
This change is not observable, obviously.

BUG=460722

Review URL: https://codereview.chromium.org/1215463008

git-svn-id: svn://svn.chromium.org/blink/trunk@198373 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Sync the ImageBitmapFactories interface with the spec
There are no changes to the generated code.

BUG=460722

Review URL: https://codereview.chromium.org/1225843002

git-svn-id: svn://svn.chromium.org/blink/trunk@198372 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Annotate the CloseEvent interfaces with spec link
WebSocket already has a spec link. The idea is that each IDL file has
one spec link, which should make it easier to write a tool to compare
our IDL to the spec's IDL.

BUG=460722
NOTRY=true

Review URL: https://codereview.chromium.org/1220363003

git-svn-id: svn://svn.chromium.org/blink/trunk@198369 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Add UseCounters for init*Event methods that aren't already measured
These methods systematically have "[Default=Undefined] optional"
arguments where the spec (if any) has non-optional arguments. Usage of
most of these is likely low, so just measure them all to see where the
change can be made without further investigation.

Also change a few argument names that were not per their specs.

BUG=460722

Review URL: https://codereview.chromium.org/1215893006

git-svn-id: svn://svn.chromium.org/blink/trunk@198345 bbb929c8-8fbe-4397-9dbb-9b2b20218538
davve
Add stub for assigning media session to media elements
Introduces a partial IDL interface for HTMLMediaElement containing an
optional media session attribute implemented as a supplement to media
elements.

BUG=497735

Review URL: https://codereview.chromium.org/1217743003

git-svn-id: svn://svn.chromium.org/blink/trunk@198272 bbb929c8-8fbe-4397-9dbb-9b2b20218538
davve
Define default but still private MediaSession constructor
BUG=497735

Review URL: https://codereview.chromium.org/1221953003

git-svn-id: svn://svn.chromium.org/blink/trunk@198271 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Disentangle filter content recording state from FilterData
In circumstances where an image is being painted, and said image is part
of the source graphics for a filter - and the image is animated and
needs to catch up - the FilterData for the filter can be destroyed while
the source graphic is being recorded.
While arguably this shouldn't happen at all, make sure that at least the
GC we're currently painting on isn't destroyed by moving it to a
separate structure housed by SVGPaintContext.

BUG=505444

Review URL: https://codereview.chromium.org/1220053003

git-svn-id: svn://svn.chromium.org/blink/trunk@198266 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Allow 'currentcolor' for -webkit-tap-highlight-color in non-quirks mode
Seems like a fairly artificial limit (== oversight) since it will be
resolved during style resolution already (for the quirks mode case).

This moves this property one step closer to being just a "plain" <color>.

BUG=505410

Review URL: https://codereview.chromium.org/1221093003

git-svn-id: svn://svn.chromium.org/blink/trunk@198265 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Cleanups to viewport-handling and image invalidation in LayoutSVGImage
Split updateImageViewport into its two (now independent except for the
bbox, so ordering matters still) parts, naming them updateBoundingBox
and updateImageContainerSize.
Stop updating the bbox in imageChanged since updateImageContainerSize
will update the container size of the referenced image regardless.
Also drop the (explicit) SVGResource::removeClientFromCache call from
imageChanged, because markForLayoutAndParentResourceInvalidation is
called just after it, and will do what's required already.

BUG=505444

Review URL: https://codereview.chromium.org/1219493005

git-svn-id: svn://svn.chromium.org/blink/trunk@198241 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Simplify paint rect calculations in LayoutReplaced::shouldPaint
Compute a paint rectangle based on visualOverflowRect() once, and then
reuse that where needed to avoid calling said method 4 times.

BUG=506432

Review URL: https://codereview.chromium.org/1212213004

git-svn-id: svn://svn.chromium.org/blink/trunk@198240 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Copy line dashes when copying/assigning CanvasRenderingContext2DState
BUG=505912

Review URL: https://codereview.chromium.org/1224443003

git-svn-id: svn://svn.chromium.org/blink/trunk@198227 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Semi-evil multicol performance test.
It contains some deeply nested tables, and currently it also triggers 3 layout
passes, while 2 should in theory be enough. For each layout pass we currently
also do a deep layout (thanks to markForPaginationRelayoutIfNeeded() pretty
much always marking everything for layout). That should be improved as part of
fixing bug 487026.

R=dsinclair@chromium.org

Review URL: https://codereview.chromium.org/1216053009

git-svn-id: svn://svn.chromium.org/blink/trunk@198221 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Always enable Oilpan for EventSource.
This puts EventSource objects on the Oilpan heap by default.

Doing so necessitated the removal of WTF_MAKE_FAST_ALLOCATED() for
ThreadableLoaderClient; done here, along with moving that annotation to
its derived classes where possible.

R=haraken
BUG=497595

Review URL: https://codereview.chromium.org/1179733009

git-svn-id: svn://svn.chromium.org/blink/trunk@198217 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Avoid using floating point when not needed.
Caused inaccuracies which made us think that we had one column more than we
actually had, which in turn triggered an assertion failure.

BUG=504158
R=dsinclair@chromium.org

Review URL: https://codereview.chromium.org/1216223004

git-svn-id: svn://svn.chromium.org/blink/trunk@198213 bbb929c8-8fbe-4397-9dbb-9b2b20218538
davve
Update LayoutObject::name() documentation
Now that crbug.com/463967 is done, LayoutObject::name() no longer
returns the decorated name. Update the documentation to match.

BUG=463967

Review URL: https://codereview.chromium.org/1219723008

git-svn-id: svn://svn.chromium.org/blink/trunk@198212 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r198203.
TBR=oilpan-reviews
BUG=427652
NOTRY=true

Review URL: https://codereview.chromium.org/1226463005

git-svn-id: svn://svn.chromium.org/blink/trunk@198206 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Sync XML-related interfaces with their specs, or lack thereof
The inResult arguments in XPathEvaluator and XPathExpression are called
just result in the spec, but that conflicts with other variables in the
generated code, so leave that as it is.

BUG=460722

Review URL: https://codereview.chromium.org/1222503003

git-svn-id: svn://svn.chromium.org/blink/trunk@198201 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Unify handling of <color> for SVG/non-SVG properties
Stop resolving system colors and "basic" named colors at parse time, and
instead resolve them when resolving style.
Implementation-wise this means getting rid of
CSSPropertyParser::parseSVGColor in favor of parseColor, and similarly
get rid of convertSVGColor in favor of convertColor on the style
resolver side.

Changes behavior for "basic" color names and system colors (as well as
some proprietary/internal keywords). New behavior matches Gecko.

BUG=370830,505410

Review URL: https://codereview.chromium.org/1219153003

git-svn-id: svn://svn.chromium.org/blink/trunk@198199 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Sync part of the MouseEvent interface with CSSOM View
http://dev.w3.org/csswg/cssom-view/#extensions-to-the-mouseevent-interface

BUG=460722

Review URL: https://codereview.chromium.org/1214923005

git-svn-id: svn://svn.chromium.org/blink/trunk@198147 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: disconnected scrollbars must be externally observable as such.
Followup the Scrollbar and ScrollableArea Oilpan changes in r198064, and
have explicit disconnects of Scrollbars from their ScrollableAreas be
observable via the Scrollbar afterwards.

The assumption made in r198064 that no one wanted to observe Scrollbars
in that detached/disconnected state, doesn't hold. SelectorChecker and
AXScrollbar are two examples.

R=haraken
BUG=504655

Review URL: https://codereview.chromium.org/1215063006

git-svn-id: svn://svn.chromium.org/blink/trunk@198144 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Drop pattern-related state from GraphicsContext(State)
One trivial use of setFillPattern() in GeneratedImage converted to use
an SkPaint directly. As a bonus, this conversion also allows dropping a
state-saver.

BUG=424655

Review URL: https://codereview.chromium.org/1213723006

git-svn-id: svn://svn.chromium.org/blink/trunk@198142 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r198129.
TBR=oilpan-reviews
BUG=505861
NOTRY=true

Review URL: https://codereview.chromium.org/1214553003

git-svn-id: svn://svn.chromium.org/blink/trunk@198133 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Add missing initialization of RawPtr<> local var in r197835.
Only insertCSSOMRuleInMediaRule()'s missing initialization is problematic.
Initialize the other occurrences here for consistency, aligning with
the convention we try to adhere to (but do not have tool support for
catching the failure to do so..)

R=pfeldman
BUG=178410

Review URL: https://codereview.chromium.org/1213233016

git-svn-id: svn://svn.chromium.org/blink/trunk@198128 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Cannot rely on auto-positioned absolutely positioned descendants being marked for layout.
Instead, figure out if such descendants need layout as part of
layoutPositionedObjects().

One test is for the actual facebook regression; the others demonstrate that we
have now fixed older regressions, or even things that have never worked.

BUG=505386
R=leviw@chromium.org,rhogan@gmail.com

Review URL: https://codereview.chromium.org/1217833007

git-svn-id: svn://svn.chromium.org/blink/trunk@198101 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Always enable lazy sweeping.
This turns on lazy sweeping for enable_oilpan=0.

Lazy/incremental sweeping reduces GC pause times by having the
garbage collector perform its marking and processing of live
objects together with a minimal amount of sweeping of finalizable
objects before returning. The remaining heap regions to be swept
up and finalized are then handled incrementally as part of
heap allocation requests. Amortizing that sweeping cost rather
than taking a longer GC "stop the world" pause in one go.

Lazy sweeping is enabled with Oilpan always on (enable_oilpan=1);
this extends it to also be for the Oilpan GCs that run on trunk
(where enable_oilpan=0).

R=haraken
BUG=480837

Review URL: https://codereview.chromium.org/1219613002

git-svn-id: svn://svn.chromium.org/blink/trunk@198095 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Add ASan lazy sweep annotations to allow Persistent<> creation.
Destructors are allowed to allocate, including the creation of
Persistent<>s and linking them into the root set.

That might end up touching other objects that are in the process of
being swept and are poisoned. Benign, add annotations.

R=haraken
BUG=491488

Review URL: https://codereview.chromium.org/1215153002

git-svn-id: svn://svn.chromium.org/blink/trunk@198081 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: implement StyleRuleList without an extra wrapper.
Wrapping up a possibly-shared heap object behind a wrapper doesn't make
sense with Oilpan, so do not provide it.

R=haraken
BUG=340522

Review URL: https://codereview.chromium.org/992903002

git-svn-id: svn://svn.chromium.org/blink/trunk@198068 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: improve ScrollableArea handling.
Have all ScrollableArea objects reside on the Oilpan heap,
making ScrollableArea be a GC mixin.

Without it, some ScrollableAreas (FrameView) were on the heap
whereas others (*Viewport) weren't, making for unpredictable
and incorrect finalization as the lifetimes were skewed.

Additionally, simplify Scrollbar's unregistration with its
ScrollableArea (and its ScrollAnimator). The Oilpan-specific
RefPtr<ScrollAnimator> that Scrollbar kept, no longer served
a purpose, hence removed. As a result, ScrollAnimator can again
be fully owned by ScrollableAreas & no longer be RefCounted<>.

R=haraken
BUG=504655

Review URL: https://codereview.chromium.org/1215973002

git-svn-id: svn://svn.chromium.org/blink/trunk@198064 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Dissect and clean up instances of color parsing in CSSPropertyParser
This moves all instances of color parsing (mostly <color> parsing
even) into their separate methods. The new methods (except parseSVGColor)
are formulated using parseColor(). parseColor() itself is combined with
the "most common" color parsing case by folding the keyword case into it.
The new methods are structured as first checking for keywords that they
handle differently from the generic <color> case.
The <quirky-color> determination is moved into a function of its own.
The parsing of <color> for shadow is cleaned up.

Behavioral changes:
 * Accept '-internal-*' in all cases (for UA-sheets).
 * Keep 'grey' as a keyword in all cases.
 * Accept '-webkit-focus-ring-color' in quirks mode and UA-sheets in all
   cases.
 * Keep keywords for fallback colors to 'fill' and 'stroke.

The intention of the change is to make the differences visible, and try
to eliminate the remaining differences in follow-up CLs.

BUG=505410

Review URL: https://codereview.chromium.org/1219463003

git-svn-id: svn://svn.chromium.org/blink/trunk@198062 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r198049.
Move the script-exposed MediaSession to the heap.

TBR=oilpan-reviews
BUG=497735
NOTRY=true

Review URL: https://codereview.chromium.org/1211973007

git-svn-id: svn://svn.chromium.org/blink/trunk@198054 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Only check for on-heap Member<T>s iff T is in scope.
As Member<T>::checkPointer() uses IsGarbageCollectedMixin<T>,
T's definition must be in scope for it to be precise.

Adjust condition accordingly.

R=haraken
BUG=420515

Review URL: https://codereview.chromium.org/1217083002

git-svn-id: svn://svn.chromium.org/blink/trunk@198050 bbb929c8-8fbe-4397-9dbb-9b2b20218538
davve
Add MediaSession runtime flag along with stub MediaSession object
Implementation of the MediaSession specification will happen behind
the runtime flag 'MediaSession'.

Add a virtual testsuite for running tests with MediaSession flag. This
way we don't have to have the flag enabled when running LayoutTests in
general, only when running MediaSession tests.

Intent to implement:

https://groups.google.com/a/chromium.org/d/msg/blink-dev/dLWDxYgxzQ8/vXt0ntWFNBwJ

BUG=497735

Review URL: https://codereview.chromium.org/1206283002

git-svn-id: svn://svn.chromium.org/blink/trunk@198049 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Need to update first-line when font finish loading.
Another regression from baseLayoutStyle implementation where operator==
is not affected by the loading/loaded state of web fonts. To get a re-
layout and re-rendering when a web font loading state changes, we need to
check for the loading state. In this case, there was a missing check for
::first-line pseudo style.

Also, moved the code which marks for re-layout with accompanying FIXME
into LayoutObject.

BUG=501564,504864
TEST=fast/text/ellipsis-platform-font-change.html

Review URL: https://codereview.chromium.org/1209253006

git-svn-id: svn://svn.chromium.org/blink/trunk@198048 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Don't change the height of a layout object while not laying it out.
The old flexbox implementation did that. This still used to work halfheartedly
by accident until the fix for bug 498770, though, because we used to mark
out-of-flow positioned children in updateBlockChildDirtyBitsBeforeLayout(). But
it never worked for anything other than direct children. Added one test for the
recent regression (out-of-flow child) and one test that has probably never
passed, until now (out-of-flow grandchild).

We need to be inside layout() when setting the height of an object, or we won't
be able to detect any changes and thus fail to relayout positioned descendants
that may be affected.

BUG=504239
R=leviw@chromium.org

Review URL: https://codereview.chromium.org/1213843002

git-svn-id: svn://svn.chromium.org/blink/trunk@198017 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: have FrameFetchContext keep a DocumentLoader member.
With DocumentLoader now being on the heap, keep a strong
back reference to the loader.

R=haraken
BUG=393516

Review URL: https://codereview.chromium.org/1220713004

git-svn-id: svn://svn.chromium.org/blink/trunk@198015 bbb929c8-8fbe-4397-9dbb-9b2b20218538
bratell
Fix typo in big object fix for Windows.
There is no such thing as VCCompilerTool so gyp did nothing but warn
a thousand times. VCCLCompilerTool on the other hand will actually
do something.

BUG=500674
R=scottmg@chromium.org

Review URL: https://codereview.chromium.org/1218803002

Cr-Commit-Position: refs/heads/master@{#336579}
philipj
Run flaky TextTrackList tests for tracking purposes
BUG=503852
R=wangxianzhu

Review URL: https://codereview.chromium.org/1217753002

git-svn-id: svn://svn.chromium.org/blink/trunk@197998 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: support observer retirement during lifetime notifications.
While transitioning Blink to Oilpan, there will be LifecycleNotifier<>s
not on the Oilpan heap, but with some of their LifecycleObserver<>s being
on the heap.

Should a GC strike while such a notifier iterates over its observer set,
dead observers may remove themselves (eagerly) while being finalized
during that GC. This will mutate the notifier set, which isn't currently
assumed nor supported.

There's no need to support this when fully transitioned, Oilpan will
handle GCs across such iterations gracefully, but in the meantime we will
have to support this by snapshot'ing the observer set and explicitly
checking for liveness. Like already done over ContextLifecycleNotifier,
where such dynamic unregistrations are supported.

Notice that this issue isn't tied to lazy sweeping; indeed, lazy sweeping
without eager finalization of lifecycle observers will potentially make this
bug rarer.

R=haraken
BUG=480837

Review URL: https://codereview.chromium.org/1214963002

git-svn-id: svn://svn.chromium.org/blink/trunk@197990 bbb929c8-8fbe-4397-9dbb-9b2b20218538
haavardm
Ignore certificate transparency by default.
Current behavior is to remove the EV flag if the ct enforcer is not
set by the embedder. This somewhat unexpectedly removes EV for all
servers, if the embedder has not taken explicit actions to turn
on CT.

CT should either be ignored when policy enforcer is not present,
or there should be asserts warning about the missing EV-white
list. This patch chooses the first option as CT is not yet a
security requirement, and I don't think it's correct to demand
CT support quite yet.

Note that this change has no effect on Chrome's default behavior.

BUG=NONE

Review URL: https://codereview.chromium.org/1211423002

Cr-Commit-Position: refs/heads/master@{#336539}
sigbjornf
Oilpan: fix build after r197963.
TBR=oilpan-reviews
BUG=437696
NOTRY=true

Review URL: https://codereview.chromium.org/1217683004

git-svn-id: svn://svn.chromium.org/blink/trunk@197965 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r197958.
TBR=oilpan-reviews
BUG=427652
NOTRY=true

Review URL: https://codereview.chromium.org/1214103002

git-svn-id: svn://svn.chromium.org/blink/trunk@197962 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r197938.
TBR=oilpan-reviews
BUG=501642
NOTRY=true

Review URL: https://codereview.chromium.org/1215843002

git-svn-id: svn://svn.chromium.org/blink/trunk@197939 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r197920
TBR=oilpan-reviews
BUG=503227
NOTRY=true

Review URL: https://codereview.chromium.org/1217463003

git-svn-id: svn://svn.chromium.org/blink/trunk@197925 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Work around flaky TextTrackList tests that will be stable with Oilpan
This test calls document.createElement('video').textTracks and has no
reference to the video element. The TextTrackList doesn't keep its
owner HTMLMediaElement alive, so if the owner is garbage collected,
TextTrackList::executionContext() returns null. That in turn makes
EventTarget::dispatchEvent() do nothing, and thus the assert_true(ran)
fails because the event handler was in fact never run.

The owner is a RawPtrWillBeMember<HTMLMediaElement>, so this problem
will not occur with Oilpan, and does not seem worth addressing
pre-Oilpan unless there's evidence of this happening in the wild.

BUG=503852

Review URL: https://codereview.chromium.org/1213813002

git-svn-id: svn://svn.chromium.org/blink/trunk@197907 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: make XHR progress event throttling finalization safe.
Move the XHR event throttling object to the heap. It is a timer object,
hence it must be eagerly finalized so as to prevent unsafe accesses
should it instead be lazy sweepable.

Part objects cannot be eagerly finalized on their own, hence this is
accomplished by moving the object to the heap. For simplicity, we keep
it as a separate heap object non-Oilpan also.

R=haraken
BUG=491488

Review URL: https://codereview.chromium.org/1200413004

git-svn-id: svn://svn.chromium.org/blink/trunk@197904 bbb929c8-8fbe-4397-9dbb-9b2b20218538
landell
Make sure dispatchFailLoad is triggered by stopLoading
Calling ResourceFetcher::stopFetching before
DocumentLoader::cancelMainResourceLoad may trigger a
dispatchDidFinishLoad instead of the expected dispatchFailLoad. This
patch reverts to the former ordering of the calls, which solves the
problem.

BUG=501248

Review URL: https://codereview.chromium.org/1205703006

git-svn-id: svn://svn.chromium.org/blink/trunk@197901 bbb929c8-8fbe-4397-9dbb-9b2b20218538
davve
Fix string representation of TestInput
Review URL: https://codereview.chromium.org/1210743004

git-svn-id: svn://svn.chromium.org/blink/trunk@197898 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Have enclosingPositionedAncestor() detect whether it walked past a certain ancestor.
This is similar to what LayoutObject::container() does.

This simplifies the code in accumulateOffsetTowardsAncestor(), which previously
had to duplicate what enclosingPositionedAncestor() did.

Also cleaned up the other call site of enclosingPositionedAncestor(). No need
to call the method twice there.

No behavioral changes intended; this is just clean-up.

R=chrishtr@chromium.org

Review URL: https://codereview.chromium.org/1199673003

git-svn-id: svn://svn.chromium.org/blink/trunk@197846 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r197830.
TBR=oilpan-reviews
BUG=501896
NOTRY=true

Review URL: https://codereview.chromium.org/1207333002

git-svn-id: svn://svn.chromium.org/blink/trunk@197844 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Add isMultiColumnContainer() for convenience and readability.
R=dsinclair@chromium.org

Review URL: https://codereview.chromium.org/1210803002

git-svn-id: svn://svn.chromium.org/blink/trunk@197828 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: add missing ASan no-sanitize declaration following r197814.
TBR=oilpan-reviews
BUG=498229
NOTRY=true

Review URL: https://codereview.chromium.org/1211883002

git-svn-id: svn://svn.chromium.org/blink/trunk@197826 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ingemara
Retrieve resources from media and supports query rules while serializing
Traverse rules behind media and supports queries while serializing (and gathering resources
referenced from) stylesheets. Resources from non-matching queries will be
skipped as they haven't been fetched.

BUG=503919

Review URL: https://codereview.chromium.org/1203873004

git-svn-id: svn://svn.chromium.org/blink/trunk@197813 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r197804.
TBR=oilpan-reviews
BUG=504035
NOTRY=true

Review URL: https://codereview.chromium.org/1204233003

git-svn-id: svn://svn.chromium.org/blink/trunk@197810 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r197805.
TBR=oilpan-reviews
BUG=496033
NOTRY=true

Review URL: https://codereview.chromium.org/1205343002

git-svn-id: svn://svn.chromium.org/blink/trunk@197809 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r197794.
TBR=oilpan-reviews
BUG=426458
NOTRY=true

Review URL: https://codereview.chromium.org/1209873002

git-svn-id: svn://svn.chromium.org/blink/trunk@197806 bbb929c8-8fbe-4397-9dbb-9b2b20218538
davve
Rewrite nine piece image painting code
Introduce a NinePieceImageGrid class responsible for computing the
nine piece image drawing information. The NinePieceImageGrid is
oblivious to painting details and only operates on the border image
properties (through NinePieceImage), image size and border image area.

Functionally, it shouldn't introduce any significant changes and
nothing web exposed should change at all.

Since computing drawing information is now self-contained, supply unit
tests for verifying it does the correct thing in the common and not so
common cases.

BUG=496033

Review URL: https://codereview.chromium.org/1180053009

git-svn-id: svn://svn.chromium.org/blink/trunk@197805 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Retire http/tests/xmlhttprequest/event-listener-gc.html test expectation.
TBR=hayato
BUG=503842
NOTRY=true

Review URL: https://codereview.chromium.org/1205293002

git-svn-id: svn://svn.chromium.org/blink/trunk@197803 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Remove LayoutFlowThread::maxLogicalHeight().
Use LayoutUnit::max() like everyone else, to avoid errors when approaching
"infinity". We fooled ourselves into thinking that we had two pages (because
column height was clamped to LayoutUnit::max()/2, while the block height was
clamped to LayoutUnit::max()), when we really only had one.

We use saturated arithmetic in LayoutUnit & co anyway, so there's no reason to
be afraid of integer overflow.

BUG=502407
R=dsinclair@chromium.org

Review URL: https://codereview.chromium.org/1209693002

git-svn-id: svn://svn.chromium.org/blink/trunk@197771 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Table cells, rows, sections or column (groups) don't support margins.
R=leviw@chromium.org

Review URL: https://codereview.chromium.org/1211523002

git-svn-id: svn://svn.chromium.org/blink/trunk@197770 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Revert of Oilpan: promptly finalize XMLHttpRequestProgressEventThrottle. (patchset #1 id:1 of https://codereview.chromium.org/1205843003/)
Reason for revert:
This is not well-formed as-is; XMLHttpRequestProgressEventThrottle is a part object & cannot be eagerly finalized on its own.

Original issue's description:
> Oilpan: promptly finalize XMLHttpRequestProgressEventThrottle.
> 
> This timer object needs to promptly stop, otherwise we run the risk
> of timers firing while the object is in non-valid state waiting to be
> finalized by an ongoing lazy sweep.
> 
> R=haraken
> BUG=491488
> 
> Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=197736

TBR=oilpan-reviews@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=491488

Review URL: https://codereview.chromium.org/1211593002

git-svn-id: svn://svn.chromium.org/blink/trunk@197749 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: promptly finalize XMLHttpRequestProgressEventThrottle.
This timer object needs to promptly stop, otherwise we run the risk
of timers firing while the object is in non-valid state waiting to be
finalized by an ongoing lazy sweep.

R=haraken
BUG=491488

Review URL: https://codereview.chromium.org/1205843003

git-svn-id: svn://svn.chromium.org/blink/trunk@197736 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Keep effectiveZoom finite
Through repeated application, it's quite possible to get the effective
zoom to overflow, resulting in Infinity in ComputedStyle.
This is a very uncommon case in reality (outside fuzzers), but make
sure to clamp the effective zoom value to a finite range to avoid the
simplest cases of Infinity havoc-wrecking.

BUG=490757,502997

Review URL: https://codereview.chromium.org/1193203003

git-svn-id: svn://svn.chromium.org/blink/trunk@197734 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r197716.
TBR=oilpan-reviews
BUG=501896
NOTRY=true

Review URL: https://codereview.chromium.org/1206803002

git-svn-id: svn://svn.chromium.org/blink/trunk@197729 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r197705, pt 2.
Missing tracing caught by the awesome clang GC plugin.

R=haraken
BUG=450238
NOTRY=true

Review URL: https://codereview.chromium.org/1206723004

git-svn-id: svn://svn.chromium.org/blink/trunk@197725 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Unflake http/tests/xmlhttprequest/event-listener-gc.html
Using a zero-timeout and timer task to set up the test condition is not
as precise as we would like. Rephrase to use an immediate message
dispatch instead.

R=
BUG=503842

Review URL: https://codereview.chromium.org/1201393003

git-svn-id: svn://svn.chromium.org/blink/trunk@197724 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r197705.
TBR=oilpan-reviews
BUG=450238
NOTRY=true

Review URL: https://codereview.chromium.org/1207673002

git-svn-id: svn://svn.chromium.org/blink/trunk@197720 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ingemara
Move LayoutTest Linux distribution detection to PlatformInfo
Also introduce a custom Apache configuration for Arch Linux, which differs
slightly from the Debian configuration.

BUG=502972

Review URL: https://codereview.chromium.org/1201873002

git-svn-id: svn://svn.chromium.org/blink/trunk@197714 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Prevent scientific notation in LayoutUnit gdb prettyprinter.
Prevent this by increasing precision on the %g format specifier. Now we can see
full values like 33554431.984375px, instead of having them crippled like
3.35544e+07px.

R=cbiesinger@chromium.org,dpranke@chromium.org

Review URL: https://codereview.chromium.org/1202773002

git-svn-id: svn://svn.chromium.org/blink/trunk@197682 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: enable appcache + move DocumentLoader to the heap.
DocumentLoader belongs on the heap. References to it
are kept by an object that is on the heap (FrameLoader),
and DocumentLoader itself has heap references.

Along with moving DocumentLoader, have the two appcache
objects (ApplicationCache and ApplicationCacheHost) be
under Oilpan's control always.

R=haraken
BUG=340522,497595

Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=197576

Review URL: https://codereview.chromium.org/1194003004

git-svn-id: svn://svn.chromium.org/blink/trunk@197664 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: promptly finalize remaining SuspendableTimers.
DOMWindowEventQueue and PostMessageTimer also need to promptly
stop their timer upon being deemed garbage.

R=haraken
BUG=491488

Review URL: https://codereview.chromium.org/1205573002

git-svn-id: svn://svn.chromium.org/blink/trunk@197659 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Deflake fast/html/imports/import-expando-gc.html
If a minor GC fails to identify the wrapper for the import document as
reachable, it'll be collected. Make sure that this will not happen by way
of a 'global' root.

R=haraken
BUG=503583
NOTRY=true

Review URL: https://codereview.chromium.org/1200643004

git-svn-id: svn://svn.chromium.org/blink/trunk@197655 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: make custom element microtask dispatching lazy sweep savvy.
When microtask tasks are dispatched, the objects they work over might
be in the process of finalizing. Check before initiating the dispatch.

R=haraken
BUG=502855

Review URL: https://codereview.chromium.org/1206503003

git-svn-id: svn://svn.chromium.org/blink/trunk@197646 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: make SuspendableScriptExecutor safe.
This ActiveDOMObject was missing two pieces:

 - remove itself as an Observer upon completion.
 - promptly stop itself as a timer upon finalization.

R=haraken
BUG=502858

Review URL: https://codereview.chromium.org/1197163003

git-svn-id: svn://svn.chromium.org/blink/trunk@197644 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Get rid of old flow thread comments and asserts in accumulateOffsetTowardsAncestor().
R=chrishtr@chromium.org

Review URL: https://codereview.chromium.org/1198273003.

git-svn-id: svn://svn.chromium.org/blink/trunk@197641 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: eagerly finalize SVGFEImageElement as an ImageResourceClient.
R=haraken
BUG=491488

Review URL: https://codereview.chromium.org/1197283006

git-svn-id: svn://svn.chromium.org/blink/trunk@197638 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: eagerly finalize CSSCrossfadeValue.
R=haraken
BUG=491488

Review URL: https://codereview.chromium.org/1201983003

git-svn-id: svn://svn.chromium.org/blink/trunk@197633 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: have media element prefinalizer handle all finalization.
It is unsafe to access a to-be-finalized object, which is a
possibility for media elements with lazy sweeping enabled.
The access in that case being made by the embedder media
player updating and notifying the media element.

Prevent that from happening by promptly/eagerly releasing
the player object.

With prefinalizers now being able to allocate, extend r197339 and
finalize the media player and perform the other Oilpan finalization
steps during media element prefinalization.

R=haraken
BUG=502863

Review URL: https://codereview.chromium.org/1193383002

git-svn-id: svn://svn.chromium.org/blink/trunk@197628 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Apply outline-offset on all edges (not just top/left)
In InlinePainter::paintOutlineForLine, the "outline rectangles" are
formed by expanding and shifting by outline-offset. This however only
result in an offset of the outline on the top and left sides.
Rewrite the code to use an inflate() operation instead, so that all
four edges are affected by the offset.
The spec describes the effect of the 'outline-offset' property as:

  "If the computed value of outline-offset is anything other than 0,
   then the outline is outset from the border edge by that amount."
  "Negative values must cause the outline to shrink into the border
   box."

(http://dev.w3.org/csswg/css-ui-3/#outline-offset)

This is also what ObjectPainter::paintOutline does.

This makes us match Gecko more closely rendering-wise.

TEST=fast/inline/outline-offset.html (S.P. strict cull rect)
BUG=495368

Review URL: https://codereview.chromium.org/1201753003

git-svn-id: svn://svn.chromium.org/blink/trunk@197589 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: enable appcache + move DocumentLoader to the heap.
DocumentLoader belongs on the heap. References to it
are kept by an object that is on the heap (FrameLoader),
and DocumentLoader itself has heap references.

Along with moving DocumentLoader, have the two appcache
objects (ApplicationCache and ApplicationCacheHost) be
under Oilpan's control always.

R=haraken
BUG=340522,497595

Review URL: https://codereview.chromium.org/1194003004

git-svn-id: svn://svn.chromium.org/blink/trunk@197576 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r197563.
TBR=oilpan-reviews
BUG=275851
NOTRY=true

Review URL: https://codereview.chromium.org/1195963005

git-svn-id: svn://svn.chromium.org/blink/trunk@197571 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Measure the impact of a propsed change to createAttribute()
There is a proposal to lowercase name in HTML documents:
https://bugzilla.mozilla.org/show_bug.cgi?id=1165851#c34

The counter in Document::createAttribute will catch any case where the
change would be observable, providing an upper limit to the risk.

The counter in Element::setAttributeNode is a reasonable proxy for the
case which is most likely problematic, namely trying to set a camelCase
Attr created by an HTML document on a non-HTML element, likely SVG, as
suggested by Boris Zbarsky:
https://bugzilla.mozilla.org/show_bug.cgi?id=1175031#c5

(The source of the Attr object need not be createAttribute, but extra
bookkeeping to determine that would either increase sizeof(Attr) or
require a new NodeFlags entry, so don't do that for now.)

BUG=502301

Review URL: https://codereview.chromium.org/1195583002

git-svn-id: svn://svn.chromium.org/blink/trunk@197549 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Remove unused FS callback partial specializations.
Retire unused transition type specializations of scheduleCallback() and
handleEventOrScheduleCallback().

R=haraken
BUG=340522

Review URL: https://codereview.chromium.org/1194093002

git-svn-id: svn://svn.chromium.org/blink/trunk@197530 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: keep StashedPortCollection always on the heap.
Have StashedPortCollection derive from RefCountedGarbageCollected, allowing
this EventTarget to reside on the heap irrespective of ENABLE(OILPAN).

R=haraken
BUG=497595

Review URL: https://codereview.chromium.org/1197763002

git-svn-id: svn://svn.chromium.org/blink/trunk@197529 bbb929c8-8fbe-4397-9dbb-9b2b20218538
landell
Use single and correct URL to flot library homepage
BUG=501810

Review URL: https://codereview.chromium.org/1191103002

Cr-Commit-Position: refs/heads/master@{#335378}
sigbjornf
Have ScreenOrientationController use a timer for async event dispatch again
Essentially revert r193927's switch to using a task to queue handling of
change event dispatch for ScreenOrientationController. Queuing a task
via the execution context / Document is unsafe for this controller object
as its lifetime is that of its frame. Should the frame be detached and
finalized while the Document remains alive, the queued task risks accessing
a freed ScreenOrientationController upon running.

Go back to using a one-shot timer; as these are now task based, the
original motivation for r193927 has additionally fallen away (wean Blink
off from using one-shot shared timers.)

R=mlamouri
BUG=501888

Review URL: https://codereview.chromium.org/1190293002

git-svn-id: svn://svn.chromium.org/blink/trunk@197466 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
ifdef out ProcessUtilTest.CloneFlags on linux with old kernel headers
This allows the rest of base_unittests to build/run on such
systems.

BUG=312380

Review URL: https://codereview.chromium.org/1189683004

Cr-Commit-Position: refs/heads/master@{#335123}
sigbjornf
Move paint invalidation up into HTMLMediaElement::clearMediaPlayer().
To avoid (Oilpan) finalization order issues, reposition r197301's paint
invalidation of media elements. Instead of triggering it as part of the
destruction of the media element's media player client object, have the
media element handle it on its own while initiating the destruction of
the media player (and more) in clearMediaPlayer(). A simpler arrangement.

R=haraken,chrishtr
BUG=497614

Review URL: https://codereview.chromium.org/1186853004

git-svn-id: svn://svn.chromium.org/blink/trunk@197395 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Avoid stretching the parent of a column spanner.
We used to stretch the parent of a spanner, so that it would take up all
remaining space in the last column, to make sure that column content after the
spanner wouldn't bleed into the column preceding the spanner.

This stretching (a kludge, really) was problematic, especially if the parent
had fixed height, which would override the stretching. This would lead to
broken layout, and even assertion failures.

Instead, deal with the fact that the last column may be shorter than the
others. We don't want this for paged overflow, though, or it'd be impossible to
scroll the last page completely into view.

BUG=499706
R=dsinclair@chromium.org,jchaffraix@chromium.org

Review URL: https://codereview.chromium.org/1181483005

git-svn-id: svn://svn.chromium.org/blink/trunk@197392 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Make mapLocalToContainer() work properly for content that follows a column spanner.
mapLocalToContainer() uses offsetFromContainer(), which uses columnOffset()
(which calls flowThreadTranslationAtOffset()), which didn't always return the
correct translation relatively to the flow thread.

This also improves the fix for bug 479155.
MultiColumnFragmentainerGroup::flowThreadTranslationAtOffset() needs to return
a translation relative to the flow thread, and the code we had basically just
happened to work by accident (flipping a flow thread portion rectangle for
writing mode around a column set is just bogus, since a column set isn't
sized in the flow thread coordinate space). This solution would cause problems
with the upcoming fix for bug 499706, because then the last column may be
shorter than the others (because it's not completely filled).

BUG=501772
R=dsinclair@chromium.org,jchaffraix@chromium.org

Review URL: https://codereview.chromium.org/1190153002

git-svn-id: svn://svn.chromium.org/blink/trunk@197373 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: add prefinalizer for HTMLMediaElement.
A prefinalizer is needed for the media element for the case where it is
finalized in the same GC as its execution context (Document.) The
interaction between the media element and the Document to synchronize
load event handling can only safely be done prior to either is swept
out and finalized.

R=
BUG=500352

Review URL: https://codereview.chromium.org/1184373006

git-svn-id: svn://svn.chromium.org/blink/trunk@197339 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jmanko
Add missing null-check in OverscrollControllerAndroid::Animate()
Without it, there's a crash when running with
disable-overscroll-edge-effect switch.

BUG=501472

Review URL: https://codereview.chromium.org/1195453003

Cr-Commit-Position: refs/heads/master@{#334897}
philipj
Measure usage of FormData.append(name, blob, filename)
As requested by Anne van Kesteren:
https://bugzilla.mozilla.org/show_bug.cgi?id=1162658#c47

Per spec the blob argument cannot be null, but in Blink it can without
[TypeChecking=Interface], for FormData.append(name, null, filename).
(With no filename argument it is instead taken as the USVString "null".)
This is almost certainly safe to fix, but it's easy to measure here.

BUG=498790

Review URL: https://codereview.chromium.org/1174973003

git-svn-id: svn://svn.chromium.org/blink/trunk@197268 bbb929c8-8fbe-4397-9dbb-9b2b20218538
landell
Reland: Window.postMessage() to self can cause document leaks
When a script does Window.postMessage() a PostMessageTimer object is
stored in the LocalDOMWindow until the message has been delivered, or
until it is cleared in the destructor of LocalDOMWindow. When a
LocalDOMWindow is reset the remaining messages will not be
delivered. Any PostMessageTimer objects alive at that point will be kept
until the LocalDOMWindow is destroyed. Unfortunately, the
PostMessageTimer objects keeps a reference to the source window. If both
the source and destination window of the message is the same, the
PostMessageTimer can keep that LocalDOMWindow from getting destroyed.

Removing the PostMessageTimers when stop() is invoked fixes the problem.

BUG=500821,499692

Review URL: https://codereview.chromium.org/1186093003

git-svn-id: svn://svn.chromium.org/blink/trunk@197252 bbb929c8-8fbe-4397-9dbb-9b2b20218538
christiank
Add glCopyCompressedTextureCHROMIUM
This CL adds a GPU command for copying compressed textures. It's
based on glCopyTextureCHROMIUM, but modified for use on
compressed textures. It only supports GLImage-based copying.

BUG=434699

Review URL: https://codereview.chromium.org/1119723003

Cr-Commit-Position: refs/heads/master@{#334810}
sigbjornf
Oilpan: adjust GC policy under memory pressure (only.)
When notified of a v8 major GC, check if we're under memory pressure and
overdue an Oilpan GC & urgently. If so, force a conservative GC right
away.

This addresses dom-modify.html OOM troubles on win32, in particular. It
runs into the allocation pattern where the Oilpan allocator is able to
handle a tight loop just allocating Text nodes by bump allocating each
such node. Each Text node has a large external string allocation however,
which leads to a steep ramp-upin overall allocation amounts to the point
where it might OOM as no Oilpan GCs will run. v8 will however notice the
increasing memory pressure and schedule major GCs of its own.

Oilpan is notified after each v8 major GC, so use that opportunity to
check for memory pressure & force an Oilpan GC right away.

R=haraken
BUG=474470

Review URL: https://codereview.chromium.org/1190513006

git-svn-id: svn://svn.chromium.org/blink/trunk@197245 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mharanczyk
Change root bounds in RenderWidgetHostViewAuraTest.ParentMovementUpdatesScreenRect
test to avoid initializing portrait mode static primary rotation and cause test
failures on memory waterfall.

It turns out that on normal run each test is run separately, but on
memory waterfall they are run in such a way  (in one process in bulk?)
that if previous test sets up some static values they are preserved
for all consecutive tests, creating hidden dependency between them.
In this case values of primary portrait and landscape angles that are in
RenderWidgetHostViewBase::GetOrientationTypeForDesktop are preserved
between tests and primary_portrait_angle was set up to unexpected value (0)
by test I've added, which broke RenderWidgetHostViewBaseTest.OrientationTypeForDesktop
which expected to set those up by itself and test it.

BUG=499914, 500011

Review URL: https://codereview.chromium.org/1186843002

Cr-Commit-Position: refs/heads/master@{#334792}
sigbjornf
Oilpan: tidy up after r197233.
TBR=oilpan-reviews
BUG=398920
NOTRY=true

Review URL: https://codereview.chromium.org/1176183003

git-svn-id: svn://svn.chromium.org/blink/trunk@197241 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Promptly finalize CacheStorage's embedder object.
The lifetime of the global object's CacheStorage is that of the global
object, so when it is destructed/finalized, the CacheStorage must
release its embedder object at the same. This so as to prevent the
embedder calling into Blink after it has shut down or when it is in
the process of finalizing and lazily sweeping out its Oilpan heap.

R=haraken,jsbell@chromium.org
BUG=500355

Review URL: https://codereview.chromium.org/1183373006

git-svn-id: svn://svn.chromium.org/blink/trunk@197236 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Avoid resetting rule features when removing style-less shadow.
We reset the global rule features when removing a shadow root from the
tree. There is no reason to do that if the scope does not contain style,
so we'll skip the reset when there is no ScopedStyleResolver.

In particular, this can be the case for UA shadow roots. For the case
where the scope contains style, this will be fixed by componentized style
resolving.

What occurs in issue 499349 is:

1. Remove a form child which is an input with a UA shadow root.
2. Removing the root causes rule features to be reset globally.
3. Removing an input child of a form requires a validity check.
4. The validity check schedules an invalidation for :valid etc.
5. Scheduling invalidation sets require an up-to-date rule feature set
   which includes invalidation sets, so the rule features are collected.

1-5 is repeated for each removed input. The global feature collection in
step 5 is the expensive part here.

R=tkent@chromium.org,esprehn@chromium.org
BUG=499349

Review URL: https://codereview.chromium.org/1185423004

git-svn-id: svn://svn.chromium.org/blink/trunk@197204 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
No need for both isLayoutBoxModelObject() and isBoxModelObject().
They answer the exact same question.
Deleted one and kept the most popular one (isBoxModelObject()).

R=leviw@chromium.org

Review URL: https://codereview.chromium.org/1187033004

git-svn-id: svn://svn.chromium.org/blink/trunk@197197 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Empty LayoutObject::pushMappingToContainer(). Assert that not reached.
This code seems unreachable.

R=ojan@chromium.org

Review URL: https://codereview.chromium.org/1183393003

git-svn-id: svn://svn.chromium.org/blink/trunk@197194 bbb929c8-8fbe-4397-9dbb-9b2b20218538
davve
Return ints from border{Before,After,Start,End}Width
The users of these functions in LayoutBoxModelObject already returns
ints and the functions they wrap also returns int.

BUG=496033

Review URL: https://codereview.chromium.org/1183163002

git-svn-id: svn://svn.chromium.org/blink/trunk@197161 bbb929c8-8fbe-4397-9dbb-9b2b20218538
davve
Return int from outlineWidth() and outlineSize()
The underlying storage is an int and it's usually used together with
plain ints.

BUG=496033

Review URL: https://codereview.chromium.org/1185753005

git-svn-id: svn://svn.chromium.org/blink/trunk@197159 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r197129.
TBR=oilpan-reviews
BUG=none
NOTRY=true

Review URL: https://codereview.chromium.org/1186823005

git-svn-id: svn://svn.chromium.org/blink/trunk@197136 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
replace VLOG with DVLOG in content/browser/loader/resource_loader.cc
VLOG() has a high overhead due to pattern matching. One of the major culprits
is in content/browser/loader/resource_loader.cc

BUG=489818,489441
R=sque,mmenke

Review URL: https://codereview.chromium.org/1174173013

Cr-Commit-Position: refs/heads/master@{#334388}
sigbjornf
Revert of Oilpan: adjust GC policy under memory pressure. (patchset #4 id:60001 of https://codereview.chromium.org/1174123002/)
Reason for revert:
Plausible candidate for regressing v8 GC totals on v8.top_25_smooth somewhat,

 https://code.google.com/p/chromium/issues/detail?id=499822

Original issue's description:
> Oilpan: adjust GC policy under memory pressure.
> 
> When notified of a v8 major GC, check if we're under memory pressure and
> overdue an Oilpan GC & urgently. If so, force a conservative GC right
> away.
> 
> This addresses dom-modify.html OOM troubles on win32, in particular. It
> runs into the allocation pattern where the Oilpan allocator is able to
> handle a tight loop just allocating Text nodes by bump allocating each
> such node. Each Text node has a large external string allocation however,
> which leads to a steep ramp-upin overall allocation amounts to the point
> where it might OOM as no Oilpan GCs will run. v8 will however notice the
> increasing memory pressure and schedule major GCs of its own.
> 
> Oilpan is notified after each v8 major GC, so use that opportunity to
> check for memory pressure & force an Oilpan GC right away.
> 
> R=haraken
> BUG=420515
> 
> Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=196953

TBR=haraken@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=420515

Review URL: https://codereview.chromium.org/1191483002

git-svn-id: svn://svn.chromium.org/blink/trunk@197114 bbb929c8-8fbe-4397-9dbb-9b2b20218538
davve
Use plain int for borders widths when possible
Chromium coding style (not overridden by Blink's in this case)
states:

  Do not use unsigned types to mean "this value should never be < 0".

The BorderValue width storage is currently 26 bits wide so it's easily
contained in a plain int.

No functional change expected.

BUG=496033

Review URL: https://codereview.chromium.org/1182053003

git-svn-id: svn://svn.chromium.org/blink/trunk@197111 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Sync worker interfaces with the HTML spec
Also include ApplicationCache because of the SharedWorker connection.

There are no changes to the generated code other than order.

BUG=460722

Review URL: https://codereview.chromium.org/1185043005

git-svn-id: svn://svn.chromium.org/blink/trunk@197103 bbb929c8-8fbe-4397-9dbb-9b2b20218538
tmoniuszko
Remove redundant enable_media_router assignment
It's declared in declare_args() section already.

BUG=

Review URL: https://codereview.chromium.org/1186503002

Cr-Commit-Position: refs/heads/master@{#334363}
sigbjornf
Introduce (Heap)Vector trait covering zero'ed memory for unused slots.
When a slot/index in a heap vector's backing storage is marked as unused,
its value must be cleared out. This so as to prevent later GC tracing or
finalization of the backing storage from incorrectly interpreting those
bits. The heap vector handles such unused slots by zero-ing out the block
of memory it maps to; if that zero'ed block of memory doesn't represent
a valid instance of a class type, it cannot be used in heap vectors.

Introduce a vector trait controlling if a memset()-zero'ed slot represents
a valid value for the Oilpan GC infrastructure to interpret when tracing
and finalizing that value. It is needed for the class types where the
default constructor maps to a representation that isn't all zero, but
that zero'ed representation is still valid for the Oilpan GC to interpret.

R=haraken,tkent
BUG=420515

Review URL: https://codereview.chromium.org/1180383002

git-svn-id: svn://svn.chromium.org/blink/trunk@197100 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r197063, move HitTestCache to the heap.
Follow up r197063 and make HitTestCache compatible with Oilpan.

R=haraken
BUG=398920

Review URL: https://codereview.chromium.org/1185923002

git-svn-id: svn://svn.chromium.org/blink/trunk@197095 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove WebMediaPlayerClient::requestFullscreen()
This was used for a while and then removed again:
https://codereview.chromium.org/41123002
https://codereview.chromium.org/1021723003

BUG=496627

Review URL: https://codereview.chromium.org/1157253010

git-svn-id: svn://svn.chromium.org/blink/trunk@197089 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Add <stdarg.h> include required for va_start/va_end in GCC
https://codereview.chromium.org/1181713004 removed some base/port.h
includes, which in turn includes <stdarg.h>. This include is needed
to compile with GCC, at least on some systems.

BUG=138542

Review URL: https://codereview.chromium.org/1185683002

git-svn-id: svn://svn.chromium.org/blink/trunk@197088 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Add out-of-flow descendants of spanners to their containing blocks in time.
A column spanner isn't laid out as a normal child in the flow thread, since the
flow thread isn't a containing block for spanners. However, out-of-flow
descendants of a spanner may have their containing blocks somewhere outside the
spanner but inside the flow thread, and those have to be laid out as part of
flow thread layout (layoutPositionedObjects() on their containing block).

Therefore we have to add such out-of-flow objects to their respective
containing blocks when skipping spanners, or they'll never get laid out.

We also have to bail from updateBlockChildDirtyBitsBeforeLayout() for
out-of-flow objects, so that they don't get marked when laying out the spanner.
They may already have been laid out at that point (as part of flow thread
layout), in which case we'll never get back to laying them out again if marked
(since we're way past that point in the tree). In any case, it's a pretty
useless thing to mark out-of-flow objects for layout here, since we by doing
that would kind of be assuming that the out-of-flow child has its parent as its
containing block (which may be true, by all means, but not something that
should be taken for granted).

Added a reftest that would assert and probably fail visually too without this
fix.

BUG=498770
R=dsinclair@chromium.org,jchaffraix@chromium.org

Review URL: https://codereview.chromium.org/1181693004

git-svn-id: svn://svn.chromium.org/blink/trunk@197071 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Measure SVGSVGElement.useCurrentView/currentView
By request from Olli Pettay on #whatwg

Review URL: https://codereview.chromium.org/1180903005

git-svn-id: svn://svn.chromium.org/blink/trunk@197070 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Add <stdarg.h> include required for va_start/va_end in GCC
https://codereview.chromium.org/1181713004 removed some base/port.h
includes, which in turn includes <stdarg.h>. This include is needed
to compile with GCC, at least on some systems.

BUG=138542
NOPRESUBMIT=true

Review URL: https://codereview.chromium.org/1177213003

Cr-Commit-Position: refs/heads/master@{#334260}
rogerj
Fix leak of PlatformHandleDispatchers in Mojo IPC
PassWrappedPlatformHandle does not close the MojoHandle.
The destructor of ScopedHandleBase will however close it.
The problem with this code was that it called release()
on the ScopedHandle, preventing the destructor from being
called, and thus also the MojoHandle from being closed.

This leaves the PlatformHandleDispatcher associated with
the MojoHandle alive in mojo::system::Core::handle_table_

By calling reset() instead the MojoHandle is closed, and
the leak is fixed.

R=morrita@chromium.org, viettrungluu@chromium.org, agl@chromium.org

BUG=None

Review URL: https://codereview.chromium.org/1174423002

Cr-Commit-Position: refs/heads/master@{#334197}
sigbjornf
Oilpan: fix build after r197039.
CSSFontSelectorClient now needs to a GC mixin.

TBR=oilpan-reviews
BUG=481515
NOTRY=true

Review URL: https://codereview.chromium.org/1186543002

git-svn-id: svn://svn.chromium.org/blink/trunk@197044 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Document and measure the TextEvent interface and the textinput event
BUG=460722

Review URL: https://codereview.chromium.org/1184493002

git-svn-id: svn://svn.chromium.org/blink/trunk@197042 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Correct fast/multicol/vertical-rl/image-inside-nested-blocks-with-border.html
We have a float at the beginning of the second column. The test wanted the
float to have its left edge flush with the left edge of the multicol container,
but this is vertical-rl writing mode, so it will instead have its right edge
flush with the right edge of the multicol container, since that's where columns
start in the block progression direction. So the test "failed" and was stored
as such in the expectation file. But both the layout engine and the behavior of
getBoundingClientRect were correct all along.

Corrected the test, and removed a bunch of boilerplate and turned it into
something using js-test.js instead. In order to be consistent, I also cleaned
up the vertical-lr and horiontal-tb (default) variants in the same way as well.

R=dsinclair@chromium.org

Review URL: https://codereview.chromium.org/1173313003

git-svn-id: svn://svn.chromium.org/blink/trunk@197040 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: eagerly finalize MIDIAccess.
MIDIAccess' MIDIAccessor is registered as a callable client of the
embedder's WebMIDIAccessor. It is unsafe to access that client interface
during lazy sweeping, as it might access heap objects that have
been finalized.

Consequently, mark MIDIAccess as eagerly finalized, making it release
its MIDIAccessor before the mutator is allowed heap access after
a GC.

R=haraken
BUG=491488

Review URL: https://codereview.chromium.org/1179143002

git-svn-id: svn://svn.chromium.org/blink/trunk@197038 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: add missing transition type on stack allocated StyleSheetHandler.
R=haraken
BUG=340522

Review URL: https://codereview.chromium.org/1185603002

git-svn-id: svn://svn.chromium.org/blink/trunk@197032 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Sync audio/video/text track-related interfaces with the specs
There are no changes to the generated code other than order and the
added use counters.

BUG=460722

Review URL: https://codereview.chromium.org/1178333002

git-svn-id: svn://svn.chromium.org/blink/trunk@197031 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
GC plugin: enable plugin on anonymous namespaces.
R=haraken
BUG=499738

Review URL: https://codereview.chromium.org/1173333003

Cr-Commit-Position: refs/heads/master@{#334141}
jl
Make arguments to window.{move,resize}{To,By} non-optional
When missing these arguments used to default to "the current value" so
calling the functions without arguments was a no-op. This is not
compatible with other implementations.

In Firefox (35), the arguments are not optional, so calling the functions
with fewer than two arguments throws a TypeError.

In IE (11), the arguments are optional with zero default value.

This patch aligns with Firefox's behavior, and also simplifies the
implementation by not dealing with missing arguments.

BUG=453421

Review URL: https://codereview.chromium.org/886463010

git-svn-id: svn://svn.chromium.org/blink/trunk@197024 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mharanczyk
Correct ENABLE_MEDIA_ROUTER defines to fix compilation without it.
Review URL: https://codereview.chromium.org/1177973005

Cr-Commit-Position: refs/heads/master@{#334134}
philipj
Remove unused code calling WebMediaPlayerClient::requestFullscreen()
This was used for a while and then removed again:
https://codereview.chromium.org/41123002
https://codereview.chromium.org/1021723003

BUG=496627

Review URL: https://codereview.chromium.org/1156273006

Cr-Commit-Position: refs/heads/master@{#334132}
philipj
Sync some HTML interfaces with the spec
There are no changes to the generated code other than naming (ImageData)
and order (MediaController).

BUG=460722

Review URL: https://codereview.chromium.org/1178223004

git-svn-id: svn://svn.chromium.org/blink/trunk@197008 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Use ComputedStyle::outlineOutset in ObjectPainter::outlineBounds
De-dupes one more instance of the outline outset logic.

Review URL: https://codereview.chromium.org/1180713006

git-svn-id: svn://svn.chromium.org/blink/trunk@196965 bbb929c8-8fbe-4397-9dbb-9b2b20218538
wmaslowski
Add possibility to define data callback to BitmapFetcher
BUG=479715

Review URL: https://codereview.chromium.org/1097383005

Cr-Commit-Position: refs/heads/master@{#333962}
mstensho
When looking for adjacent content inside multicols, don't consider inner multicols.
When walking the tree backwards for a suitable object, we need to check that we
didn't end up inside an inner multicol container. Walking forwards is more
trivial (no changes there), but added an assertion that we haven't entered an
inner multicol just in case anyway.

Also added some assertions which will fail if
nextInPreOrderAfterChildrenSkippingOutOfFlow() or
previousInPreOrderSkippingOutOfFlow() misbehave.

Need to check with shouldSkipInsertedOrRemovedChild() before calling those two
functions now, since they are not meant to be called on children that are to be
skipped (especially important for column sets and spanner placeholders, which
should always be skipped).

BUG=498431, 498630
R=dsinclair@chromium.org,jchaffraix@chromium.org

Review URL: https://codereview.chromium.org/1180613005

git-svn-id: svn://svn.chromium.org/blink/trunk@196957 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: adjust GC policy under memory pressure.
When notified of a v8 major GC, check if we're under memory pressure and
overdue an Oilpan GC & urgently. If so, force a conservative GC right
away.

This addresses dom-modify.html OOM troubles on win32, in particular. It
runs into the allocation pattern where the Oilpan allocator is able to
handle a tight loop just allocating Text nodes by bump allocating each
such node. Each Text node has a large external string allocation however,
which leads to a steep ramp-upin overall allocation amounts to the point
where it might OOM as no Oilpan GCs will run. v8 will however notice the
increasing memory pressure and schedule major GCs of its own.

Oilpan is notified after each v8 major GC, so use that opportunity to
check for memory pressure & force an Oilpan GC right away.

R=haraken
BUG=420515

Review URL: https://codereview.chromium.org/1174123002

git-svn-id: svn://svn.chromium.org/blink/trunk@196953 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Tidy up CompositorWorkerManager unit tests.
Allow WorkerGlobalScopes to be created without a non-null WorkerClients;
the creation context for the new worker may not offer any 'clients',
hence supplying none (rather than an empty one) is simpler. It also
avoids creating a cross-thread heap object with Oilpan enabled.

To solidify the CompositorWorkerManagerTest's WorkerObjectProxy handling,
provide a test implementation of WorkerObjectProxy which do not forward
any of the notifications out of the worker context, but ignores. All
that is needed for these tests.

R=haraken,kinuko
BUG=436932

Review URL: https://codereview.chromium.org/1164753004

git-svn-id: svn://svn.chromium.org/blink/trunk@196949 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Sync the IDL interfaces in core/frame/ with their many specs
There are no changes to the generated code, other than order, naming and
default argument handling in History.go(), which is unobservable.

The location-stringify.html test depends on the order of the interface
members, so update that to match.

BUG=460722

Review URL: https://codereview.chromium.org/1180653003

git-svn-id: svn://svn.chromium.org/blink/trunk@196947 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Make createAttributeNS's qualifiedName argument non-nullable
Before this change, document.createAttributeNS("foo", null) would throw
"Failed to execute 'createAttributeNS' on 'Document': The qualified name
provided is empty." because the null string was treated as empty.

After this change, document.createAttributeNS("foo", null) will create
an Attr object with localName "null", which matches Firefox and IE.

Usage of this API is extremely low, making the risk equally so:
https://www.chromestatus.com/metrics/feature/timeline/popularity/112

BUG=460722

Review URL: https://codereview.chromium.org/1164123003

git-svn-id: svn://svn.chromium.org/blink/trunk@196940 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r196924.
Return type mismatch uncovered by that CL, not the cause.

TBR=oilpan-reviews
BUG=
NOTRY=true

Review URL: https://codereview.chromium.org/1176993006

git-svn-id: svn://svn.chromium.org/blink/trunk@196931 bbb929c8-8fbe-4397-9dbb-9b2b20218538
landell
Window.postMessage() to self can cause document leaks
When a script does Window.postMessage() a PostMessageTimer object is
stored in the LocalDOMWindow until the message has been delivered, or
until it is cleared in the destructor of LocalDOMWindow. When a
LocalDOMWindow is reset the remaining messages will not be
delivered. Any PostMessageTimer objects alive at that point will be
kept until the LocalDOMWindow is destroyed. Unfortunately, the
PostMessageTimer objects keeps a reference to the source window. If
both the source and destination window of the message is the same, the
PostMessageTimer can keep that LocalDOMWindow from getting destroyed.

Removing the PostMessageTimers when stop() is invoked fixes the problem.

BUG=

Review URL: https://codereview.chromium.org/1148133005

git-svn-id: svn://svn.chromium.org/blink/trunk@196930 bbb929c8-8fbe-4397-9dbb-9b2b20218538
haavardm
Use net's response header parser for parsing multipart headers.
BUG=493379

Review URL: https://codereview.chromium.org/1166953002

Cr-Commit-Position: refs/heads/master@{#333909}
philipj
Document the tracking bugs of some IDL FIXMEs
NOTRY=true

Review URL: https://codereview.chromium.org/1175783002

git-svn-id: svn://svn.chromium.org/blink/trunk@196902 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: revert back to a prefinalizer for LocalDOMWindow.
As LocalDOMWindow may end up being accessed by eagerly finalized objects
from their destructors, fall back to using a prefinalizer for it so as
to avoid illegal, cross-object access amongst eagerly finalized objects.

R=haraken
BUG=491488

Review URL: https://codereview.chromium.org/1166163003

git-svn-id: svn://svn.chromium.org/blink/trunk@196890 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Use visual overflow rect as cull rect for table-cell box-decorations
The TableCellPainter::paintRect helper defines a border rect, so can't
be used as the cull rect. Use the visual overflow rect instead.

TEST=fast/box-shadow/basic-shadows.html (S.P. strict cull rect)
BUG=498549

Review URL: https://codereview.chromium.org/1178553002

git-svn-id: svn://svn.chromium.org/blink/trunk@196887 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Add helper for computing outset for 'outline'
De-duplicates code from InlinePainter and SVGLayoutSupport.

Review URL: https://codereview.chromium.org/1165393005

git-svn-id: svn://svn.chromium.org/blink/trunk@196880 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mharanczyk
Report new screen position to renderer when ancestor window moves.
This change is related to https://codereview.chromium.org/1062273002/.
Without it renderer can draw controls (dropdowns, etc.) out of place,
because it will have outdated screen coordinates.

BUG=469857, 468669

Review URL: https://codereview.chromium.org/1143323009

Cr-Commit-Position: refs/heads/master@{#333749}
mstensho
Mark column sets as invalid and kill the interval tree when column sets are removed.
This makes the multicol code more fault-tolerant.

If there are bugs somewhere in the engine that cause us to miss layout of
objects marked for layout, the multicol code could return dead objects from the
column set interval tree. Better just delete the interval tree right away when
column sets are removed, instead of keeping dead objects around. The tree will
be rebuilt during layout.

To clarify: This CL doesn't really fix bug 498664, but at least we won't crash
because of accessing dead objects anymore (only assert in
LayoutObject::assertLaidOut() and other places, like before).

BUG=498664
R=dsinclair@chromium.org,jchaffraix@chromium.org

Review URL: https://codereview.chromium.org/1163423007

git-svn-id: svn://svn.chromium.org/blink/trunk@196876 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix unit tests bugs unmasked by r196836.
R=haraken
BUG=498604
NOTRY=true

Review URL: https://codereview.chromium.org/1168103003

git-svn-id: svn://svn.chromium.org/blink/trunk@196851 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: correctly define transition macro for eager finalization.
EAGERLY_FINALIZE_WILL_BE_REMOVED() needs to provide eager finalization
outside of ENABLE(OILPAN), but only if lazy sweeping is enabled.

R=haraken
BUG=420522

Review URL: https://codereview.chromium.org/1170273002

git-svn-id: svn://svn.chromium.org/blink/trunk@196848 bbb929c8-8fbe-4397-9dbb-9b2b20218538
tmoniuszko
Add //content:browser dependency on //ppapi:host
content::BrowserPpapiHostImpl references ppapi::host::PpapiHost but dependency in missing in gn.

BUG=

Review URL: https://codereview.chromium.org/1173583002

Cr-Commit-Position: refs/heads/master@{#333699}
mostynb
remove unneeded xdisplaycheck dep in base_unittests_run
This previous CL added an xdisplaycheck dep to base_unittests_run, but
base_unittests does not appear to depend on any X libraries as far as I
can tell:
https://codereview.chromium.org/388843004

Let's see if we can remove this dependency.

Review URL: https://codereview.chromium.org/1171073002

Cr-Commit-Position: refs/heads/master@{#333566}
philipj
Deprecate the allowfullscreen exemption for <video>
BUG=496637

Review URL: https://codereview.chromium.org/1165013002

git-svn-id: svn://svn.chromium.org/blink/trunk@196797 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Need deeper layout passes inside flexboxes when fragmenting (pagination, multicol).
When the fragmentainer (page / column) boundaries have changed, we need to go
deep when laying out. Objects otherwise not marked for layout may still need
layout.

We already do this for regular blocks and when inside tables, but it was
missing for flexbox. Adding this both improves rendering of multicol with
flexbox and gets rid of an assertion failure.

BUG=497981
R=cbiesinger@chromium.org,dsinclair@chromium.org

Review URL: https://codereview.chromium.org/1167323003

git-svn-id: svn://svn.chromium.org/blink/trunk@196795 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
increase crypto_unittest key sizes to satisfy NSS 3.19.1
NSS version 3.19.1 added minimum key size constraints to avoid the Logjam attack:

> The minimum size of keys that NSS will generate has been raised:
>    The minimum modulus size for RSA keys is now 512 bits
>    The minimum modulus size for DSA keys is now 1023 bits
>    The minimum modulus size for Diffie-Hellman keys is now 1023 bits

https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/NSS_3.19.1_release_notes

https://bugzilla.mozilla.org/show_bug.cgi?id=1138554

BUG=490240

Review URL: https://codereview.chromium.org/1148193006

Cr-Commit-Position: refs/heads/master@{#333554}
mostynb
remove crypto_unittests_run's uneeded xdisplaycheck dep
The crypto_unittests_run target has an incomplete and
unnecessary dependency on xdisplaycheck- let's remove
this dependency.

Review URL: https://codereview.chromium.org/1168393007

Cr-Commit-Position: refs/heads/master@{#333546}
mostynb
add missing zlib dep after CL 1148633007
This previous CL included our patched version of zlib.h, but forgot to add
the dependency in gyp/gn, making it possible to compile with the locally
patched version and link with a system version (which will fail due to
unresolved MOZ_Z_* symbols):
https://codereview.chromium.org/1148633007

BUG=466769

Review URL: https://codereview.chromium.org/1174503002

Cr-Commit-Position: refs/heads/master@{#333510}
mstensho
Have LayoutObject::decoratedName() decorate for multicol spanners.
R=dsinclair@chromium.org

Review URL: https://codereview.chromium.org/1171673002

git-svn-id: svn://svn.chromium.org/blink/trunk@196763 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r196753.
TBR=oilpan-reviews
BUG=490713
NOTRY=true

Review URL: https://codereview.chromium.org/1172613003

git-svn-id: svn://svn.chromium.org/blink/trunk@196758 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Use the container() chain when locating the containing flow thread.
Using containingBlock() caused us to miss relatively positioned inlines (that
serve as containing blocks for absolutely positioned descendants), and, more
dangerously (this bug), we'd miss absolutely positioned non-LayoutBlock
ancestors, causing us to find the ancestral flow thread, even though we were
not contained by it. This would in turn make us assume that the multicol
container had column content, which in turn would make us just blindly assume
that there was a column set object there.

A video element establishes a shadow DOM, and if the video was absolutely
positioned, the elements in there would erroneously find the flow thread,
because we skipped the absolutely positioned ancestral video, because it is
not a LayoutBlock.

While bug 496421 is listed as one of the bugs fixed here, it should be pointed
out that the fix is rather speculative in that regard, since since it's fixing
different but rather related crash than the one in the original report. The
crash was triggered by the same TC, though.

BUG=496421,497524,497435
R=dsinclair@chromium.org,esprehn@chromium.org

Review URL: https://codereview.chromium.org/1156303012

git-svn-id: svn://svn.chromium.org/blink/trunk@196745 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mathiash
Don't allow text selection to start on a HTMLMediaElement
BUG=449146

Review URL: https://codereview.chromium.org/838003005

git-svn-id: svn://svn.chromium.org/blink/trunk@196741 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Improve outline bounds estimation in InlinePainter
Use LayoutInline::linesVisualOverflowBoundingBox to get bounds that
includes the outline of the inline.

TEST=fast/css/focus-ring-outline-color.html (S.P. strict cull rect)
BUG=495368

Review URL: https://codereview.chromium.org/1163913002

git-svn-id: svn://svn.chromium.org/blink/trunk@196722 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: constrain run-time verification of eager finalization.
Do not verify eager finalization of a class outside of ENABLE(OILPAN),
as some of the classes marked as eagerly finalizing will not be on the
Oilpan heap with !ENABLE(OILPAN).

R=
BUG=491488

Review URL: https://codereview.chromium.org/1167263002

git-svn-id: svn://svn.chromium.org/blink/trunk@196718 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Don't let anonymous boxes impede percentage resolution on children.
We already had code in place to do this for certain anonymous box types, most
prominently multicol flow threads. But no type of anonymous box should really
mess up percentage resolution on children. It's just wrong, and in this case it
even caused assertion failures, because anonymous ruby run boxes could end up
being marked as percentage height parents. Since what child belongs inside what
ruby run may change depending on where the ruby texts are inserted, and we have
no code to adjust the percentage height map when percentage height children get
moved from one ruby run to another (and so far there's nothing that suggests
that we really need it either), let's just avoid the whole problem by skipping
ruby runs when resolving percentage heights - with the bonus effect that
percentage-height children of ruby elements actually get rendered properly.

Some cleanup was natural at the same time, since we now bail early for
any type of anonymous box in skipContainingBlockForPercentHeightCalculation().

BUG=490722
R=leviw@chromium.org

Review URL: https://codereview.chromium.org/1171703002

git-svn-id: svn://svn.chromium.org/blink/trunk@196713 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Fix cull rect computation for SVG{Container,Image,Shape}Painter outlines
TEST=svg/custom/transformed-outlines.svg (S.P. strict cull rect)
BUG=495368

Review URL: https://codereview.chromium.org/1160643004

git-svn-id: svn://svn.chromium.org/blink/trunk@196704 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Don't double-inflate visual overflow rect for LayoutInlines
linesVisualOverflowBoundingBox() already includes overflow from outlines
for the line (flow) boxes. Inflating with the outline again in
LayoutInline::clippedOverflowRect would mean doing it twice, and yield a
larger paint invalidation rect than required.

BUG=495368

Review URL: https://codereview.chromium.org/1164533005

git-svn-id: svn://svn.chromium.org/blink/trunk@196697 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Be sure to skip objects inside out-of-flow subtrees.
When walking the tree backwards, looking for something in-flow, we may end up
in an out-flow-subtree, so we cannot just examine the positioning scheme on the
object itself.

BUG=497710
R=dsinclair@chromium.org,jchaffraix@chromium.org

Review URL: https://codereview.chromium.org/1149923009

git-svn-id: svn://svn.chromium.org/blink/trunk@196685 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Apply vector-effect transform to path geometry - not stroke geometry
When drawing line caps for zero-length subpaths, the path-derived
geometry is the position of the linecap, and not the generated shape.
Hence the non-scaling-stroke transform should be applied to the position
where the line cap shape should be drawn, and no the shape itself.
This also means that we can simplify the code, by calling drawRect/Oval
directly instead of going through a Path object.

BUG=497498

Review URL: https://codereview.chromium.org/1143313007

git-svn-id: svn://svn.chromium.org/blink/trunk@196684 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
An object may become a column spanner or cease to be one even if column-span doesn't change.
If something with column-span:all becomes floated or out-of-flow
positioned, it ceases to be a spanner. And conversely, if something
with column-span:all is floated or out-of-flow positioned, and later
on becomes non-floated in-flow, it becomes a spanner.

Since we need to cope with such situations, there's no point in
forcing a layout object reattach when the value of column-span
changes, so removed that check.

BUG=497195
R=dsinclair@chromium.org,jchaffraix@chromium.org

Review URL: https://codereview.chromium.org/1162253006

git-svn-id: svn://svn.chromium.org/blink/trunk@196679 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Make Timer and CancellableTaskFactory embeddeable in lazily swept objects.
As CancellableTaskFactory is a part object, it might be part of an
object that's on the Oilpan heap. TimerBase's task factory being the
main example.

With ASan and Oilpan, heap objects will be poisoned prior to the Oilpan
GC sweep stage. Hence, should a cancellable task be attempted run while
the owning object is poisoned, poisoned memory will be accessed. Allow
such accesses by explicitly unpoisoning the object first. This is
considered acceptable as the memory region is within a larger object
that still is poisoned, hence ASan will continue to be effective.

For Timer, reposition its is-alive check over the object so as to make
it compatible with the timer tasks that now are run.

R=haraken
BUG=482388

Review URL: https://codereview.chromium.org/1171463006

git-svn-id: svn://svn.chromium.org/blink/trunk@196674 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Shorten flowThreadDescendantWasInserted() and flowThreadDescendantWillBeRemoved().
Offload work to createAndInsertSpannerPlaceholder() and destroySpannerPlaceholder().

No functional changes; just cleanup.

R=dsinclair@chromium.org,jchaffraix@chromium.org

Review URL: https://codereview.chromium.org/1152723010

git-svn-id: svn://svn.chromium.org/blink/trunk@196672 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Force display:none for audio elements with no controls attribute
In label-contains-other-interactive-content.html there is an audio
element which is clicked twice, first without the controls attribute and
then again after adding it.

When there is no controls attribute the element doesn't have a layout
object, so that amounted to clicking at (0,0). Due to the bug addressed
here, adding the controls attribute also didn't cause the layout object
to be created when it should, so the second click was also at (0,0).

These two clicks add up to a double click, triggering a selection in the
page. This is the cause of the test failure in a seemingly unrelated
change: https://codereview.chromium.org/838003005/

Change label-contains-other-interactive-content.html to not (fail to)
click on the audio element with no controls attribute, as it's far from
obvious that clickElement(element) will click (0,0) instead.

BUG=497120

Review URL: https://codereview.chromium.org/1166743004

git-svn-id: svn://svn.chromium.org/blink/trunk@196671 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Revert of Remove the allowfullscreen exemption for the video-specific fullscreen API (patchset #4 id:60001 of https://codereview.chromium.org/1058783006/)
Feedback from Vimeo on blink-dev asking for more time:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/3NukIuOaU4c/MPyuWoDaz8AJ

New plan for removing the allowfullscreen exemption:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/3NukIuOaU4c/LWeJeKYvf1MJ

Original issue's description:
> Remove the allowfullscreen exemption for the video-specific fullscreen API
> 
> Intent to Remove:
> https://groups.google.com/a/chromium.org/d/msg/blink-dev/3NukIuOaU4c/Boab2WxzhBYJ
> 
> Prompted by a question from Ali Alabbas (Microsoft) on blink-dev:
> https://groups.google.com/a/chromium.org/d/msg/blink-dev/f-V2GWatXkA/nvdHJ3xihMkJ
> 
> TEST=LayoutTests/media/video-controls-fullscreen-iframe.html
> 
> This test ensures that the allowfullscreen attribute is still not
> required for <video controls>, even though it is for the API call.
> 
> BUG=346236
> 
> Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=194106

R=falken@chromium.org
BUG=496637

Review URL: https://codereview.chromium.org/1159593006

git-svn-id: svn://svn.chromium.org/blink/trunk@196661 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
GC Plugin: test destructor access of part object.
R=haraken
BUG=496496

Review URL: https://codereview.chromium.org/1160963003

Cr-Commit-Position: refs/heads/master@{#333244}
philipj
Remove [TreatNullAs=NullString] from Document.domain
Even before this change, setting document.domain=null would fail, but
because it was treated as an empty string, where now it is "null".

BUG=460722

Review URL: https://codereview.chromium.org/1162933003

git-svn-id: svn://svn.chromium.org/blink/trunk@196635 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Document the tracking bugs of some IDL FIXMEs and TODOs
Also remove the invalid spec bug link for ProcessingInstruction.

Review URL: https://codereview.chromium.org/1164133003

git-svn-id: svn://svn.chromium.org/blink/trunk@196630 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Check Member<T> validity for stack allocated objects.
For Member<T> in a stack allocated object, make the Blink GC plugin
verify that T is a GC allocated object.

R=haraken
BUG=495398

Review URL: https://codereview.chromium.org/1167123002

Cr-Commit-Position: refs/heads/master@{#333217}
sigbjornf
Revert of compositor-worker: Share a thread and an isolate for compositor workers. (patchset #13 id:300001 of https://codereview.chromium.org/1158443008/)
Reason for revert:
Fails to compile on "WebKit Win x64 Builder",

 http://build.chromium.org/p/chromium.webkit/builders/WebKit%20Win%20x64%20Builder/builds/49353

Original issue's description:
> compositor-worker: Share a thread and an isolate for compositor workers.
> 
> Notable changes:
> 
> . WorkerThread: Move thread initialization/shutdown into virtual methods, so
>   that CompositorWorkerThread can override the behaviour to allow multiple
>   compositor workers to safely share the same thread.
> . CompositorWorkerManager: Responsible for managing the WebThreadSupportingGC
>   and v8::Isolate for the compositor workers. It essentially keeps a ref-count
>   for the thread and isolate and decides when to shutdown/initialize a thread
>   or isolate.
> 
> BUG=436932
> 
> Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=196625

TBR=kinuko@chromium.org,haraken@chromium.org,sadrul@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=436932

Review URL: https://codereview.chromium.org/1166923003

git-svn-id: svn://svn.chromium.org/blink/trunk@196626 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove the redundant HTMLDocument.compatMode
Since Document.compatMode is defined identically and the implementation
is in Document::compatMode(), the only consequence of this is that the
compatMode attribute goes away from the HTMLDocument prototype.

BUG=460722

Review URL: https://codereview.chromium.org/1164533007

git-svn-id: svn://svn.chromium.org/blink/trunk@196624 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Sync Document.readyState with the HTML spec
https://html.spec.whatwg.org/#the-document-object

The only change to the generated code is in the case
Document::readyState() returns a null string, but that case is already
guarded with an ASSERT_NOT_REACHED() in the implementation.

BUG=460722

Review URL: https://codereview.chromium.org/1163923006

git-svn-id: svn://svn.chromium.org/blink/trunk@196622 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Add use counters to determine the fate of DOMStringList
BUG=460726

Review URL: https://codereview.chromium.org/1162203003

git-svn-id: svn://svn.chromium.org/blink/trunk@196604 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Make the DOMStringMap deleter return type void
This doesn't change the generated code.

BUG=462920

Review URL: https://codereview.chromium.org/1161433006

git-svn-id: svn://svn.chromium.org/blink/trunk@196602 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Eliminate SVGTextChunkBuilder::m_textBoxTransformations
Nothing touches SVGTextFragment::lengthAdjustTransform between the calls
to processTextChunks() and finalizeTransformMatrices(), so the scaling
transform can be applied directly during the former, and the latter can
be removed along with the HashMap it uses.
Also change some fragment loops to for-range style.

BUG=486669

Review URL: https://codereview.chromium.org/1148323008

git-svn-id: svn://svn.chromium.org/blink/trunk@196601 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Don't paint a border after the last frame on any axis in a frameset
A border would be painted after the last frame on any axis in a frameset.
This border would usually not be visible since it was clipped out by
the view (or a frame, if in a nested frameset).
Also hoist the check for non-zero border thickness, since if it's zero
the loops won't do anything useful.

BUG=496322

Review URL: https://codereview.chromium.org/1155093004

git-svn-id: svn://svn.chromium.org/blink/trunk@196600 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Add use counters to determine the fate of DOMError
This covers all ways to get or use a DOMError except the
StorageErrorCallback used in modules/quota. If those callbacks actually
look DOMError, that would be seen on the name/message counters.

BUG=460725

Review URL: https://codereview.chromium.org/1151023004

git-svn-id: svn://svn.chromium.org/blink/trunk@196597 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Fix painting bounds calculations for ellipsis
Change the paint bounds computation, to base it on logical bounds and
then apply a logical -> physical transform. Include the selection rect
if needed.

TEST=fast/css/text-overflow-ellipsis-vertical-select.html (S.P. strict cull)
BUG=496318

Review URL: https://codereview.chromium.org/1153333005

git-svn-id: svn://svn.chromium.org/blink/trunk@196592 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Include 'outline' in LayoutSVGBlock::visualOverflowRect
LayoutSVGBlock doesn't maintain overflow via LayoutBox::m_overflow, but
rather overrides LayoutBox::visualOverflowRect.
Instead of doing that, add visual effect overflow during layout of
LayoutSVGText and stop overriding said method.
This will include outsets for border-image (which doesn't apply
to any of <text> or <foreignObject>) too in the unlikely event it's
specified.

TEST=svg/text/text-outline-2.html (S.P. strict cull rect)
BUG=495368

Review URL: https://codereview.chromium.org/1158323005

git-svn-id: svn://svn.chromium.org/blink/trunk@196591 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r196583.
TBR=oilpan-reviews
BUG=466631
NOTRY=true

Review URL: https://codereview.chromium.org/1152733010

git-svn-id: svn://svn.chromium.org/blink/trunk@196585 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Sync the AnimationEvent and TransitionEvent interfaces with the specs
http://dev.w3.org/csswg/css-animations/#interface-animationevent
http://dev.w3.org/csswg/css-transitions/#transition-events

With the default values in the AnimationEventInit dictionary, it's no
longer necessary to check them in the C++ constructor.

BUG=460722

Review URL: https://codereview.chromium.org/1158233004

git-svn-id: svn://svn.chromium.org/blink/trunk@196582 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Sync the File API interfaces with the spec
https://w3c.github.io/FileAPI/

The only changes to the generated code are due to the encoding->label
rename and [Measure], and neither is observable.

BUG=460722

Review URL: https://codereview.chromium.org/1153543012

git-svn-id: svn://svn.chromium.org/blink/trunk@196577 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: avoid creating a cyclic reference to InjectedScriptHost.
Follow up r196524 and keep a raw back pointer to InjectedScriptHost
instead of a Persistent, as that will create a cycle by way of the
v8 heap.

InjectedScriptHost will outlive the WeakCallbackData that keeps the
back reference, so safe. InjectedScriptHost is also slated for removal
from the Oilpan heap.

R=haraken
BUG=46631

Review URL: https://codereview.chromium.org/1167873003

git-svn-id: svn://svn.chromium.org/blink/trunk@196572 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Remove dummy WebSettings::setRegionBasedColumnsEnabled().
It had to linger until the Chromium side had stopped calling it.

BUG=350853
R=jochen@chromium.org

Review URL: https://codereview.chromium.org/1167753004

git-svn-id: svn://svn.chromium.org/blink/trunk@196571 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Fold and remove SVGTextChunk
Being the keeper of only some flags and a float, this class no longer
provide much in terms of value. Folding it up into it's users,
SVGText{,Path}ChunkBuilder gives less, and more straight-forward code.
This can also be considered a first step towards untying 'textLength'
from the chunk structure.

BUG=486669

Review URL: https://codereview.chromium.org/1160613004

git-svn-id: svn://svn.chromium.org/blink/trunk@196567 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Add TODOs to remove AnimationPlayerEvent and AnimationPlayerEventInit
This was overlooked in https://codereview.chromium.org/1092203002

BUG=460722
NOTRY=true

Review URL: https://codereview.chromium.org/1162173002

git-svn-id: svn://svn.chromium.org/blink/trunk@196566 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
[S.P.] Include selection rect in list marker cull rect when needed
TEST=fast/backgrounds/selection-background-color-of-image-list-style.html
TEST=fast/lists/markers-in-selection.html
BUG=496318

Review URL: https://codereview.chromium.org/1159033010

git-svn-id: svn://svn.chromium.org/blink/trunk@196565 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Don't create layout objects for pre-wrap text nodes in SVG
SVGTextMetricsBuilder only knows how to handle 'white-space: pre' with
regards to whitespace preservation, meaning it will collapse the spaces
in the node, and hence not generate any SVGTextMetrics for it.
Filter this case out to avoid even creating the text layout object in
the first place.

Fix salvaged from https://codereview.chromium.org/755613002/, with prior
work by Peter Molnar (pmolnar.u-szeged@partner.samsung.com) and
Zoltan Herczeg (zherczeg.u-szeged@partner.samsung.com). Test simplified
and extended to cover all white-space values.

BUG=416833,495969

Review URL: https://codereview.chromium.org/1166653005

git-svn-id: svn://svn.chromium.org/blink/trunk@196558 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Add use counters to determine the fate of the disabled attribute
Review URL: https://codereview.chromium.org/1159203004

git-svn-id: svn://svn.chromium.org/blink/trunk@196541 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Sync various event interfaces with their specs
There are no changes to the generated code other than the
canBubble->bubbles argument renaming.

BUG=460722

Review URL: https://codereview.chromium.org/1149963004

git-svn-id: svn://svn.chromium.org/blink/trunk@196525 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r196513.
TBR=oilpan-reviews
BUG=466631
NOTRY=true

Review URL: https://codereview.chromium.org/1171463003

git-svn-id: svn://svn.chromium.org/blink/trunk@196524 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Sync the SecurityPolicyViolationEvent interface with the spec
http://w3c.github.io/webappsec/specs/content-security-policy/#securitypolicyviolationevent-interface

BUG=460722

Review URL: https://codereview.chromium.org/1157923004

git-svn-id: svn://svn.chromium.org/blink/trunk@196517 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Remove some old fun related to the old multicol implementation.
BUG=408123
R=dsinclair@chromium.org,jchaffraix@chromium.org,leviw@chromium.org

Review URL: https://codereview.chromium.org/1168613004

git-svn-id: svn://svn.chromium.org/blink/trunk@196512 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Remove block continuation support.
This was only needed by the old multicol implementation, which is now gone.

BUG=408123
R=dsinclair@chromium.org,jchaffraix@chromium.org,leviw@chromium.org

Review URL: https://codereview.chromium.org/1164723004

git-svn-id: svn://svn.chromium.org/blink/trunk@196511 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Document the tracking bugs of some straight-forward IDL bugs
Review URL: https://codereview.chromium.org/1154913004

git-svn-id: svn://svn.chromium.org/blink/trunk@196509 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Ignore style changes on text node flowthread descendants.
Text nodes inherit every property from their parent, including non-inheritable
ones! If the parent DOM node is the multicol container, and its 'position' goes
from 'static' to 'absolute', so will any text node child, as far as
ComputedStyle is concerned. If the multicol container only contains a text node
child, we'd incorrectly think that the multicol container started to only
contain an out-of-flow child, so that the column set could be removed.

Also don't notify the flowthread about descendant style changes if the
descendant in question is the flow thread (Calling flowThreadContainingBlock()
on the flow thread returns the flow thread). There's currently no way any harm
could be done if the flow tread were indeed treated as a descendant of itself
here, but it's just wrong and bad.

BUG=491409
R=dsinclair@chromium.org,jchaffraix@chromium.org

Review URL: https://codereview.chromium.org/1149333003

git-svn-id: svn://svn.chromium.org/blink/trunk@196508 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Notify the counter code about layout object removals BEFORE removing.
This makes it possible to mark relevant objects for layout. Cannot mark
unrooted subtrees for layout.

Additionally, only notify when told to do so by the caller. Renamed the method
to layoutObjectSubtreeWillBeDetached(), inspired by its
layoutObjectSubtreeAttached() counterpart.

For the sake of consistency, also only call layoutObjectSubtreeAttached() when
actually told to notify.

BUG=492490
R=dsinclair@chromium.org,eae@chromium.org

Review URL: https://codereview.chromium.org/1143323011

git-svn-id: svn://svn.chromium.org/blink/trunk@196505 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: safely finalize DOMTimers.
DOMTimer objects need to be eagerly finalized so as to prevent timer events
from firing at a DOMTimer that's about to be lazily swept. If allowed, that
might result in accessing an already finalized m_action member.

R=haraken
BUG=491488

Review URL: https://codereview.chromium.org/1160123004

git-svn-id: svn://svn.chromium.org/blink/trunk@196504 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Rename LifecycleObserver<T>::dispose() as clearContext()
Have the name of this helper match what it does; dispose() is too generic.
Observer instances only need to clear out their context and rarely, so
tighten up the visibility accordingly.

R=haraken
BUG=none

Review URL: https://codereview.chromium.org/1160253006

git-svn-id: svn://svn.chromium.org/blink/trunk@196502 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: provide eager 'operator new' overload for ServiceWorker.
ServiceWorker needs to overload 'operator new' in order to have its
instances be allocated on the eagerly swept heap.

R=haraken
BUG=491488

Review URL: https://codereview.chromium.org/1156303010

git-svn-id: svn://svn.chromium.org/blink/trunk@196496 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Sync event interfaces with the UI Events spec
https://w3c.github.io/uievents/

There are no changes to the generated code other than the order of
things, naming and the added use counter.

BUG=460722

Review URL: https://codereview.chromium.org/1159113007

git-svn-id: svn://svn.chromium.org/blink/trunk@196493 bbb929c8-8fbe-4397-9dbb-9b2b20218538
davve
Handle border-image with fill and zero-width borders
Before this patch we require at least one border dimension (top, left,
bottom, right) to be non-zero to trigger the border painting.

This misses the case when we have a zero width border all around but a
border image and border-image-slice: <numbers> fill. The center part
of the border-image should be painted, regardless of the
border-widths.

See https://bugs.webkit.org/show_bug.cgi?id=142650 and related commit.
It's not an exact port but this patch is heavily inspired by
​sabouhallawa's fix.

BUG=493088

Review URL: https://codereview.chromium.org/1159773005

git-svn-id: svn://svn.chromium.org/blink/trunk@196489 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r196479.
TBR=oilpan-reviews
BUG=495922
NOTRY=true

Review URL: https://codereview.chromium.org/1165553010

git-svn-id: svn://svn.chromium.org/blink/trunk@196487 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Fix paint invalidation for SVG with outline-offset
The paint invalidation code did not factor in the outline-offset,
leading to too small repaint rectangles.
Use ComputedStyle::outlineSize() when inflating the paint invalidation
rect instead. If the outline-style is 'auto', then use the
GC::focusRingOutsetExtent function - this leads to smaller paint inv.
rects where this applies (like in tests svg/repaint/focus-element.html
and svg/custom/focus-ring.svg).

BUG=495666

Review URL: https://codereview.chromium.org/1157843008

git-svn-id: svn://svn.chromium.org/blink/trunk@196484 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: prefer eager finalization over prefinalizers.
Eagerly finalized objects have the ability to access other
heap objects in their destructors, provided they're not
other eagerly finalized objects. With that partial
ordering on finalization in place, we can recast our current
uses of "prefinalizer" actions to use eager finalization
instead.

Performing that switch simplifies, avoiding the overhead of
prefinalizers of having to separately provide a finalization
method (separate from the destructor.)

R=haraken
BUG=491488

Review URL: https://codereview.chromium.org/1148383012

git-svn-id: svn://svn.chromium.org/blink/trunk@196483 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Eagerly sweep MediaKeySession objects.
MediaKeySession owns an instance of the WebContentDecryptionModuleSession
bridge object, which allows for bidirectional access with the
embedder-side object.

With Oilpan GC's lazy sweeping in effect, we need to tear down that
bridge as soon as the MediaKeySession object has been deemed to be garbage,
and slated for sweeping. Otherwise the embedder may attempt to access the
MediaKeySession's client interface methods while MediaKeySession is waiting
to be lazily swept, and potentially touching other heap objects that
MediaKeySession refers to which might have been independently swept
and finalized.

That is, the GC finalization order isn't fixed and deterministic. With
lazy sweeping, that lack of order is observable not just to the objects
that are on the heap, but also external, non-heap objects. Like the
embedder side object in this case.

Arrange for that eager finalization to happen by annotating MediaKeySession
as eagerly swept.

R=haraken
BUG=491488

Review URL: https://codereview.chromium.org/1159583002

git-svn-id: svn://svn.chromium.org/blink/trunk@196480 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Remove the old multicol implementation.
Remove the RegionBasedColumns runtime flag. It has been enabled for everyone
for some time now, meaning that the old multicol implementation hasn't been
available since.

This CL mainly removes the ColumnInfo class and the LayoutObject::hasColumns()
method, and everything that depended on those.

BUG=408123
R=dsinclair@chromium.org,jchaffraix@chromium.org,leviw@chromium.org

Review URL: https://codereview.chromium.org/1158183006

git-svn-id: svn://svn.chromium.org/blink/trunk@196477 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: eagerly sweep some mediasource and mediastream objects.
The following objects provide a 'client' notification interface to
bridge objects that they themselves own or refer to:

 - SourceBuffer (WebSourceBuffer, WebSourceBufferClient)
 - MediaStream (MediaStreamDescriptor, MediaStreamDescriptorClient)
 - MediaStreamTrack (MediaStreamSource, MediaStreamSource::Observer)
 - RTCDTMFSender (WebRTCDTMFSenderHandler, WebRTCDTMFSenderHandlerClient)
 - RTCDataChannel (WebRTCDataChannelHandler, WebRTCDataChannelHandlerClient)
 - RTCPeerConnection (WebRTCPeerConnectionHandler,
                      WebRTCPeerConnectionHandlerClient)

The name of the bridge object and client given in parens. The bridge
objects allow the embedder to notify the 'client'.

To make these safe wrt Oilpan lazy sweeping (see associated bug for details
on why this is required), add annotations to the class declarations for
the objects affected.

While some of these objects are ActiveDOMObjects and will in most cases
be explicitly stopped as part of detachment, where their overridden stop()
methods will in some cases clear out the client (or bridge) object, this
is a delicate dependency. Insisting on eager sweeping & finalization
makes their embedder detachment safe, regardless.

R=haraken
BUG=491488

Review URL: https://codereview.chromium.org/1149293003

git-svn-id: svn://svn.chromium.org/blink/trunk@196469 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Never cast Attr to ContainerNode based on nodeType ATTRIBUTE_NODE
In https://codereview.chromium.org/1158433004 Attr began inheriting from
Node instead of ContainerNode, but there remained cases where
toContainerNode() was called for Attr.

All instances of toContainerNode() and other casts to ContainerNode were
inspected and only these two were found to be problematic, although some
instances in core/editing are non-obvious.

Because textContent is an alias of value in Attr.idl, web content
setting attr.textContent directly will not take the Node code path in
question. However, it is possible with some effort:

var attr = document.createAttribute("name");
Object.getOwnPropertyDescriptor(Node.prototype, "textContent").set.call(attr, "value");

This will now do nothing, and the equivalent code with the getter would
already return null before this change. This is strange, but most
closely resembles the spec, which doesn't handle Attr in the textContent
setter because per spec it isn't a Node at all:
https://dom.spec.whatwg.org/#dom-node-textcontent

No calls to Node::textContent() or Node::setTextContent() where the Node
could be an Attr were found, other than V8Node.cp in generated bindings.

BUG=305105, 494043
TEST=Source/core/dom/AttrTest.cpp (also tests nodeValue)

Review URL: https://codereview.chromium.org/1148003007

git-svn-id: svn://svn.chromium.org/blink/trunk@196452 bbb929c8-8fbe-4397-9dbb-9b2b20218538
tmoniuszko
Add missing declaration to create_card_unmask_prompt_view.h
BUG=

Review URL: https://codereview.chromium.org/1155583009

Cr-Commit-Position: refs/heads/master@{#332732}
sigbjornf
Oilpan: eagerly finalize WebGLRenderingContext objects.
To simplify the destruction of WebGLRenderingContextBase-derived objects
along with their WebGLContextObjects, insist that the rendering context
is finalized first. It may then detach itself from the context objects,
before their finalizers are later run.

Such a finalization ordering avoids the need for the ref-counted
WebGLSharedWebGraphics3D abstraction which supported arbitrary
finalization orders.

R=haraken
BUG=482838

Review URL: https://codereview.chromium.org/1151163002

git-svn-id: svn://svn.chromium.org/blink/trunk@196437 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r196422.
TBR=oilpan-reviews
BUG=466631
NOTRY=true

Review URL: https://codereview.chromium.org/1156463003

git-svn-id: svn://svn.chromium.org/blink/trunk@196426 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Don't iterate past the end of the metrics list
This check was lost in https://codereview.chromium.org/1160623002.
In some cases (unpaired surrogates), the metrics list will not cover the
full range of characters in the text node. Make sure to terminate the
iteration when that happens.

BUG=495969,486669

Review URL: https://codereview.chromium.org/1150383003

git-svn-id: svn://svn.chromium.org/blink/trunk@196408 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: add assert to verify eager finalization.
A class annotated with EAGERLY_FINALIZE() is dependent on having
an 'operator new' overload that takes eagerness correctly into
account. The use of a EAGERLY_FINALIZE() declaration does not
guarantee this, so add an assert to catch classes not correctly
handled.

R=haraken
BUG=491488

Review URL: https://codereview.chromium.org/1166793002

git-svn-id: svn://svn.chromium.org/blink/trunk@196404 bbb929c8-8fbe-4397-9dbb-9b2b20218538
kolczyk
Fix for DCHECK failure at startup of gin_shell.
It was introduced by rewriting code to use SingeThreadTaskRunner
instead of MessageLoopProxy.

Reproduces with gin_unittests too.

BUG=

Review URL: https://codereview.chromium.org/1153473009

Cr-Commit-Position: refs/heads/master@{#332597}
fs
Drop fillRule state from GraphicsContext
There was only a few trivial (local) uses of this state field left. Since
the same state is carried in the Path (SkPath) object itself, make use of
that instead.

BUG=424655

Review URL: https://codereview.chromium.org/1147343003

git-svn-id: svn://svn.chromium.org/blink/trunk@196340 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: consistently allow allocation during finalization.
Remove poisonHeap() assert from r196232, which insisted that the
to-be-swept heap must not have had any allocations made against it.

We do currently allow allocations in destructors, including for eagerly
finalized objects, so the assert removal aligns with that.

R=haraken
BUG=491488

Review URL: https://codereview.chromium.org/1154413005

git-svn-id: svn://svn.chromium.org/blink/trunk@196324 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Made matchedResult method const.
R=mstensho@opera.com

Review URL: https://codereview.chromium.org/1155673004

git-svn-id: svn://svn.chromium.org/blink/trunk@196320 bbb929c8-8fbe-4397-9dbb-9b2b20218538
davve
Move NinePieceImage painting to a separate class
While doing as little changes as possible, move NinePieceImage
painting code out of BoxPainter into a separate class. This is in
preparation for the possibility of splitting the function into smaller
parts. The function currently has roughly 36 local variables and is
quite hard to understand and change.

BUG=492485

Review URL: https://codereview.chromium.org/1164573003

git-svn-id: svn://svn.chromium.org/blink/trunk@196301 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
When cancelling an animation, add missing timeline-detach check.
If the animation timeline becomes unreferenced and is destructed,
it detaches from its associated animations. Check that timeline
detach status should cancel() be called on an animation.

R=loyso,dstockwell
BUG=491847

Review URL: https://codereview.chromium.org/1154423006

git-svn-id: svn://svn.chromium.org/blink/trunk@196299 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Don't auto-wrap <svg:text>
Even if an explicit 'white-space' property overrides the presentation
attribute style (from 'xml:space'), auto-wrap should still be disabled
(until "wrappable text" a'la SVG2 has been implemented.)

BUG=492596

Review URL: https://codereview.chromium.org/1159623007

git-svn-id: svn://svn.chromium.org/blink/trunk@196298 bbb929c8-8fbe-4397-9dbb-9b2b20218538
tmoniuszko
Add support for module-definition files to gn
BUG=

Review URL: https://codereview.chromium.org/1160773002

Cr-Commit-Position: refs/heads/master@{#332355}
philipj
Sync the ClipboardEvent interface with the spec
https://w3c.github.io/clipboard-apis

BUG=460722
NOTRY=true

Review URL: https://codereview.chromium.org/1147383006

git-svn-id: svn://svn.chromium.org/blink/trunk@196290 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Drop the MouseEventButtonsAttribute runtime flag
It reached stable in M43 and is unlikely to be reverted now.

BUG=276941

Review URL: https://codereview.chromium.org/1161373002

git-svn-id: svn://svn.chromium.org/blink/trunk@196271 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Handle SVGLength resolving in an inactive document gracefully
If the element associated with the SVGLength is in an inactive document,
there'll be no layout, so computedStyleForLengthResolving() will be able
to exit the loop without finding a ComputedStyle to return.

BUG=493977

Review URL: https://codereview.chromium.org/1166683003

git-svn-id: svn://svn.chromium.org/blink/trunk@196269 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Out-of-flow objects inside multicol may not establish column sets.
Do a better job at ignoring out-of-flow objects that are not contained by
anything inside the multicol container. Previously we only made sure to skip
such objects at one specific location in flowThreadDescendantWasInserted(), but
this is really needed all over the place, so added utility functions for it.

Added an assertion mapDescendantToColumnSet() to catch such situations earlier
in the future.

BUG=492897
R=dsinclair@chromium.org,jchaffraix@chromium.org

Review URL: https://codereview.chromium.org/1163603002

git-svn-id: svn://svn.chromium.org/blink/trunk@196234 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: introduce eager finalization.
Extend the capabilities of eager finalization and the eagerly swept heap.
Objects allocated on that heap are now allowed to have destructors that
can (but are not encouraged) to access other heap objects, provided the
objects are not other eagerly finalized objects. (Few objects are thought
to require eager finalization, so this is assumed not to limit their
use and usefulness.)

The clang Oilpan/GC plugin needs to be extended to allow such destructors,
and catch out any/some attempts to access other eagerly finalized objects
from destructors (https://codereview.chromium.org/1158623002/)

To additionally enforce finalizer correctness, ASan heap poisoning during
sweeps is also strengthened: all payloads on the eagerly swept heap are
poisoned so as to catch out illegal inter-heap references while the sweep
is underway. Once the eager sweep has completed, access to the live objects
is allowed, while all unmarked objects in other heaps are poisoned.

With the above in place, existing "prefinalizer" usage can be recast to
be eagerly finalized instead. This will be handled in a followup CL.

R=haraken
BUG=491488

Review URL: https://codereview.chromium.org/1157933002

git-svn-id: svn://svn.chromium.org/blink/trunk@196232 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Drop SVGTextChunk::m_boxes
Since text chunks are now processed as they are formed, the m_boxes in
SVGTextChunk is of little use, and just means an additional copy is
needed. Drop it and use the range passed into handleTextChunk directly
instead.
This requires moving SVGTextChunk::calculateLength to
SVGTextChunkBuilder.cpp, so do that and put it in a helper class.
Also changing from passing <vector,startIndex,endIndex> to just passing
two (vector) iterators describing the start and end in the vector.
In SVGTextChunkBuilder::handleTextChunk, drop a redundant test
(!boxCount), and move the code that recalculates the chunk extent after
applying spacing adjustments for 'textLength' up into the relevant
branch.

BUG=486669

Review URL: https://codereview.chromium.org/1162653002

git-svn-id: svn://svn.chromium.org/blink/trunk@196229 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Sync the XHR-related interfaces with the spec
No observable changes are intended.

The change to open() results in big changes to the generated code, but
it should not be possible to observe the difference; the 2-argument form
still treats async as true, and passing undefined for either username or
password will still be converted to nullptr and then a null string.

For both open() and send(), handing the default argument values in
bindings allows the C++ code to be slightly simpler.

Dropping [TreatReturnedNullStringAs=Undefined] for
getAllResponseHeaders() makes no difference as
XMLHttpRequest::getAllResponseHeaders() will never return a null string.
Even when there are no headers, the untouched StringBuilder object will
return an empty string from toString(), not a null string.

The generated code now handles missing ProgressEventInit members, so the
ProgressEvent constructor doesn't need to.

BUG=460722

Review URL: https://codereview.chromium.org/1167563002

git-svn-id: svn://svn.chromium.org/blink/trunk@196221 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Sync the Selection interface with the spec
http://w3c.github.io/selection-api/#idl-def-Selection

There are no changes to the generated code other than order and the
allowPartial -> allowPartialContainment renaming.

BUG=460722

Review URL: https://codereview.chromium.org/1159303003

git-svn-id: svn://svn.chromium.org/blink/trunk@196219 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Sync the URL interfaces with the spec
https://url.spec.whatwg.org/#api

[NoInterfaceObject, Exposed=(Window,Worker)] is not a mistake in the
spec: https://www.w3.org/Bugs/Public/show_bug.cgi?id=28538

There are no changes to the generated code.

BUG=460722

Review URL: https://codereview.chromium.org/1162783003

git-svn-id: svn://svn.chromium.org/blink/trunk@196217 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Sync the CSS Font Loading interfaces with the spec
http://dev.w3.org/csswg/css-font-loading/

There are no changes to the generated code, other than order.

BUG=460722

Review URL: https://codereview.chromium.org/1100873004

git-svn-id: svn://svn.chromium.org/blink/trunk@196215 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Sync some event interfaces with the HTML spec
There are no changes to the generated code other than order and the use
counter.

BUG=460722

Review URL: https://codereview.chromium.org/1167623002

git-svn-id: svn://svn.chromium.org/blink/trunk@196213 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Document the proposal and spec bug for ApplicationCacheErrorEvent
BUG=460722
NOTRY=true

Review URL: https://codereview.chromium.org/1156173006

git-svn-id: svn://svn.chromium.org/blink/trunk@196195 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: simplify away StoppingOtherThreads pseudo GCState.
ThreadState now keeps track of whether or not GCs are forbidden; use that
to prevent nested GCs from kicking in rather than the temporary
StoppingOtherThreads GCState previously used.

R=haraken
BUG=482838

Review URL: https://codereview.chromium.org/1145423009

git-svn-id: svn://svn.chromium.org/blink/trunk@196193 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Mark WebGLRenderingContext as having lost context upon init failure.
r196077 added a good test verifying the handling of attempted WebGL context
creation when that fails to create an underlying drawing buffer. This
exposed an Oilpan-specific lifetime issue for the WebGLRenderingContext
object that fails to properly initialize. With Oilpan, that garbage
collected & partially initialized object will not be synchronously deleted,
but be finalized instead when the next GC strikes.

The WebGLRenderingContext object is an ActiveDOMObject attached to its
execution context, so should it be stopped before that GC strikes, it
will be forcibly removed from its (graphics system) context as part
of stopping. The partially constructed object is not prepared for that,
with failing consequences.

To avoid, if the creation of a drawing buffer fails, we explicitly mark
the object as having lost its context.

R=bajones,kbr,haraken
BUG=474665

Review URL: https://codereview.chromium.org/1153233005

git-svn-id: svn://svn.chromium.org/blink/trunk@196188 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove the virtual ThemePainter::paintMediaCastButton()
It appears to be an indirection without purpose.

ThemePainterMac does not inherit from ThemePainterDefault, so on Mac the
default implementation of painting nothing was used. If cast was made to
work for Mac the button would fail to paint, so rebaseline the tests.

BUG=493880

Review URL: https://codereview.chromium.org/1158323004

git-svn-id: svn://svn.chromium.org/blink/trunk@196174 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
The span of a table-column or table-column-group should never be 0.
We used to set span to 0 if the element type wasn't COL/COLGROUP and computed
style had been set and display type was table-column-group. This seems to stem
from a merge from some LABYRINTH_KDE_3_MERGE branch back in March 2002. Not
sure if it made sense back then, but it certainly doesn't now.

BUG=493352
R=jchaffraix@chromium.org,leviw@chromium.org

Review URL: https://codereview.chromium.org/1146183005

git-svn-id: svn://svn.chromium.org/blink/trunk@196166 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Don't eat margins when column height isn't yet known.
We ended up thinking that a margin would cross a column boundary, and this even
before the column height was known. When margins cross column boundaries, we
should indeed eat the part of it that doesn't fit in the first column. But when
we don't even know the column height, eating the margin is just nonsense, and
besides it confuses the column balancer. When we only have margins and borders,
and no actual content, no space shortage is reported to the balancer, so we
depend on getting it right in the first balancing pass.

Introduce isPageLogicalHeightKnown(). Since blocks that contain spanners
typically live in multiple column sets, columnSetAtBlockOffset() also needs to
be able to search backwards for the right set for the given offset within the
block. The set currently being worked on may be the one after the spanner,
while we may be interested in the logical top of the block, which is in the
column set before the spanner.

General note: Using LayoutState::pageLogicalHeight() in multicol is bad, since
the columns don't necessarily all have the same height. There's still more
cleaning up to do here.

BUG=493349
R=dsinclair@chromium.org,jchaffraix@chromium.org

Review URL: https://codereview.chromium.org/1163583006

git-svn-id: svn://svn.chromium.org/blink/trunk@196161 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Track if textLength spacing is in effect while walking the line box tree
Instead of calling parentDefinesTextLength() in
layoutTextOnLineOrPath(), keep a flag updated as we traverse the line
box tree. This eliminates the walk up the ancestor-chain, but more
importantly it avoids checking this for each text box.
To make this easier, layoutCharactersInTextBoxes() is moved from
SVGRootInlineBox to SVGTextLayoutEngine. This allows simplifying
SVGTextLayoutEngine::beginTextPathLayout a bit to make it more
independent.
Gives roughly a 1% speedup on separate-x.svg from the bug, when run
through PerfTestRunner.measurePageLoadTime.

BUG=486669

Review URL: https://codereview.chromium.org/1158033006

git-svn-id: svn://svn.chromium.org/blink/trunk@196158 bbb929c8-8fbe-4397-9dbb-9b2b20218538
bratell
Make IPC::Channel buffers stack based and secure against growth
Auxiliary IPC::Channel buffers have been permanently allocated
even though their use is very temporary. This moves those to
the stack instead to reflect their temporary nature and also
adds an assert to catch accidental out-of-control growth of
the buffer as happened recently.

BUG=484154
R=tsepez@chromium.org

Review URL: https://codereview.chromium.org/1120343002

Cr-Commit-Position: refs/heads/master@{#331956}
bratell
Shrinking CSSParserToken for lower CSS parsing memory usage.
For 64-bit this shrinks CSSParserToken from 32 to 24 bytes. For 32-bit
this shrinks CSSParserToken from 24 to 20 bytes.

On typical sites (gmail, arstechnica) there are 300 KB stylesheets
which makes us preallocate room for 100,000 CSSParserTokens.
Allocation savings will then be 800 KB on 64-bit and 400 KB on
32-bit.

It does not cause any noticable performance change in any direction
on a workstation. Memory starved devices *might* benefit.

R=timloh@chromium.org
BUG=490185

Review URL: https://codereview.chromium.org/1161963002

git-svn-id: svn://svn.chromium.org/blink/trunk@196134 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove Attr child nodes (making Attr a Node, not a ContainerNode)
Intent to Remove:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/4Hg0l42QHH0/H59LyoiJlI4J

Rationale for some of the non-obvious test changes:

LayoutTests/dom/html/level1/core/hc_attrsetvalue2.html:
LayoutTests/dom/xhtml/level1/core/hc_attrsetvalue2.xhtml:

  Removing the child node aspects makes these tests equivalent to
  hc_attrsetvalue1, so they were removed.

LayoutTests/dom/html/level1/core/hc_elementnormalize2.html:
LayoutTests/dom/xhtml/level1/core/hc_elementnormalize2.xhtml:

  These test that Element.normalize() also normalizes the Element's
  Attr's children, so with no children there's nothing left to test.

LayoutTests/fast/dom/Element/normalize-crash.html:

  http://trac.webkit.org/changeset/59109

  The crash was in Element::normalizeAttributes(), which is removed.

LayoutTests/fast/dom/Element/normalize-crash2.html:

  https://code.google.com/p/chromium/issues/detail?id=394026

  The crash was in Element::normalizeAttributes(), which is removed.

LayoutTests/fast/dom/insertedIntoDocument-child.html:
LayoutTests/fast/dom/insertedIntoDocument-sibling.html:

  http://trac.webkit.org/changeset/81611

  Even before this change, the DOMNodeRemoved event listener was not
  actually run in these tests.

LayoutTests/fast/dom/normalize-attributes-mutation-event-crash.html:

  http://trac.webkit.org/changeset/137341

  The crash was in Element::normalizeAttributes(), which is removed.

LayoutTests/fast/storage/storage-detached-iframe.html:

  Already damaged by the replaceWholeText() removal in r185541, nothing
  useful of the subtest remains when removing the firstChild bits.

BUG=305105

Review URL: https://codereview.chromium.org/1158433004

git-svn-id: svn://svn.chromium.org/blink/trunk@196128 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r196078.
TBR=oilpan-reviews
BUG=434450
NOTRY=true

Review URL: https://codereview.chromium.org/1162033003

git-svn-id: svn://svn.chromium.org/blink/trunk@196084 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Use begin/end istead of first/last for rule ranges.
MatchResult used -1 for empty ranges of matched properties. Use begin/end
instead where begin == end means we have an empty range.

As requested in https://codereview.chromium.org/1155393002/

R=timloh@chromium.org

Review URL: https://codereview.chromium.org/1162583002

git-svn-id: svn://svn.chromium.org/blink/trunk@196065 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Revert of Oilpan: Implement a GC to take a heap snapshot (patchset #7 id:120001 of https://codereview.chromium.org/1159773004/)
Reason for revert:
ThreadedWeakness unit test is failing on various bots,

 http://build.chromium.org/p/chromium.webkit/builders/WebKit%20Linux%2032/builds/36384
 http://build.chromium.org/p/chromium.webkit/builders/WebKit%20Android%20%28Nexus4%29/builds/32383

Original issue's description:
> Oilpan: Implement a GC to take a heap snapshot
> 
> This CL implements Heap::collectGarbage(gcType = TakeSnapshot), which is intended
> to be used to take a heap snapshot when onMemoryDump is requested etc.
> 
> The GC is expected to be as side-effect-free as possible. Thus the GC behaves as follows:
> 
> 1) Run a marking task.
> 2) Take a heap snapshot (The actual implementation will come in a follow-up CL).
> 3) Clear all marks on marked objects. No sweeping task runs.
> 
> More contexts:
> https://codereview.chromium.org/1149673002/
> https://groups.google.com/a/chromium.org/d/topic/oilpan-reviews/6LhByzmVt6Q/discussion
> 
> BUG=490087
> TEST=HeapTest.ThreadedWeakness
> 
> Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=195982
> 
> Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=196059

TBR=oilpan-reviews@chromium.org,keishi@chromium.org,primiano@chromium.org,ssid@chromium.org,haraken@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=490087

Review URL: https://codereview.chromium.org/1143243006

git-svn-id: svn://svn.chromium.org/blink/trunk@196063 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Remove --enable-region-based-columns command line flag.
Region based columns (aka. the new multicol implementation) now gets enabled
via an entry in RunTimeEnabledFeatures in Blink.

BUG=350853
R=jochen@chromium.org,mkwst@chromium.org

Review URL: https://codereview.chromium.org/1150663003

Cr-Commit-Position: refs/heads/master@{#331767}
fs
Avoid resetting the metrics-list/character offset for each text box
SVGTextLayoutEngine::layoutTextOnLineOrPath needs to keep track of the
SVGTextMetrics corresponding to each glyph it layouts. To do this, the
members m_visual{Character,MetricsList}Offset are used. However, this
state is reset for each invocation, which means that finding the
starting metrics entry can yield O(N^2) behavior. For text nodes with
many (logically consecutive) text boxes, this can become noticeable.
Introduce a helper SVGTextMetricsIterator - replacing the m_visual*
members - and let it persist across calls to layoutTextOnLineOrPath.
This speeds up the case of many logically consecutive text boxes.

Using the PerfTestRunner.measurePageLoadTime harness with
separate-x.svg from the bug give the following results locally:

       Before:     After:
avg    101.5 ms -> 93.1 ms
median 101.1 ms -> 93.1 ms
stdev    2.8 ms ->  2.3 ms

BUG=486669

Review URL: https://codereview.chromium.org/1160623002

git-svn-id: svn://svn.chromium.org/blink/trunk@196054 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Rearrange MediaControls members to match DOM structure
This matches the order of MediaControls::initializeControls(), making it
more obvious where to add members.

BUG=448795

Review URL: https://codereview.chromium.org/1153383002

git-svn-id: svn://svn.chromium.org/blink/trunk@196053 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Perform SVG text chunk processing on-the-fly
Instead of building a vector of chunks, and then process that vector,
process the chunks as they are formed. The chunks themselves are
independent units, so this is reasonably straight-forward. The main
change is that instead of creating and adding an SVGTextChunk to a
vector, the data used to create the chunk is passed to a handler
method. Because of how <textPath> is handled, this handler currently
needs to be a virtual method. Because of that, a SVGTextChunkBuilder
is subclassed to SVGTextPathChunkBuilder for the text-on-path
processing.

Using the PerfTestRunner.measurePageLoadTime harness with
separate-x.svg from the bug give the following results locally:

       Before:     After:
avg    100.5 ms -> 89.5 ms
median 100.5 ms -> 88.7 ms
stdev    2.1 ms ->  3.2 ms

BUG=486669

Review URL: https://codereview.chromium.org/1155293005

git-svn-id: svn://svn.chromium.org/blink/trunk@196040 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Fix nested parking of threads while setting up a garbage collection.
When a thread requests a GC, it first enters a safe point to indicate
that it is prepared to garbage collect. After that it tries to interrupt/
notify the other threads to also enter safe points and waits around for
them to enter that state. While waiting, it will block other threads from
attempting to similarly park threads.

But, should another thread trigger a GC while the parking thread is
waiting, it will first enter a safe point, but then proceed to try to
park the other threads. Which it will be blocked from making progress on
due to the above lock being taken by the initial thread requesting thread
parking. By initially entering a safe point though, the first thread may
indirectly reach the desired condition of all threads being parked. Which
means it can safely proceed with the GC _along_ with releasing the lock
for other threads to attempt to park thread. The second parking thread
will then do so, but be blocked waiting for all the threads to park. The
thread that has proceeded to initiate a GC will not do so, so after the
max parking time has passed, the second thread will signal that it failed
to park the other threads, and try to abort its attempted GC.

As part of that abort/cancellation step, it will attempt to reset its
GCState back to what it was when the GC attempt was initiated. That
GCState may have changed behind the thread's back -- the initial thread
has proceeded with a GC, and will as part of that change the GCState of
each attached thread. Hence, GC cancellation needs to check that the
GCState it is trying to reset from is the expected one. If it isn't,
that is a sign that another thread has initiated a GC and it should
just quietly return. Which means waiting for it to be allowed to leave
its safe point..and at that point perform the thread-specific parts of
the GC.

R=haraken
BUG=487952

Review URL: https://codereview.chromium.org/1158243004

git-svn-id: svn://svn.chromium.org/blink/trunk@196037 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Refactor matched rule ranges.
For matched CSS rules we need to know where the UA rules end and the
author rules begin. This CL simplifies this by having a single index for
the last UA rule. -1 means there are no UA rules, otherwise it's the
index of the last UA rule in the array. Convenience methods are added to
return the first/last rule indices for UA and author rules.

The rule ranges used to be updated for every added rule. Now, just update
the last UA rule index when sorting and transferring UA rules. That means
we don't have to pass the ranges as parameters anymore.

R=timloh@chromium.org,esprehn@chromium.org

Review URL: https://codereview.chromium.org/1155393002

git-svn-id: svn://svn.chromium.org/blink/trunk@196036 bbb929c8-8fbe-4397-9dbb-9b2b20218538
wdzierzanowski
Extract re-usable InitializeMediaFoundation()
Allow media::InitializeMediaFoundation() to be used by any Media
Foundation client code.  This benefits existing Chromium code as well as any
Chromium-based browser that adds its own code calling out to Media Foundation.

There are two side effects for DXVAVideoDecodeAccelerator:

  - MFStartup() and MFShutdown() are now called once during the lifetime of the
    GPU process rather than per each accelerator instance.

  - MFStartup() is now called with the MFSTARTUP_LITE flag, which according to
    MSDN doesn't initialize the sockets library.

TEST=media_unittests

Committed: https://crrev.com/c0ab75a86447bc23d45ff7086b2375e2cd83c205
Cr-Commit-Position: refs/heads/master@{#331446}

Review URL: https://codereview.chromium.org/1149203002

Cr-Commit-Position: refs/heads/master@{#331623}
fs
Remove SVGTextLayoutEngine::m_pathLayoutBoxes
Line boxes are added to this vector, and finalizeTransformMatrices()
iterates through it. The latter will however never do anything for
these line boxes, because layoutTextBoxes() is the only thing that adds
boxes to the map that will cause finalizeTransformMatrices() to have an
effect.

BUG=486669

Review URL: https://codereview.chromium.org/1157253002

git-svn-id: svn://svn.chromium.org/blink/trunk@195997 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Add early-out in SVGTextChunkBuilder::finalizeTransformMatrices()
This function will only do something when textLength is being applied.
If that's not the case, there'll just a lot of iteration and hash-
lookups for no good.
Not huge win performance-wise (in the noise), but a fairly simple and
obvious thing to do.

BUG=486669

Review URL: https://codereview.chromium.org/1161803002

git-svn-id: svn://svn.chromium.org/blink/trunk@195983 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Rearrange the XHR interfaces to match the spec order
https://xhr.spec.whatwg.org/#interface-xmlhttprequest

To make reviewing easier, this commit only changes the order of lines
and adds comments. Actual spec sync will be done separately.

The order of the generated code changes, but there are no actual
changes.

BUG=460722

Review URL: https://codereview.chromium.org/1155313002

git-svn-id: svn://svn.chromium.org/blink/trunk@195976 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Sync SVG interfaces with the specs
Add use counters for some things that are gone from the specs.

BUG=460722

Review URL: https://codereview.chromium.org/1153763008

git-svn-id: svn://svn.chromium.org/blink/trunk@195970 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Move SVGTextChunkBuilder out of SVGTextLayoutEngine
This member of SVGTextLayoutEngine has a very narrow scope in which it
is used. The data produced into it is in practice consumed within the
very same method. Hence move it out of class scope and into function
scope.
Also take the opportunity to move finalizeTransformMatrices() to
SVGTextChunkBuilder as well, since it essentially applies data from
the latter.

Also drop the debug code within DUMP_TEXT_FRAGMENTS.

BUG=486669

Review URL: https://codereview.chromium.org/1156053002

git-svn-id: svn://svn.chromium.org/blink/trunk@195969 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mharanczyk
Synthesize proper keyIdentifier for devtools protocol key events.
When bug 472077 moved devtools protocol key handling to browser one part
of code that sythesized keyIdentifier was lost (it was prevoiusly
handled in InspectorInputClient::dispatchKeyEvent and removed in
https://codereview.chromium.org/1063653002/patch/40001/50004). Restore
that functionality else sending some key events (like enter) is not
handled correctly.

BUG=

Review URL: https://codereview.chromium.org/1148803002

Cr-Commit-Position: refs/heads/master@{#331546}
wdzierzanowski
Extract re-usable InitializeMediaFoundation()
Allow media::InitializeMediaFoundation() to be used by any Media
Foundation client code.  This benefits existing Chromium code as well as any
Chromium-based browser that adds its own code calling out to Media Foundation.

There are two side effects for DXVAVideoDecodeAccelerator:

  - MFStartup() and MFShutdown() are now called once during the lifetime of the
    GPU process rather than per each accelerator instance.

  - MFStartup() is now called with the MFSTARTUP_LITE flag, which according to
    MSDN doesn't initialize the sockets library.

TEST=media_unittests

Review URL: https://codereview.chromium.org/1149203002

Cr-Commit-Position: refs/heads/master@{#331446}
mstensho
Remove old multicol tests that were only run with the old implementation.
These were DRT tests that were never converted to better kinds of tests,
because they were either superfluous, invalid or depended on bugs in the old
multicol implementation. There are (almost) no DRT test baselines for the new
implementation, and I'd like to keep it that way.

BUG=408123
R=dsinclair@chromium.org,jchaffraix@chromium.org

Review URL: https://codereview.chromium.org/1143153006

git-svn-id: svn://svn.chromium.org/blink/trunk@195925 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Make test proxy Platform objects provide currentThread().
For the benefit of the Oilpan GC and it needing to post tasks, have
these two test Platform objects provide a delegating currentThread()
implementation.

R=haraken,skyostil
BUG=

Review URL: https://codereview.chromium.org/1052103004

git-svn-id: svn://svn.chromium.org/blink/trunk@195923 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Enable RegionBasedColumns runtime flag for stable.
This ships the new multicol implementation.

Removed the virtual/stable multicol testsuites, since the old multicol
implementation is no longer testable (and will be removed from the code
shortly).

BUG=334335,408123
R=dsinclair@chromium.org,jchaffraix@chromium.org

Review URL: https://codereview.chromium.org/1152423003

git-svn-id: svn://svn.chromium.org/blink/trunk@195913 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Drop unused argument from one of the SVGTextMetrics constructors
Review URL: https://codereview.chromium.org/1155683005

git-svn-id: svn://svn.chromium.org/blink/trunk@195911 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ingemara
qcms: Silence __force_align_arg_pointer__ warning on Armv8
BUG=490016

Review URL: https://codereview.chromium.org/1142203002

Cr-Commit-Position: refs/heads/master@{#331349}
sigbjornf
Extend destructor checks to account for eagerly finalized class types.
Classes annotated as being eagerly finalized are allowed to touch other
heap objects in their destructors, provided these are not also eagerly
finalized. Extend the CheckFinalizerVisitor implementation to take that
into account

R=haraken
BUG=491488

Review URL: https://codereview.chromium.org/1158623002

Cr-Commit-Position: refs/heads/master@{#331331}
sigbjornf
Oilpan: rename EAGERLY_SWEEP() as EAGERLY_FINALIZED().
Renamed to make its purpose clearer; classes are to be annotated as
eagerly finalized when they either need to promptly release ownership of
non-heap objects, or when their destructors have an unavoidable need to
access other heap objects. Both kinds are considered very rare, but more
accurate control of finalization timing is sometimes needed & vital.

Also introduce a transition time version of the macro,
EAGERLY_FINALIZED_WILL_BE_REMOVED() for the places where eager finalization
is needed non-Oilpan once lazy sweeping is enabled. That class annotation
will be removed once the class is always on the heap.

R=haraken
BUG=420515

Review URL: https://codereview.chromium.org/1150863003

git-svn-id: svn://svn.chromium.org/blink/trunk@195887 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Add a runtime flag for the column-fill property.
Decouple column-fill support from the RegionBasedColumns flag.

The new multicol implementation is about to ship. All other multicol
properties are -webkit- prefixed, except for column-fill. Allowing
such a mix would very likely confuse authors, so better hide
column-fill away until we can unprefix all other multicol properties.

If column-fill isn't supported, the layout engine will behave as if it
were set to 'auto', which means that a multicol container with a
specified height won't have its columns balanced.

Discussed here:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/hhecvWUBJvg/nq4X3s8Jmk4J

R=jchaffraix@chromium.org

Review URL: https://codereview.chromium.org/1145093002

git-svn-id: svn://svn.chromium.org/blink/trunk@195873 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Sync the BarProp interface with the spec
https://html.spec.whatwg.org/#barprop

BUG=460722
NOTRY=true

Review URL: https://codereview.chromium.org/1157893002

git-svn-id: svn://svn.chromium.org/blink/trunk@195871 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Sync the Screen interface with CSSOM View
http://dev.w3.org/csswg/cssom-view/#the-screen-interface

It seems unlikely that availLeft and availTop could be removed, but
measure them to know for sure.

BUG=460722

Review URL: https://codereview.chromium.org/1145233006

git-svn-id: svn://svn.chromium.org/blink/trunk@195868 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Only notify the flowthread about style changes on actual descendants.
Calling flowThreadContainingBlock() on the flow thread itself returns the flow
thread, but the flow thread obviouly isn't a true descendant of itself, so
let's avoid calling flowThreadDescendantStyleWillChange() and
flowThreadDescendantStyleDidChange() then. There's currently no way any harm
could be done if the flow tread were indeed treated as a descendant of itself
here, but it's just wrong and bad.

R=dsinclair@chromium.org,jchaffraix@chromium.org

Review URL: https://codereview.chromium.org/1155023002

git-svn-id: svn://svn.chromium.org/blink/trunk@195863 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Add a counter for CSSKeyframesRule's anonymous indexed getter
This getter makes no sense, as there's no length attribute.

BUG=none

Review URL: https://codereview.chromium.org/1152993002

git-svn-id: svn://svn.chromium.org/blink/trunk@195853 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Make CharacterData.substringData() and ProcessingInstruction.target not nullable
This changes the generated code from v8SetReturnValueStringOrNull(...)
to v8SetReturnValueString(...), but none of these can return a null
string internally, so the difference should never be observable.

BUG=460722

Review URL: https://codereview.chromium.org/1151203002

git-svn-id: svn://svn.chromium.org/blink/trunk@195802 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Adjust FrameFetchContext clearing logic when clearing HTMLImportsController
Have the clearing of a Document's HTMLImportsController only clear its
FrameFetchContext if there's no DocumentLoader attached. If a loader is
attached, it is possibly shared amongst multiple Documents and it is
responsible for clearing the fetch context.

This mirrors the condition used during detach().

R=dcheng
BUG=491051

Review URL: https://codereview.chromium.org/1156663003

git-svn-id: svn://svn.chromium.org/blink/trunk@195801 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove CSSKeyframesRule.insertRule()
Intent to Remove:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/wW7w8Hro78s/JDULF2oM9iIJ

BUG=470400

Review URL: https://codereview.chromium.org/1153493002

git-svn-id: svn://svn.chromium.org/blink/trunk@195797 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Make Attr.value/nodeValue/textContent not nullable
https://dom.spec.whatwg.org/#interface-attr

The [TreatNullAs=EmptyString] addition has been proposed:
https://github.com/whatwg/dom/pull/36

An ad-hoc test for the behavior of setting these to null:
http://software.hixie.ch/utilities/js/live-dom-viewer/saved/3528

Firefox Nightly:
attr.value=null => getAttribute()=="null"
attr.nodeValue=null => getAttribute()==""
attr.textContent=null => getAttribute()==""

IE11 and Edge:
attr.value=null => getAttribute()=="null"
attr.nodeValue=null => getAttribute()==""
attr.textContent=null => getAttribute()==""

Safari 8:
attr.value=null => getAttribute()==null
attr.nodeValue=null => getAttribute()==null
attr.textContent=null => getAttribute()==""

Blink before this change:
attr.value=null => getAttribute()==null
attr.nodeValue=null => getAttribute()==null
attr.textContent=null => getAttribute()==null

Blink after this change:
attr.value=null => getAttribute()=="null"
attr.nodeValue=null => getAttribute()==""
attr.textContent=null => getAttribute()==""

Note that in the getAttribute()==null cases in WebKit and Blink,
hasAttribute() will still return true, which is very strange.

This change brings Blink into alignment with Firefox and IE, so the
risk of breakage ought to be very low.

The update-attribute-node-null-value-no-crash.html test serves no
purpose when Attr.value cannot be null, so it is removed.

BUG=460722

Review URL: https://codereview.chromium.org/1146393003

git-svn-id: svn://svn.chromium.org/blink/trunk@195785 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Revert of Oilpan: Unpoison orphaned large objects before zapping (patchset #3 id:40001 of https://codereview.chromium.org/1154733002/)
Reason for revert:
Broke ASAN compilation,

 http://build.chromium.org/p/chromium.webkit/builders/WebKit%20Linux%20ASAN/builds/18648

Original issue's description:
> Oilpan: Unpoison orphaned large objects before zapping
> 
> To zap orphaned large objects, we need to unpoison the area.
> Otherwise ASan detects the error, although it seems there has been
> no orphaned large objects so far (by accident).
> 
> We're already doing that for orphaned normal pages.
> 
> This CL also adds a couple of ASSERTs that would be helpful.
> 
> BUG=420515
> 
> Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=195782

TBR=oilpan-reviews@chromium.org,keishi@chromium.org,haraken@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=420515

Review URL: https://codereview.chromium.org/1146393004

git-svn-id: svn://svn.chromium.org/blink/trunk@195783 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Fix ordering of recorders in SVGPaintContext
The compositing recorder should go out of scope ("end") before the
(float) clip recorder to match the order in which they should be applied.

BUG=490363

Review URL: https://codereview.chromium.org/1149043003

git-svn-id: svn://svn.chromium.org/blink/trunk@195777 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Remove dead code from CanvasStyle
CanvasStyle::applyFill/StrokeColor are no longer used.

BUG=453113

Review URL: https://codereview.chromium.org/1152513003

git-svn-id: svn://svn.chromium.org/blink/trunk@195774 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: insist on eager sweeping for some objects.
To prepare for enabling lazy sweeping, non-Oilpan - add EAGERLY_SWEEP()
annotations for LifecycleObserver and DOMWindowProperty.

The former is a template, so extend range of EAGERLY_SWEEP() macros
to handle that also, along with ways to handle ambiguity.

R=haraken
BUG=420515

Review URL: https://codereview.chromium.org/1146353002

git-svn-id: svn://svn.chromium.org/blink/trunk@195772 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: complete current sweep before preparing for new GC.
If collectGarbage() is called while sweeping is in progress, complete
the sweeping before recording what GCState to revert back to should
we fail to get the other threads to stop at a safe point.

Otherwise we risk reverting back to a sweeping state that has been
completed & advanced past.

R=haraken
BUG=487952

Review URL: https://codereview.chromium.org/1153533002

git-svn-id: svn://svn.chromium.org/blink/trunk@195758 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Removed unused operator== for MatchRanges.
Not in use after r195675.

R=timloh@chromium.org

Review URL: https://codereview.chromium.org/1146013003

git-svn-id: svn://svn.chromium.org/blink/trunk@195757 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Make Attr.localName/name and Element.localName/tagName not nullable
This changes the generated code from v8SetReturnValueStringOrNull(...)
to v8SetReturnValueString(...), but there is no way to create an element
or attribute with an empty/null name, so the difference should never be
observable.

BUG=460722

Review URL: https://codereview.chromium.org/1145233003

git-svn-id: svn://svn.chromium.org/blink/trunk@195726 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Cleanup: Get rid of LayoutBlock::offsetFromLogicalTopOfFirstPage().
Fold its contents into LayoutBox::offsetFromLogicalTopOfFirstPage() and make
that one non-virtual. Some non-blocks (e.g. table rows and sections) do
establish layout states, so we cannot just unconditionally jump to the
containing block.

Currently offsetFromLogicalTopOfFirstPage() is never called on non-blocks (in
other words, the LayoutBox implementation of the method just sat there doing
nothing but contribute to the binary size), which explains why we had no bugs
because of this. I expect that non-blocks will call this method in the near
future, though.

R=jchaffraix@chromium.org,leviw@chromium.org

Review URL: https://codereview.chromium.org/1154493002

git-svn-id: svn://svn.chromium.org/blink/trunk@195709 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Changing out-of-flow-ness on a multicol child may affect the need for column sets.
If a sole out-of-flow child becomes in-flow, we have to insert a column set,
since we suddenly have column content.

Conversely, if a sole in-flow child becomes out-of-flow, we have to remove the
column set, since there's no column content anymore.

BUG=486993
R=dsinclair@chromium.org,jchaffraix@chromium.org

Review URL: https://codereview.chromium.org/1148173003

git-svn-id: svn://svn.chromium.org/blink/trunk@195693 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Cleanup includes after DOMImplementation::hasFeature neutering
Unused after https://codereview.chromium.org/1108293002

R=philipj@opera.com
BUG=429536

Review URL: https://codereview.chromium.org/1148633004

git-svn-id: svn://svn.chromium.org/blink/trunk@195690 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Make ensureDefaultStyleSheetForElement parameter const reference.
R=mstensho@opera.com

Review URL: https://codereview.chromium.org/1150823004

git-svn-id: svn://svn.chromium.org/blink/trunk@195689 bbb929c8-8fbe-4397-9dbb-9b2b20218538
bratell
std::bitset solution for GL Query cache.
This uses even less memory (a few hundred bytes) by sacrificing some
worst case performance (in the order of a microsecond per query) and
maintainability.

Estimated memory savings will be 9-12 KB. (3 KB per QuerySyncManager).

BUG=485536
R=reveman@chromium.org,jbauman@chromium.org

Review URL: https://codereview.chromium.org/1129253006

Cr-Commit-Position: refs/heads/master@{#330933}
sigbjornf
Oilpan: ASan-exempt Heap::willObjectBeLazilySwept().
It will return true if its argument is an object that will be swept, hence
an exemption wrt ASan checks for poisoining is very much in order.

Also include some Timer-related leftovers not caught by r195656.

R=haraken
BUG=482838

Review URL: https://codereview.chromium.org/1150563005

git-svn-id: svn://svn.chromium.org/blink/trunk@195679 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Revamp asynchronous (load) event dispatching for SVG elements
Refactor asynchronous event dispatching for SVG elements to use
EventSender instead of the home-grown mechanism. This eliminates the
need for one timer (96 bytes on 64-bit targets) per <use> and <style>
element.

In SVGStyleElement, align with HTMLStyleElement, by adding an
implementation of Node::notifyLoadedSheetAndAllCriticalSubresources(),
replacing SVGStyleElement::sendSVGErrorEventAsynchronously().

The call in SVGUseElement::insertedInto is dropped, because it would
never cause an event to be dispatched (an event will only be dispatched
when the <use> is "structurally external"). There's a slight change in
behavior for SVGUseElement, since the event is now always dispatched,
regardless of existence of handlers.

Drop sendSVGLoadEventIfPossibleAsynchronously(), svgLoadEventTimer()
and svgLoadEventTimerFired() from SVGElement because they are now
unused.

Review URL: https://codereview.chromium.org/1150623003

git-svn-id: svn://svn.chromium.org/blink/trunk@195678 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Move AddressSanitizer.h to wtf/
ASan (no) annotation helper macros are useful outside of Oilpan, including
WTF, hence move it to there.

R=haraken,tkent

Review URL: https://codereview.chromium.org/1145073002

git-svn-id: svn://svn.chromium.org/blink/trunk@195676 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
No need to store ranges in MatchedPropertiesCache.
There was no need to store the UA/author rule ranges from the MatchResult
as those will be equal if the arrays of matched properties are equal.

R=esprehn@chromium.org,timloh@chromium.org,dstockwell@chromium.org

Review URL: https://codereview.chromium.org/1148023002

git-svn-id: svn://svn.chromium.org/blink/trunk@195675 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: more lazy sweep ASan exemptions.
Annotate the Timer methods called upon by sharedTimerFiredInternal()
as exempted by ASan checks also.

TBR=haraken
BUG=420515

Review URL: https://codereview.chromium.org/1148943003

git-svn-id: svn://svn.chromium.org/blink/trunk@195656 bbb929c8-8fbe-4397-9dbb-9b2b20218538
bratell
Shrinking EventPath to improve memory usage and performance
In bug 325460 EventPath was changed to have fewer allocations at the cost
of higher memory usage to improve performance. This is a followup that
adds one more allocation for lower memory usage and even higher (3-5%) 
Event dispatching performance.

The EventPath memory usage becomes an issue because even though there is,
most of the time, only one active Event. Due to slowness or garbage collection
delays there can actually be dozens or hundreds of Event objects in memory. In
those cases spending 1-2 KB per EventPath ends up consuming 100-200 KB memory.

The patch changes the EventPath builder to gather the path on the stack and
then building a perfectly sized EventPath. It seems to save about 1200 bytes per
event in my adhoc testing (typical event path depth is about 10-12) and
performance tests report:

Events/EventsDispatching  3.2% faster
Events/EventsDispatchingInDeeplyNestedShadowTrees  3.2% faster
Events/EventsDispatchingInShadowTrees  5.5% faster
(Confirmed through multiple runs)

Real world memory usage saving depends on the number of live Event objects. That
will vary.

R=hayato@chromium.org,sigbjornf@opera.com,rbyers@chromium.org,esprehn@chromium.org

BUG=487656,325460

Review URL: https://codereview.chromium.org/1136953011

git-svn-id: svn://svn.chromium.org/blink/trunk@195651 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Move m_pageLogicalOffset from LayoutBlock to LayoutBoxRareData.
This is about as rare as all the other pagination things, and, furthermore, in
the future, we're going to need this piece of information in other LayoutBox
derived classes than LayoutBlock, such as e.g. LayoutTableRow.

R=jchaffraix@chromium.org,leviw@chromium.org

Review URL: https://codereview.chromium.org/1148833002

git-svn-id: svn://svn.chromium.org/blink/trunk@195642 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Make Touch.radiusX/Y float and make Touch.webkit* aliases in the IDL
BUG=460099

Review URL: https://codereview.chromium.org/1149563003

git-svn-id: svn://svn.chromium.org/blink/trunk@195637 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
[S.P.] Expand cull-rect for text boxes with selection bounds
Highlights for selection/composition and document markers are painted
together with actual text, so the cull rect needs to have the bounds
from these included.

TEST=editing/selection/extend-by-character-002.html
BUG=486825

Review URL: https://codereview.chromium.org/1141403003

git-svn-id: svn://svn.chromium.org/blink/trunk@195632 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
[SP] Fix cull rect for fieldset painting
|paintRect| is shifted down/left and shrunk, so the dimension would be
too small.

TEST=fast/forms/fieldset-align.html
BUG=487281

Review URL: https://codereview.chromium.org/1151573002

git-svn-id: svn://svn.chromium.org/blink/trunk@195630 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Allow timer heap updates on firing shared timer.
Follow up the ASan exemptions from r195613 and allow timer heap updates
while servicing the shared timer callback. The Timer implementation of
fired() already checks that no access of near-dead objects is done.

R=haraken
BUG=420515

Review URL: https://codereview.chromium.org/1146903003

git-svn-id: svn://svn.chromium.org/blink/trunk@195620 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: support eager finalization/sweeping.
To accommodate objects that must be finalized promptly, add a designated
heap for these. If lazy sweeping is enabled, that heap will be swept
eagerly and not delayed until (say) an out-of-line allocation trigger
the sweep. If lazy sweeping is disabled, the eagerly swept heap will be
processed just like any other.

Prompt finalization is needed for objects that can be accessed through
"off-heap" references, like direct access from the embedder or through
a timer, or some other non-Oilpan object in Blink(*). References that have
been considered safe by carefully working through finalization order and
other lifetime dependencies. If such 'safe' lifetime dependencies rely on
the finalization of other heap objects, they cannot be assumed to hold
iff lazy sweeping is enabled. That's because all dead objects are then
not finalized synchronously, as observed by the rest of Blink, leading
to the possibility that 'off-heap' access of a heap object might
access an object that has yet to be finalized (but is known to be
dead), or that some of the heap objects it refers to may have
finalized by now. Regardless of exact state, an object that shouldn't
be accessed in this near-dead state by another party. Hence the
introduction of eagerly swept heaps -- all objects residing there
that have been deemed unreachable by the marking phase are eagerly
swept & finalized before the GC returns. Class hierarchies
are marked as eagerly swept by using the WILL_BE_EAGERLY_SWEPT(Class)
macro.

A very relevant follow-on question here is if we can reliably identify
objects that must be eagerly swept.

* - while the goal is to remove or otherwise bring all such off-heap
references under control within Blink, they currently exist. But
not profusely many, but more than we would like to while we're in
in a transition state where Oilpan isn't always enabled.

R=haraken
BUG=420515

Review URL: https://codereview.chromium.org/1138663002

git-svn-id: svn://svn.chromium.org/blink/trunk@195618 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove the Document.charset setter (making it readonly)
Intent to Remove:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/vr1RANmrniU/oWAoayNP74QJ

HTMLFormControlElementTest and HTMLSelectElementTest don't actually need
to call Document::setCharset(), as they use APIs where the text has
already been decoded from UTF-8.

BUG=438392

Review URL: https://codereview.chromium.org/1145773003

git-svn-id: svn://svn.chromium.org/blink/trunk@195617 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: disable VectorDestructorsWithVtable unit test with ASan.
Testing behavior of inline capacity vectors when contiguous container
support is enabled, is not worthwhile as they're disabled.
(cf Vector.h:INLINE_CAPACITY.)

R=haraken
BUG=420515

Review URL: https://codereview.chromium.org/1148793002

git-svn-id: svn://svn.chromium.org/blink/trunk@195615 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Various ASan exemptions to allow Oilpan pre-sweep poisoning of unmarkeds.
Heap objects must not access other dead objects while finalizing.
To help catch out those that do, the Oilpan GC can now poison 
unmarked, to-be-swept objects. To be able to make use of that
with ASan enabled, a couple of benign accesses that run afoul
of that strict check are still needed & must be allowed to
make this feasible.

Here provided together -- the ones related to Timer stopping &
removal from the timer heap aren't something we'd typically want
to impose one the Blink codebase in general, but beside the
goal of better ASan coverage, the timer heap will soon be removed
and the need for these should fall away.

(Reland of r195609, non-Oilpan compilation issue addressed.)

R=haraken,tkent,yutak
BUG=420515

Review URL: https://codereview.chromium.org/1120943002

git-svn-id: svn://svn.chromium.org/blink/trunk@195613 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Revert of Various ASan exemptions to allow Oilpan pre-sweep poisoning of unmarkeds. (patchset #6 id:100001 of https://codereview.chromium.org/1120943002/)
Reason for revert:
Broke non-Oilpan ASAN compilation,

 http://build.chromium.org/p/chromium.webkit/builders/WebKit%20Linux%20ASAN/builds/18615

Original issue's description:
> Various ASan exemptions to allow Oilpan pre-sweep poisoning of unmarkeds.
> 
> Heap objects must not access other dead objects while finalizing.
> To help catch out those that do, the Oilpan GC can now poison 
> unmarked, to-be-swept objects. To be able to make use of that
> with ASan enabled, a couple of benign accesses that run afoul
> of that strict check are still needed & must be allowed to
> make this feasible.
> 
> Here provided together -- the ones related to Timer stopping &
> removal from the timer heap aren't something we'd typically want
> to impose one the Blink codebase in general, but beside the
> goal of better ASan coverage, the timer heap will soon be removed
> and the need for these should fall away.
> 
> R=haraken,tkent,yutak
> BUG=420515
> 
> Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=195609

TBR=haraken@chromium.org,yutak@chromium.org,tkent@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=420515

Review URL: https://codereview.chromium.org/1144933004

git-svn-id: svn://svn.chromium.org/blink/trunk@195611 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r195600.
VisibleSelection finalization not needed with Oilpan.

TBR=oilpan-reviews
BUG=275851
NOTRY=true

Review URL: https://codereview.chromium.org/1150603002

git-svn-id: svn://svn.chromium.org/blink/trunk@195610 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Various ASan exemptions to allow Oilpan pre-sweep poisoning of unmarkeds.
Heap objects must not access other dead objects while finalizing.
To help catch out those that do, the Oilpan GC can now poison 
unmarked, to-be-swept objects. To be able to make use of that
with ASan enabled, a couple of benign accesses that run afoul
of that strict check are still needed & must be allowed to
make this feasible.

Here provided together -- the ones related to Timer stopping &
removal from the timer heap aren't something we'd typically want
to impose one the Blink codebase in general, but beside the
goal of better ASan coverage, the timer heap will soon be removed
and the need for these should fall away.

R=haraken,tkent,yutak
BUG=420515

Review URL: https://codereview.chromium.org/1120943002

git-svn-id: svn://svn.chromium.org/blink/trunk@195609 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Make right-most compound check explicit.
We set SelectorCheckingContext::elementStyle to null to indicate that we
were not in the rightmost compound selector. Use a flag in the context
instead to make it clearer what we mean.

An alternative would be to have a method inRightmostCompound() on the
context instead that checks the elementStyle for nullptr.

R=esprehn@chromium.org,timloh@chromium.org

Review URL: https://codereview.chromium.org/1133743004

git-svn-id: svn://svn.chromium.org/blink/trunk@195606 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Don't dispatch two 'load' events for external SVGScriptElement loads
If inserting an <svg:script> reference an external source via script,
ScriptLoaded would dispatch 'load' and then SVGScriptElement would
do the same. Drop the latter one.
Since this makes SVGScriptElement no longer use
SVGElement::sendSVGLoadEventIfPossibleAsynchronously(), drop the
svgLoadEventTimer() override and associated timer.

Review URL: https://codereview.chromium.org/1141683003

git-svn-id: svn://svn.chromium.org/blink/trunk@195604 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Add a comment about counter availability in M44 branch
R=jochen@chromium.org
NOTRY=true

Review URL: https://codereview.chromium.org/1127293006

git-svn-id: svn://svn.chromium.org/blink/trunk@195603 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove the deprecation messages for hspace/vspace attributes on table
The functionality itself was removed in time for M42:
https://codereview.chromium.org/690993003

Three milestones (M42-M44) of warnings after removal is enough.

BUG=277080

Review URL: https://codereview.chromium.org/1146493003

git-svn-id: svn://svn.chromium.org/blink/trunk@195601 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Drop the document.charset part of fast/encoding/external-script-charset.xhtml
Simplify to only test the inheritance, but use the koi8-r for the XHTML
document to ensure that it's not just the default encoding being used to
decode the script.

The bots cannot apply this patch because of the encoding of
LayoutTests/fast/encoding/external-script-charset-koi-8.js.

BUG=438392
R=pdr@chromium.org

Review URL: https://codereview.chromium.org/1144913002

git-svn-id: svn://svn.chromium.org/blink/trunk@195595 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Inline SVGTextLayoutAttributes::emptyValue
This function just returns a simple float - inlining it allows the
compiler to generate more efficient code (and smaller - ~.5k) code
since the relatively high overhead call can be eliminated.
Take the opportunity to change the "empty value" into NaN (instead of
"max() - 1"), with corresponding semantic changes required by that.

BUG=486669

Review URL: https://codereview.chromium.org/1129333004

git-svn-id: svn://svn.chromium.org/blink/trunk@195555 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r195535.
TBR=oilpan-reviews
BUG=483108
NOTRY=true

Review URL: https://codereview.chromium.org/1140343003

git-svn-id: svn://svn.chromium.org/blink/trunk@195543 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Disable multicol when printing.
Until crbug.com/99358 is fixed, we cannot really print multicol properly.

The old multicol implementation has code (in C++) to prevent multicol when
printing, but since the new implementation creates a different layout tree
structure for multicol, it's going to be quite some work to remove multicol
containers when switching the document to printing. So let's do it in CSS
instead.

R=rune@opera.com,dsinclair@chromium.org,jchaffraix@chromium.org

Review URL: https://codereview.chromium.org/1141943002

git-svn-id: svn://svn.chromium.org/blink/trunk@195531 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Setting -webkit-column-count to auto is the same as not setting it.
In ComputedStyle, column-count is represented by two members, one integer
specifying the count, and one bool specifying whether it's auto or not. If
column-count is auto, the integer is ignored, but if the integer changes, it's
still detected as a style change (even if auto is set to true), and we'll mark
for layout for no good reason. Make sure that setting column-count to auto also
resets the integer to its initial value, to avoid this problem.

This bug was discovered while working on
https://codereview.chromium.org/1141943002/ (disable multicol when printing).
When changing from not specifying column-count to setting it to auto triggers
relayout, some printing tests started to fail (but that's really just because
the current expectation files rely on crbug.com/489615 ).

R=rune@opera.com

Review URL: https://codereview.chromium.org/1145773002

git-svn-id: svn://svn.chromium.org/blink/trunk@195524 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Common up the determination of navigation policy.
Share the (little bit of) logic that determines the WebNavigationPolicy
to use when navigating to new content, including when creating a new
window to hold it.

R=mkwst,jochen
BUG=none

Review URL: https://codereview.chromium.org/1140463003

git-svn-id: svn://svn.chromium.org/blink/trunk@195521 bbb929c8-8fbe-4397-9dbb-9b2b20218538
christiank
Update GL_CHROMIUM_image with support for compressed formats.
This CL enables creation of compressed images using the
GL_CHROMIUM_image extension.

BUG=434699

Review URL: https://codereview.chromium.org/1128933006

Cr-Commit-Position: refs/heads/master@{#330489}
mstensho
Remove special handling of ::before and ::after on RUBY elements.
Special handling of ::before and ::after in RUBY was introduced in
https://bugs.webkit.org/show_bug.cgi?id=41040 , followed by some crash fixes,
most notably https://bugs.webkit.org/show_bug.cgi?id=55930 (which is what
caused this issue - crbug.com/484438 )

No spec requires such special handling, and neither IE nor Firefox does it, and
it just complicates the code.

Just treat them as they were a first or last DOM child of the RUBY parent.
That's how ::before and ::after normally works. This means that now ::before
and ::after will be part of, or even establish, ruby runs.

Added a test for the crasher.

Also rewrote three tests as reftests, since the expectations started to fail
anyway. One test was invalid (ruby-beforeafter.html), since it required special
handling of ::before and ::after, while the two others just got different
rendering due to this change.

BUG=484438
R=leviw@chromium.org,ojan@chromium.org

Review URL: https://codereview.chromium.org/1124313004

git-svn-id: svn://svn.chromium.org/blink/trunk@195506 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Drop SVGElement::synchronizeRequired* and synchronizeSystemLanguage
Empty, never called and never overridden.

Review URL: https://codereview.chromium.org/1141433004

git-svn-id: svn://svn.chromium.org/blink/trunk@195473 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Sync the SVGSVGElement interface with the spec
Add use counters for the bits that have been removed from SVG 2.

The referenceElement arguments are not nullable in the spec, but that
seems to be a spec problem: https://github.com/w3c/svgwg/issues/16

BUG=460722, 313655

Review URL: https://codereview.chromium.org/1140343002

git-svn-id: svn://svn.chromium.org/blink/trunk@195466 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Drop ImageLoader::sourceURI
With xml:base removed, SVGImageLoader::sourceURI can be simplified,
making it the same as the HTMLImageLoader implementation. Fold into
the only caller (ImageLoader::imageSourceToKURL) and remove the
extension point.

BUG=341854

Review URL: https://codereview.chromium.org/1141323002

git-svn-id: svn://svn.chromium.org/blink/trunk@195465 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Maintain child dependent ComputedStyle flags if propagation stops.
There are two non-inherited flags in ComputedStyle which may be set as a
result of calculating the computed style of one of its descendants. Those
are the empty state flag, and the explicit inheritance flag. r190990
optimized propagation of inherited properties, but the mentioned flags
were not properly set if the propagation stopped at an element which had
children that would set these flags.

If a child-dependent flag is set in the old style, and there is no need
to inherit properties, and no children which needs a style recalc, copy
the flags from the old to the new ComputedStyle.

If there is no need to inherit properties, but some child needs a style
recalc, return Inherit to re-compute the child-dependent flags from its
children.

R=timloh@chromium.org,esprehn@chromium.org
BUG=487216

Review URL: https://codereview.chromium.org/1133263003

git-svn-id: svn://svn.chromium.org/blink/trunk@195462 bbb929c8-8fbe-4397-9dbb-9b2b20218538
christiank
glBindTexImage2DCHROMIUM should retain pixel format.
glBindTexImage2DCHROMIUM and glReleaseTexImage2DCHROMIUM will force the
texture format in the level info to GL_RGBA regardless of the internal
format used by the GLImage.

This CL address this by adding a GetFormat function to GLImage that
glBindTexImage2DCHROMIUM and glReleaseTexImage2DCHROMIUM will use when
updating the level info.

BUG=

Review URL: https://codereview.chromium.org/1140683002

Cr-Commit-Position: refs/heads/master@{#330336}
bratell
More compact representation of the GL Query cache.
The only thing we need to know per QuerySync block is its
index in the block sequence. Everything else can be
calculated from that if we just store a few numbers in
the Bucket objects.

Total memory reduction is 92%.

This is alt #2 in bug 485536.

BUG=485536

Review URL: https://codereview.chromium.org/1131913004

Cr-Commit-Position: refs/heads/master@{#330334}
philipj
Remove xml:base support
Intent to Deprecate and Remove:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/ZvArHAXyAHM/ftybb0waCKYJ

BUG=341854

Review URL: https://codereview.chromium.org/1137753004

git-svn-id: svn://svn.chromium.org/blink/trunk@195443 bbb929c8-8fbe-4397-9dbb-9b2b20218538
wdzierzanowski
Don't initialize decryptor on CDM creation failure
PpapiDecryptor::Create() must not proceed with decryptor initialization
if the CDM wrapper could not be created.
PpapiDecryptor::PpapiDecryptor() asserts the CDM wrapper is valid and
InitializeCdm() uses it unconditionally.

BUG=488363
TEST=EME tests pass

Review URL: https://codereview.chromium.org/1128693004

Cr-Commit-Position: refs/heads/master@{#330150}
rune
Forced style invalidation when clearing resolver no longer needed.
When the StyleInvalidator was stored on the RuleFeatureSet, we had to
invalidate with pending invalidations before clearing the RuleFeatureSets
as part of clearing the StyleResolver. After the StyleInvalidator was
moved to StyleEngine, this is no longer necessary as invalidation sets
are reference counted and can be used by the invalidator after their
stylesheets are nuked.

TEST=fast/css/invalidation/style-update-with-added-stylesheet.html

R=chrishtr@chromium.org,esprehn@chromium.org
BUG=401359

Review URL: https://codereview.chromium.org/1131793008

git-svn-id: svn://svn.chromium.org/blink/trunk@195407 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r195398.
TBR=oilpan-reviews
BUG=470036
NOTRY=true

Review URL: https://codereview.chromium.org/1135203007

git-svn-id: svn://svn.chromium.org/blink/trunk@195399 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r195375.
TBR=oilpan-reviews
BUG=441552
NOTRY=true

Review URL: https://codereview.chromium.org/1133353003

git-svn-id: svn://svn.chromium.org/blink/trunk@195396 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
MemoryCache::resourceForURL(): add argument validation.
If querying the cache for the resource mapping of an empty or invalid
URLs, return no resource, mirror the behavior of getEntryForResource().

R=japhet
BUG=431640

Review URL: https://codereview.chromium.org/1142523002

git-svn-id: svn://svn.chromium.org/blink/trunk@195366 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: move NavigationScheduler's redirect actions onto the heap.
As NavigationScheduler is attached to a LocalFrame, arrange for its
ScheduledNavigation actions to be on the Oilpan heap also, so that
any of its traceable references are accurately accounted for.

R=peria,haraken
BUG=340522

Review URL: https://codereview.chromium.org/1133303007

git-svn-id: svn://svn.chromium.org/blink/trunk@195342 bbb929c8-8fbe-4397-9dbb-9b2b20218538
landell
Return EOS when selected_range_ is NULL in SourceBufferStream
Fixes the issue where an OnSetDuration call truncates the selected_range_ and resets the
next_buffer_position. kEndOfStream is now returned instead of kNeedBuffer from
GetNextBufferInternal when selected_ranges_ is NULL.

BUG=484992

Review URL: https://codereview.chromium.org/1119163005

Cr-Commit-Position: refs/heads/master@{#329753}
sigbjornf
Oilpan: add release assert to catch nested GCs.
Sanity check that collectGarbage() isn't called while already GCing.

R=haraken
BUG=480852

Review URL: https://codereview.chromium.org/1141543002

git-svn-id: svn://svn.chromium.org/blink/trunk@195310 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove unused UseCounter features
These are the reviews in which the enum values became unused:

AnimationConstructorKeyframeListEffectDoubleTiming and
ElementAnimateKeyframeListEffect*Timing:
https://codereview.chromium.org/947923002

AudioContextCreateStereoPanner (never used):
https://codereview.chromium.org/799403007

DevToolsConsoleTimeline:
https://codereview.chromium.org/750983003

DOMImplementationHasFeature*:
https://codereview.chromium.org/1108293002

FontFaceSetReady:
https://codereview.chromium.org/816923002

MixedContentPrivateIPInPublicWebsiteActive/Passive:
https://codereview.chromium.org/842783002

ServiceWorkerClientsGetAll:
https://codereview.chromium.org/1056973003

TimelineStart:
https://codereview.chromium.org/1113173003

Review URL: https://codereview.chromium.org/1141733002

git-svn-id: svn://svn.chromium.org/blink/trunk@195305 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Drop assert for degenerate cases in FloatRoundedRect::radiusCenterRect()
This method is only used by BoxClipper, to provide a conservative
estimate of a rectangle enclosed by the rounded (inner) rectangle.
Since it's unproblematic to provide a conservative estimate for the
"degenerate" cases [1], do that instead of asserting.
Reformulate the implementation using FloatRectOutsets. The only
functional change is that there no longer is an implicit conversion
from float to int.

[1] As defined by isRenderable().

BUG=458505, 477826

Review URL: https://codereview.chromium.org/1136083002

git-svn-id: svn://svn.chromium.org/blink/trunk@195299 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Apply bleed-avoidance insets _after_ constraining the border
When shrinking the background to avoid bleeding artifacts, apply the
inset after computing and constraining the (outer) border. If the
shrinking inset is applied before constraining, the shape of the border
will differ in some (extreme) cases. It's also more consistent with
how 'double' style borders are handled.
This allows dropping the optional FloatRectOutsets argument from
ComputedStyle::getRoundedBorderFor() and
BoxPainter::getBackgroundRoundedRect().

BUG=473119,445598

Review URL: https://codereview.chromium.org/1137513003

git-svn-id: svn://svn.chromium.org/blink/trunk@195263 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
IDL: Determine maximum distinguishing argument index runtime, if needed
If an overloaded method is partially runtime enabled such that its
"longest" overload(s) might be disabled, we need to determine the
maximum distinguishing argument index runtime, to avoid using an index
for which all actual overloads are disabled, since that would typically
cause us to incorrectly reject the call as not matching any overload.

The implementation is largely a copy of the existing and very similar
runtime determination of the correct Function.length value.

While we're at it, drop the overloads['minarg'] value, which was just a
less accurate variant of overloads['length'] used in a few places where
it didn't really matter anyway.

BUG=486249

Review URL: https://codereview.chromium.org/1132243004

git-svn-id: svn://svn.chromium.org/blink/trunk@195251 bbb929c8-8fbe-4397-9dbb-9b2b20218538
bratell
A GL Query cache of 1024 items is enough (was 4096).
Since each QuerySyncManager has its own cache, even a moderate
cache size expands to several hundred KB of memory usage. This makes
it slightly smaller to save some of that memory. It is believed
to be unlikely that the cache has to be big anyway.

In ad-hoc testing I've only seen 20 queries in total (unclear how
many of them were in parallel).

(This is alt #1 in bug 485536)

BUG=485536
R=reveman@chromium.org

Review URL: https://codereview.chromium.org/1138463003

Cr-Commit-Position: refs/heads/master@{#329383}
fs
Test for constrained background bleed
TBR=fmalita@chromium.org
BUG=445598

Review URL: https://codereview.chromium.org/1134183002

git-svn-id: svn://svn.chromium.org/blink/trunk@195233 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mpawlowski
Don't create a sync node when updating an URL that wasn't typed.
TypedUrlChangeProcessor is a HistoryService observer and gets notified
about changes to all addresses, not just typed ones. This means that
when HistoryService::SetPageTitle() is called for a non-typed URL,
TypedUrlChangeProcessor::OnURLsModified() will be triggered and,
consequently, TypedUrlChangeProcessor::CreateOrUpdateSyncNode().
As the name suggests, if the modified node was not previously present
(because it was filtered out by ShouldSyncVisit() in OnURLVisited()),
it would be created.
End effect was that *all* URLs that had their title updated (which means
every page that has a <title> tag) were synced, even if they were not typed.

The solution is to return early in CreateOrUpdateSyncNode() if we detect
that the URL in question has no typed visits.

(Caused by https://codereview.chromium.org/1087773002/)

BUG=

Review URL: https://codereview.chromium.org/1126633005

Cr-Commit-Position: refs/heads/master@{#329370}
sigbjornf
Oilpan: fix build after r195182.
TBR=oilpan-reviews
BUG=463143
NOTRY=true

Review URL: https://codereview.chromium.org/1139783002

git-svn-id: svn://svn.chromium.org/blink/trunk@195194 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
IDL: Make idl_type.is_wrapper_type false for callback interfaces
Callback interface types (when used as method arguments) have special
pre-conversion error handling, and special conversion code, and making
idl_type.is_wrapper_type false disables the normal interface type
error handling that is generated after the conversion (by checking for
null) when [TypeChecking=Interface].

Other effects of making idl_type.is_wrapper_type false for callback
interfaces are:

- Callback interface types can no longer be used as arguments to methods
  implemented in private script. Reverting this effect would be trivial.

- If a callback interface type argument is the distinguishing argument
  for an overloaded method, we stop generating code that doesn't compile
  and instead generate no code at all for that method overload.

BUG=462561

Review URL: https://codereview.chromium.org/1134073002

git-svn-id: svn://svn.chromium.org/blink/trunk@195181 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Avoid division-by-zero in SVGLengthContext::convertValueFromUserUnits
If the viewport is valid but empty, we could end up dividing by zero,
which could produce either Infinity or NaN.
This could end up triggering an assert when creating a
CSSPrimitiveValue for the SVGLength in question.

TEST=http/tests/cache/smil-usecounter-in-cached-image.html
BUG=485973

Review URL: https://codereview.chromium.org/1133783003

git-svn-id: svn://svn.chromium.org/blink/trunk@195174 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Prevent SVG children from participating in an ancestor multicol context.
foreignObjects and their children must never see an ancestor flow thread, and
we need to convince all parts of the code that they are not "paginated".

BUG=486000
R=dsinclair@chromium.org,jchaffraix@chromium.org

Review URL: https://codereview.chromium.org/1131283004

git-svn-id: svn://svn.chromium.org/blink/trunk@195164 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: keep ImageData on the heap by default.
R=haraken, junov
BUG=479467

Review URL: https://codereview.chromium.org/1084313004

git-svn-id: svn://svn.chromium.org/blink/trunk@195152 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Revert of Add support for new-ish V8 use counters (patchset #2 id:20001 of https://codereview.chromium.org/1135753002/)
Reason for revert:
The v8 use counters now being handled are reported over an Isolate for which callingExecutionContext() fails --

  https://storage.googleapis.com/chromium-layout-test-archives/WebKit_Mac_Oilpan__dbg_/9995/layout-test-results/results.html

(first build on Mac Oilpan(dbg) with the new crashes.)

Original issue's description:
> Add support for new-ish V8 use counters
> 
> R=jochen@chromium.org
> BUG=
> 
> Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=195119

TBR=jochen@chromium.org,erikcorry@chromium.org,erik.corry@gmail.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=

Review URL: https://codereview.chromium.org/1131413002

git-svn-id: svn://svn.chromium.org/blink/trunk@195151 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r195134.
TBR=oilpan-reviews
BUG=466631
NOTRY=true

Review URL: https://codereview.chromium.org/1131263009

git-svn-id: svn://svn.chromium.org/blink/trunk@195142 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Clean up nth-index calculation in SelectorChecker.
Use a 1-based index consistently to avoid +/-1 adjustments and rename
countElement*Before/After to nth*Index since that is what it is used for.

R=esprehn@chromium.org

Review URL: https://codereview.chromium.org/1135503004

git-svn-id: svn://svn.chromium.org/blink/trunk@195113 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Fixup reference for svg/animations/viewspec-checkaspectparams.html
Use the expected 'viewBox' and 'preserveAspectRatio' instead, and
modify the <rect> to match what's in the resources/ svg-file.
Drop a redundant semicolon from the view-spec (this is not a parsing
test).

BUG=235256

Review URL: https://codereview.chromium.org/1131233002

git-svn-id: svn://svn.chromium.org/blink/trunk@195110 bbb929c8-8fbe-4397-9dbb-9b2b20218538
davve
Don't conflate intrinsic width and height with logical width and height
This is wrong in vertical writing mode and shouldn't be necessary. The
intrinsic dimensions are propagated from attributes to properties in
SVGSVGElement::collectStyleForPresentationAttribute().

BUG=484425

Review URL: https://codereview.chromium.org/1128893002

git-svn-id: svn://svn.chromium.org/blink/trunk@195104 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Revert of Oilpan: Enable lazy sweeping on non-oilpan builds (patchset #2 id:20001 of https://codereview.chromium.org/1055193004/)
Reason for revert:
The use of lazy sweeping appears to be behind this ASan regression,

 https://storage.googleapis.com/chromium-layout-test-archives/WebKit_Linux_ASAN/18437/layout-test-results/http/tests/serviceworker/fetch-canvas-tainting-crash-log.txt

i.e., it risks lifecycle notification touching already finalized & freed objects.

Original issue's description:
> Oilpan: Enable lazy sweeping on non-oilpan builds
> 
> Currently lazy sweeping is enabled only on oilpan builds. Since the lazy sweeping has been stable on the oilpan builds for >3 months, I think it's now safe to enable it on non-oilpan builds as well.
> 
> BUG=480837
> 
> Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=194808
> 
> Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=195022

TBR=oilpan-reviews@chromium.org,haraken@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=480837

Review URL: https://codereview.chromium.org/1133563004

git-svn-id: svn://svn.chromium.org/blink/trunk@195067 bbb929c8-8fbe-4397-9dbb-9b2b20218538
davve
Return vertical writing mode aware intrinsic information for SVG
Values returned from computeIntrinsicRatioInformation are assumed to
be logical, i.e. they should take writing mode into consideration.

BUG=484425

Review URL: https://codereview.chromium.org/1128093002

git-svn-id: svn://svn.chromium.org/blink/trunk@195059 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: remove explicit conversion of getNamedItems()' result, not needed.
Following r189132, there is no ambiguity in implicitly converting the
RawPtr<StaticElementList> in adopt()'s result. Retire the explicit
conversion and FIXME.

R=haraken
BUG=340522

Review URL: https://codereview.chromium.org/1130113003

git-svn-id: svn://svn.chromium.org/blink/trunk@195052 bbb929c8-8fbe-4397-9dbb-9b2b20218538
davve
Add tests for SVG sizing inside vertical writing mode
BUG=484425

Review URL: https://codereview.chromium.org/1129763002

git-svn-id: svn://svn.chromium.org/blink/trunk@195041 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Support type selector for camel-cased SVG elements in HTML.
In HTML documents, type selectors are case-insensitive for HTML elements,
but case sensitive for SVG elements [1]. We store the lower case version
of the type selector. For SVG elements, the tag name is normalized to
the camel-case version during parsing. That means we would never match
SVG tag names containing upper-case letters in HTML documents.

This CL matches SVG tag names case-insensitively in HTML documents. That
is not correct according to spec, but at least makes it possible to use
type selectors for SVG elements in HTML documents.

Since the tag name for SVG elements are still stored camelCased, we need
to lower the localName() before using it collecting tag rules from rule
sets or collecting tag name hashes for the the bloom filter.

[1] https://html.spec.whatwg.org/multipage/scripting.html#selectors

BUG=237435

Review URL: https://codereview.chromium.org/1099963003

git-svn-id: svn://svn.chromium.org/blink/trunk@195038 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: switch some leftover raw references over to traced Member<>s.
R=haraken
BUG=340522

Review URL: https://codereview.chromium.org/1130793002

git-svn-id: svn://svn.chromium.org/blink/trunk@195035 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r194987.
TBR=oilpan-reviews
BUGS=484953
NOTRY=true

Review URL: https://codereview.chromium.org/1123353003

git-svn-id: svn://svn.chromium.org/blink/trunk@194989 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
IDL: Make v8_utilities.py not depend on v8_types.py
This is useful since v8_types.py depends on v8_utilities.py, indirectly.
Thus, if v8_utilities.py imports v8_types like it currently does, it is
not possible to import v8_utilities unless v8_types has been imported
first.

All v8_utilities.py actually used from v8_types.py was a helper function
that returns a string with 'V8' prepended. I think we can afford to
duplicate this functionality.

Review URL: https://codereview.chromium.org/1129803002

git-svn-id: svn://svn.chromium.org/blink/trunk@194981 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ed
Remove ed+blinkwatch@opera.com from watchlist.
TBR=pdr

Review URL: https://codereview.chromium.org/1123223002

git-svn-id: svn://svn.chromium.org/blink/trunk@194979 bbb929c8-8fbe-4397-9dbb-9b2b20218538
bratell
Avoid extra copy of CSS data.
operator+ will always create new string buffers and that is a bit
unnecessary if one of the strings that are concatenated is empty.

By switching from operator+ to String::append TextResource::decodedText()
can avoid a copy almost always since the flush string will almost always
be empty.

BUG=484713
R=mkwst@chromium.org

Review URL: https://codereview.chromium.org/1122103005

git-svn-id: svn://svn.chromium.org/blink/trunk@194975 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Rename findSetLayoutObjects() to mapDescendantToColumnSet()
It got renamed from findSetRendering() to findSetLayoutObjects() during the
render -> layout rename. findSetLayoutObjects() isn't a meaningful name. Then
again, findSetRendering() wasn't a great name either (it meant "find the column
set that renders (paints, hit-tests, etc.) the specified layoutObject", but
that probably wasn't too clear). So let's try with mapDescendantToColumnSet(),
which more accurately describes what the method does.

R=dsinclair@chromium.org

Review URL: https://codereview.chromium.org/1124133002

git-svn-id: svn://svn.chromium.org/blink/trunk@194974 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Gracefully handle backdoor cancellations of synchronous resource fetches.
When fetching a resource synchronously (via XHR, say), messages can be
handled & dispatched while that fetch is ongoing. These may in the general
case bring about the cancellation of the resource being synchronously
fetched. Be prepared for that eventuality when the (failing) synchronous
fetch returns.

R=jochen
BUG=484101

Review URL: https://codereview.chromium.org/1129743002

git-svn-id: svn://svn.chromium.org/blink/trunk@194973 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: handle thread-local weak tracing slightly better.
The implementation of marking is marking-thread centric, recording a
thread stack limit that the tracing through the object graph cannot
exceed. If it does, the implementation will use the explicit mark
stack instead of trying to eagerly trace the object, if unmarked.

Tracing will in the general case also happen on a per-thread basis,
when handling the weak pointer callbacks after the initial marking
phase has completed. Using the marking thread's stack limit to determine
eagerness or not of a trace call when that weak tracing runs doesn't
make much sense.

To address, eager tracing is not enabled whilst processing the
per-thread weak pointer callbacks. As the amount of tracing is rather
moderate for this stage, there are no performance concerns with
disabling this optimization.

R=haraken
BUG=420515
TEST=HeapTest.ThreadedStrongification

Review URL: https://codereview.chromium.org/1125613002

git-svn-id: svn://svn.chromium.org/blink/trunk@194970 bbb929c8-8fbe-4397-9dbb-9b2b20218538
bratell
Adding missing profile.h include to extensions code.
external_pref_loader.cc uses profile.h so it needs to include it and
not rely on some other random code to include it. Fixes compilation
problems in certain configurations.

Review URL: https://codereview.chromium.org/1126543003

Cr-Commit-Position: refs/heads/master@{#328511}
bratell
Add build dependency: ui/app_list uses ui/base/ime
The code in ui/app_list/views/search_box_view.cc was importing
ui/base/ime/text_input_flags.h, which was violating a dependency,
resulting in a compile problem for a downstream project. Fixed by
allowing this dependency.

R=sadrul@chromium.org,mgiuca@chromium.org

Review URL: https://codereview.chromium.org/1127603002

Cr-Commit-Position: refs/heads/master@{#328506}
mstensho
Cleanup: Remove LayoutRegion.
Move what was in use by the derived class LayoutMultiColumnSet into said
derived class, and delete the rest (such as setIsValid() / isValid(),
which are remnants from the region days).

R=dsinclair@chromium.org

Review URL: https://codereview.chromium.org/1122323002

git-svn-id: svn://svn.chromium.org/blink/trunk@194965 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: address ScrollableArea-induced build breakage from r194957.
ScrollableArea is not an Oilpan allocated mixin currently, so in order
to support the assumption of RootFrameViewport that all ScrollableAreas
are allocated the same way, pull PinchViewport off the Oilpan heap
(PinchViewport being the only ScrollableArea that was Oilpan controlled.)

This is not ideal, but a shorter term measure to unbreak Oilpan builds.
Making ScrollableArea a GC mixin would be the longer term solution, but
that's not a straightforward task.

TBR=oilpan-reviews
BUG=443724
NOTRY=true

Review URL: https://codereview.chromium.org/1127023002

git-svn-id: svn://svn.chromium.org/blink/trunk@194964 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Invalidate ancestor resources in when relative lengths change
If a LayoutObject within a resource had relative lengths, and the viewport
changed, only the object itself would be invalidated - not any of the
clients of the resource. This would fail to invalidate the cached display
item with Slimming Paint.
Modify SVGClipPathElement::selfHasRelativeLengths() to indicate if any
of the children have relative lengths, to make sure the clients are
invalidated in that case. (SVGClipPathElement will otherwise never indicate
that it has relative lengths.)

Fixes svg/custom/viewport-resource-inval.svg with Slimming Paint enabled.

BUG=477743

Review URL: https://codereview.chromium.org/1111223002

git-svn-id: svn://svn.chromium.org/blink/trunk@194949 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Cleanup: Only need one bit (not two) to express flow thread state.
The InsideOutOfFlowThread / InsideInFlowThread distinction is a relic from the
CSS Regions days. Just telling whether we're a descendant of a flow thread or
not is enough.

R=dsinclair@chromium.org

Review URL: https://codereview.chromium.org/1124993002

git-svn-id: svn://svn.chromium.org/blink/trunk@194945 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Harden changing font style over unknown elements.
When adjusting the start node position of where to apply a font style
command, check that we haven't stepped off the end.

R=leviw
BUG=484434

Review URL: https://codereview.chromium.org/1124863003

git-svn-id: svn://svn.chromium.org/blink/trunk@194944 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Set correct class name for interfaces with disabled partials
If an runtime enabled interface was disabled, we'd initialize its
v8::FunctionTemplate's class name to the empty string. We'd also do this
if a runtime enabled *partial* interface was disabled, even though the
interface as a whole was enabled, which is clearly wrong.

As a simple fix, simply always set the interface's real name. If the
interface is disabled, it won't matter what it's set to anyway.

BUG=475830

Review URL: https://codereview.chromium.org/1126543010

git-svn-id: svn://svn.chromium.org/blink/trunk@194937 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r194911.
TBR=oilpan-reviews
BUG=484004
NOTRY=true

Review URL: https://codereview.chromium.org/1129533002

git-svn-id: svn://svn.chromium.org/blink/trunk@194921 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Revert Range firstNode/pastLastNode() refactoring.
The calculation of these two end points cannot in general be done by way of
anchor offsetting of the start/end node -- such an anchor may not exist.

Hence, revert their implementations back to how they were prior to r191892. The
functionality that r191892 added to Position has separate uses, and is kept.

R=haraken
BUG=484103

Review URL: https://codereview.chromium.org/1121633004

git-svn-id: svn://svn.chromium.org/blink/trunk@194918 bbb929c8-8fbe-4397-9dbb-9b2b20218538
tmoniuszko
Allow safe_browsing_mode overriding in gn build
BUG=

Review URL: https://codereview.chromium.org/1122763003

Cr-Commit-Position: refs/heads/master@{#328298}
mstensho
Enable new multicol for testing and experimental web platform features.
This is a re-land of https://codereview.chromium.org/1028383002

There's already a RuntimeEnabledFeatures flag for region based
(aka. "new") multicol. So far it's only been used to toggle support
for column-fill (only supported in the new implementation), but will
from now on be used to determine whether to use the region based
implementation or not.

Remove internals.settings.setRegionBasedColumnsEnabled().

We need to keep a method for region based multicol (that does nothing)
in WebSettings for now, since it's still being called from the
Chromium side. Will be cleaned up later, when the
--enable-region-based-columns command line flag (which from now on has
no effect) is gone. See crbug.com/350853

Remove virtual/regionbasedcolumns tests, since region based multicol
is what's tested by default from now on. At the same time, add
virtual/stable/ tests, so that we still get test coverage for the old
implementation, since that's still what's shipping. This move causes
many changes in TestExpectations. All multicol test expectations that
used to be foo/* will now be virtual/stable/foo/* , and everything
that used to be virtual/regionbased/foo/* is now foo/* .

svg/text/columns-do-not-apply.html now passes again.

A few test expectations also need to be updated:

fast/dom/Element/getBoundingClientRect.html: Regenerated expectation
file. New multicol has improved column balancing, resulting in 6px
shorter columns.

fast/borders/border-antialiasing.html: Schedule for
rebaseline. Clipping improvements in new multicol.

fast/repaint/multicol-as-paint-container.html: Schedule for
rebaseline. Different individual rectangles, but same resulting
rectangle.

fast/repaint/multicol-repaint.html: Schedule for rebaseline. Clipping
improvements in new multicol.

BUG=334335, 467468
R=dsinclair@chromium.org,jchaffraix@chromium.org,kbr@chromium.org

Review URL: https://codereview.chromium.org/1119293002

git-svn-id: svn://svn.chromium.org/blink/trunk@194883 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: use transition type for MemoryCache::resourcesForURL()'s result.
R=haraken
BUG=479467

Review URL: https://codereview.chromium.org/1125733002

git-svn-id: svn://svn.chromium.org/blink/trunk@194874 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Remove some svg/custom/ repaint tests from TestExpectations
After getting new baselines in https://codereview.chromium.org/1115723003/
these test now appear green and stable:

  deep-dynamic-updates.svg
  js-update-gradient.svg
  js-update-pattern.svg
  js-update-pattern-child.svg
  js-update-stop.svg
  js-update-stop-linked-gradient.svg
  use-disappears-after-style-update.svg

TBR=pdr@chromium.org
BUG=371651

Review URL: https://codereview.chromium.org/1115213006

git-svn-id: svn://svn.chromium.org/blink/trunk@194872 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
firstRectForCharacterRange(): don't fall over in an editable-less frame.
Have this test-only method gracefully handle the case where it is
attempted used in a document having no editable element.

R=haraken
BUG=483639

Review URL: https://codereview.chromium.org/1122593004

git-svn-id: svn://svn.chromium.org/blink/trunk@194870 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Avoid nearly identical toImplArray() and toImplHeapArray()
The only difference is the vector type, which can be made the template
argument. The value type is available as VectorType::ValueType.

BUG=

Review URL: https://codereview.chromium.org/1125683002

git-svn-id: svn://svn.chromium.org/blink/trunk@194867 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Drop comment about svg/custom/js-late-[clipPath,gradient}-...svg tests
Appear stable after fixups in https://codereview.chromium.org/1111323002

Rebaseline for virtual/slimmingpaint/ to include the
"paintInvalidationClients" information.

TBR=pdr@chromium.org
BUG=353301,302529,477743

Review URL: https://codereview.chromium.org/1122073002

git-svn-id: svn://svn.chromium.org/blink/trunk@194865 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
[New Multicolumn] Simplified layout also needs to mark spanner placeholders for layout.
If the actual column-span:all object needs layout, so does the placeholder.
There was code to ensure this for normal layout, but not for simplified layout
(when we just want to drill into the tree and locate the containing block of
some absolutely positioned object.

BUG=483976
R=dsinclair@chromium.org,jchaffraix@chromium.org

Review URL: https://codereview.chromium.org/1120313003

git-svn-id: svn://svn.chromium.org/blink/trunk@194861 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Shut down RenderViewTest's scheduler before Blink is.
As the former may finalize tasks that are Blink allocated.

R=skyostil,haraken,jochen
BUG=420515

Review URL: https://codereview.chromium.org/1118383002

Cr-Commit-Position: refs/heads/master@{#328107}
sigbjornf
Sever HTMLImportChild client connection upon disposal.
Move the notification of the HTMLImportChild going away to its dispose()
method (instead of its destructor.) It is unsafe to access the
HTMLImportChild after its loader has been cleared, which happens as
part of disposal. Hence, clear the client connection at the same time.

This is essential for Oilpan, where HTMLImportChild destruction will not
happen synchronously with disposal.

R=haraken
BUG=458222

Review URL: https://codereview.chromium.org/1119033003

git-svn-id: svn://svn.chromium.org/blink/trunk@194847 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Have HTMLScriptRunner's list of scripts use a transition type.
r194793 introduced an Oilpan heap type for the ordered list of
scripts-to-execute-when-finished-parsing. Until HTMLScriptRunner
is always on the Oilpan heap, that's one step too far.

Use the appropriate transition type instead.

TBR=haraken,oilpan-reviews
BUG=475801
NOTRY=true

Review URL: https://codereview.chromium.org/1117973004

git-svn-id: svn://svn.chromium.org/blink/trunk@194840 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: unpoison large object payload before finalizing.
R=haraken
BUG=420515

Review URL: https://codereview.chromium.org/1117273002

git-svn-id: svn://svn.chromium.org/blink/trunk@194819 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Missing m_registeredAsCandidate = false.
Added a missing reset of registeredAsCandidate when calling
removeStyleSheetCandidateNode() from clearDocumentData().

BUG=468267

Review URL: https://codereview.chromium.org/1102003002

git-svn-id: svn://svn.chromium.org/blink/trunk@194799 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
IDL: Check method.visible for methods implemented in private script
When an interface has partial interfaces in modules/, methods declared
in the partial interfaces are present in interface['methods'] for the
Jinja templates to see, but with method['visible'] set to false, meaning
code shouldn't be generated.

This flag wasn't checked when the private script trampoline of a method
implemented in private script was generated, leading to the trampoline
being defined both in core/v8/V8Foo.cpp and modules/v8/V8FooPartial.cpp.

BUG=341031

Review URL: https://codereview.chromium.org/1113023002

git-svn-id: svn://svn.chromium.org/blink/trunk@194747 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ed
Make DOMImplementation.hasFeature() always return true.
Intent to Remove:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/dznPapFTuZo/mpGybpVpEK4J

BUG=429536

Review URL: https://codereview.chromium.org/1108293002

git-svn-id: svn://svn.chromium.org/blink/trunk@194736 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Null check collection handling dirty scopes.
When a shadow subtree containing a style element with a loading @import is
removed from the DOM, StyleEngine::removePendingSheet() will be called,
which in turn calls markTreeScopeDirty(). The collection has already been
removed from m_styleSheetCollectionMap in StyleEngine has already been for
the shadow root, which will lead to the collection being null when the
dirty tree scopes are being handled in
StyleEngine::updateActiveStyleSheetsInShadow().

Check that the node is in the Document before calling markTreeScopeDirty().

R=tasak@chromium.org
BUG=482087,468267,463031

Review URL: https://codereview.chromium.org/1106313003

git-svn-id: svn://svn.chromium.org/blink/trunk@194733 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Remove unnecessary clearing of AX object cache in Document destructor.
Only frame-attached Documents can have an AX object cache. All such
Documents will be explicitly detached; detach() will clear the AX
object cache. Thus clearing it again in the destructor ought to be
redundant -- leave in an assert to verify that this assumption will hold.

R=dmazzoni,haraken

Review URL: https://codereview.chromium.org/1116773003

git-svn-id: svn://svn.chromium.org/blink/trunk@194732 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Cleanup color space resolution for ReferenceFilterBuilder
There's some dodgy-looking code, used by ReferenceFilterBuilder::build
to compute a ColorSpace for each filter primitive. Convert it to
compute an EColorInterpolation instead, and then resolve the ColorSpace
from that similarly to how LayoutSVGResourceFilter::buildPrimitives
does it. Also try to make it "cascade" the value in a more proper way,
rather than just selecting the value from the filter or the primitive.
This moves the two code-paths a bit closer to each other.

Also convert ReferenceFilterBuilder::build(...) to take references as
arguments where it makes sense.

BUG=109224

Review URL: https://codereview.chromium.org/1106973004

git-svn-id: svn://svn.chromium.org/blink/trunk@194729 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Don't cache nth-indices of pseudo elements.
A pseudo element is not found in its parent's child list. That caused an
assert while trying to cache the nth-index for a ::before element while
matching style for the ::before element's scrollbar pseudo elements.
Instead, skip the caching part and traverse siblings to fall back to the
behavior we had before the NthIndexCache.

Trying to get custom scrollbar style for pseudo elements with scrolling
overflow will not work, but never did. It's not currently possible to
match ::before::-webkit-scrollbar, and a universal ::-webkit-scrollbar
will not match scrollbars in pseudo elements like ::before, either.

R=esprehn@chromium.org
BUG=481495

Review URL: https://codereview.chromium.org/1108783002

git-svn-id: svn://svn.chromium.org/blink/trunk@194728 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Move StyleInvalidator to StyleEngine.
This is part of componentizing style resolving. We want to get rid of as
much as possible of global style data like RuleFeatureSet. We decouple the
StyleInvalidator from RuleFeatureSet and keep a single StyleInvalidator
in the StyleEngine. This removes a bunch of unused StyleInvalidators from
other RuleFeatureSets than the global one.

The plan ahead is to collect invalidation sets from rulesets in tree
scopes instead of the global one.

BUG=401359

Review URL: https://codereview.chromium.org/1111643003

git-svn-id: svn://svn.chromium.org/blink/trunk@194726 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Update baselines for some svg/custom/ tests
The existing baselines are so old, that it's hard to tell if the tests
are still flaky/broken.

TBR=pdr@chromium.org
BUG=371651

Review URL: https://codereview.chromium.org/1115723003

git-svn-id: svn://svn.chromium.org/blink/trunk@194722 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Attempt to deflake svg/custom/js-late-{clipPath,gradient}-and-...svg
Set testIsAsync to true and call finishRepaintTest(). Use runAfterDisplay
instead of setTimeout(..., 0);

Mark for rebaselining because the current baselines are a bit rotten.

BUG=353301,302529

Review URL: https://codereview.chromium.org/1111323002

git-svn-id: svn://svn.chromium.org/blink/trunk@194720 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix webkit unit tests after r194688.
When a plugin element is detached, Oilpan dispose()s of the plugin
container to clear out required references. Take that into account
when checking for detached state in isRectTopmost().

TBR=oilpan-reviews
BUG=476590
NOTRY=true

Review URL: https://codereview.chromium.org/1112953003

git-svn-id: svn://svn.chromium.org/blink/trunk@194703 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
[New Multicolumn] Never composite flow threads.
This will prevent flow threads from becoming paint invalidation containers.

There's an assertion in LayoutFlowThread::mapRectToPaintInvalidationBacking()
on the paint invalidation container not being the flow thread. The (very
recent) fix for issue 481663 also tried to avoid this assertion, but obviously
didn't manage to catch all cases.

BUG=482420
R=chrishtr@chromium.org,dsinclair@chromium.org,wangxianzhu@chromium.org

Review URL: https://codereview.chromium.org/1109383002

git-svn-id: svn://svn.chromium.org/blink/trunk@194680 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Gracefully handle unruly children detaching our frame and client.
When committing the load of a new document to a frame, any current
document is first detached, along with the child frames. Should these
children trigger the detachment of the frame getting a new document,
by updating the frame tree above us, simply abandon the frame loading
operation.

R=japhet,dcheng
BUG=476837

Review URL: https://codereview.chromium.org/1116763002

git-svn-id: svn://svn.chromium.org/blink/trunk@194679 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r194661.
TBR=oilpan-reviews
BUG=478507
NOTRY=true

Review URL: https://codereview.chromium.org/1116743002

git-svn-id: svn://svn.chromium.org/blink/trunk@194673 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Treat a stopped AudioContext as closed.
An AudioContext that ends up being detached&stopped by its
execution context is now treated on equal terms to one that
has been explicitly close()d from script. AudioContext methods
and operations over a context in such a state will now throw.

This restriction applies to OfflineAudioContext as well as
AudioContext.

R=rtoy
BUG=435867

Review URL: https://codereview.chromium.org/1111213002

git-svn-id: svn://svn.chromium.org/blink/trunk@194666 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
[New Multicolumn] Out-of-flow objects don't establish column sets.
If a multicol container only contains out-of-flow objects, there'll be no
column sets, so when determining the need to create one while inserting another
(in-flow) object, we need to ignore out-of-flow objects whose containing block
is not within the flow thread.

BUG=482352
R=dsinclair@chromium.org,jchaffraix@chromium.org

Review URL: https://codereview.chromium.org/1110383002

git-svn-id: svn://svn.chromium.org/blink/trunk@194659 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
[New Multicolumn] Disallow multicol on replaced content and fieldsets.
It's meaningless to multicol replaced content. For fieldsets it might make
sense, though, but currently we cannot, because the
layoutSpecialExcludedChild() mechanism only allows one special child per object
(the flow thread and the legend would make for two).

layoutSpecialExcludedChild() was especially bad for a TEXTAREA with a
placeholder attribute when attempting to multicol it, because we would go ahead
and lay out the placeholder (during TEXTAREA layout), which would be a child of
the flow thread. So we would lay out the grandchild before laying out its
parent, causing assertion failures in
LayoutMultiColumnFlowThread::columnSetAtBlockOffset().

BUG=482362
R=dsinclair@chromium.org,jchaffraix@chromium.org

Review URL: https://codereview.chromium.org/1110403002

git-svn-id: svn://svn.chromium.org/blink/trunk@194657 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
[New Multicolumn] Spanners are not part of the nearest ancestor flow thread.
Cannot take the fast path when calculating the enclosing pagination layer of a
spanner. Need to examine the containing block chain, just like we do when there
are out-of-flow objects.

BUG=481663,481926
R=chrishtr@chromium.org,dsinclair@chromium.org,jchaffraix@chromium.org

Review URL: https://codereview.chromium.org/1112593002

git-svn-id: svn://svn.chromium.org/blink/trunk@194607 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Fix "mouse" position selection in svg/text/resources/SelectionTestCase.js
eventSender.mouseMoveTo(...) truncates the coordinates it is passed, so
fractional coordinates could end being adjust by almost an entire pixel,
which could yield incorrect results.
Round the end-points such that they should reside within the intended
selection area.

BUG=477545

Review URL: https://codereview.chromium.org/1108033002

git-svn-id: svn://svn.chromium.org/blink/trunk@194604 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r194592.
TBR=oilpan-reviews
BUG=480341
NOTRY=true

Review URL: https://codereview.chromium.org/1108823004

git-svn-id: svn://svn.chromium.org/blink/trunk@194598 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Add back interface checking over XPathExpression interface.
Mistakenly removed by r194504, re-add.

R=haraken
BUG=481813

Review URL: https://codereview.chromium.org/1108903003

git-svn-id: svn://svn.chromium.org/blink/trunk@194588 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: put MessageChannel on the heap.
R=kouhei
BUG=479467

Review URL: https://codereview.chromium.org/1104293002

git-svn-id: svn://svn.chromium.org/blink/trunk@194572 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: put ClientRect(List) on the heap.
R=kouhei
BUG=479467

Review URL: https://codereview.chromium.org/1104243003

git-svn-id: svn://svn.chromium.org/blink/trunk@194550 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Replace FilterData::boundaries with Filter::filterRegion()
Stores the same value when Filter is an SVGFilter (which it always is
in SVGFilterPainter.)

BUG=109224

Review URL: https://codereview.chromium.org/1108763004

git-svn-id: svn://svn.chromium.org/blink/trunk@194545 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
[New Multicolumn] Only the nearest ancestral flow thread may serve as a containing flow thread.
Prevent spanners and out-of-flow objects from returning an outer flow thread
(nested multicol). If the nearest flow thread doesn't serve as a flow thread
containing block, then have no flow thread containing block at all. This seals
each multicol context a bit better from any other multicol contexts that may
exist.

Also removed a suspicious call to parent()->flowThreadContainingBlock(). This
was required during early development stages of column-span:all support, but
not any more.

BUG=480965
R=dsinclair@chromium.org,jchaffraix@chromium.org

Review URL: https://codereview.chromium.org/1108633002

git-svn-id: svn://svn.chromium.org/blink/trunk@194529 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Remove SourceGraphic reference from SkiaImageFilterBuilder
Only set, not read. (Last user was SourceAlpha.)

BUG=109224

Review URL: https://codereview.chromium.org/1108823002

git-svn-id: svn://svn.chromium.org/blink/trunk@194527 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
[New Multicolumn] flowThreadTranslationAtOffset() needs to be relative to the flow thread.
When we want to translate from flow thread coordinates to visual coordinates,
we need to return something relative to the top/left of the flow thread, not
something relative to the top/left of the content box of the multicol
container. This distinction matters in RTL mode, since the flow thread is then
positioned at the top/right inside the multicol container.

Added LayoutTests/fast/multicol/client-rects-rtl.html , which is an adaption
for RTL of client-rects.html for RTL. This didn't pass prior to this fix. Also
added an assertion failure test, which is what the original bug report was
about.

BUG=479155
R=dsinclair@chromium.org,jchaffraix@chromium.org

Review URL: https://codereview.chromium.org/1102273004

git-svn-id: svn://svn.chromium.org/blink/trunk@194517 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Check the nullable Document::settings() before accessing.
Add some missing null checks in LinkLoader.

R=yoav@yoav.ws
BUG=481511

Review URL: https://codereview.chromium.org/1107003002

git-svn-id: svn://svn.chromium.org/blink/trunk@194515 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: keep FormData on the heap by default.
R=haraken
BUG=479467

Review URL: https://codereview.chromium.org/1102253002

git-svn-id: svn://svn.chromium.org/blink/trunk@194507 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Throw NoModificationAllowed in SVG*List.removeItem(...) if immutable
BUG=477790

Review URL: https://codereview.chromium.org/1061263005

git-svn-id: svn://svn.chromium.org/blink/trunk@194506 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: have xml/ objects on the heap by default.
Along with moving the XPath objects (and other objects handling
XML processing) to the heap, we're able to retire the XPath
parser's manual tracking of currently constructed XPath
sub-expressions; done so as to be able to destruct those in the
face of parse errors.

With Oilpan, such unreferenced sub-expressions will be unreferenced
and swept out whenever the next GC runs.

R=haraken,tkent
BUG=479467

Review URL: https://codereview.chromium.org/1099613003

git-svn-id: svn://svn.chromium.org/blink/trunk@194504 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Sync the ShadowRoot interface with the spec
http://w3c.github.io/webcomponents/spec/shadow/#the-shadowroot-interface

ShadowRoot.innerHTML has [TreatNullAs=NullString] which is not per spec,
but this seems like an oversight in the spec:
https://www.w3.org/Bugs/Public/show_bug.cgi?id=28549

There are no changes to the generated code, other than order.

BUG=460722

Review URL: https://codereview.chromium.org/1099723004

git-svn-id: svn://svn.chromium.org/blink/trunk@194499 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: have URL object on the heap.
Always allocate {window, worker}.URL on the Oilpan heap.

R=haraken
BUG=479467

Review URL: https://codereview.chromium.org/1092073007

git-svn-id: svn://svn.chromium.org/blink/trunk@194490 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: keep navigation timing objects on the heap by default.
R=haraken
BUG=479467

Review URL: https://codereview.chromium.org/1101123004

git-svn-id: svn://svn.chromium.org/blink/trunk@194481 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: have DOMException be on the heap by default.
R=haraken
BUG=479467

Review URL: https://codereview.chromium.org/1107793002

git-svn-id: svn://svn.chromium.org/blink/trunk@194453 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: have Navigator plugin objects on the heap by default.
R=haraken
BUG=479467

Review URL: https://codereview.chromium.org/1107783002

git-svn-id: svn://svn.chromium.org/blink/trunk@194452 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: have Storage objects reside on the heap by default.
R=haraken
BUG=479467

Review URL: https://codereview.chromium.org/1055133003

git-svn-id: svn://svn.chromium.org/blink/trunk@194451 bbb929c8-8fbe-4397-9dbb-9b2b20218538
davve
Make Resource::switchClientsToRevalidatedResource non-virtual
In https://codereview.chromium.org/1102803002/ the
ImageResource::switchClientsToRevalidatedResource override function
was removed. Resource::switchClientsToRevalidatedResource can now be
non-virtual and made private.

Review URL: https://codereview.chromium.org/1109663002

git-svn-id: svn://svn.chromium.org/blink/trunk@194447 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: have Navigator and its supplements be on the heap by default.
R=haraken
BUG=479467

Review URL: https://codereview.chromium.org/1101263003

git-svn-id: svn://svn.chromium.org/blink/trunk@194442 bbb929c8-8fbe-4397-9dbb-9b2b20218538
davve
Remove the pending container size requests list
Trust ImageResource::setContainerSizeForLayoutObject to be called
through ImageResource::notifyObservers when the image has loaded.
Given that, we will already get notifications about the up-to-date
containerSize and containerZoom and there is no need for keeping
around a list of pending container sizes and zooms to send when the
image is created.

As to why we can trust ImageResource::notifyObservers to call back
into ImageResource::setContainerSizeForLayoutObject,
https://codereview.chromium.org/22482004 added a
updateInnerContentRect() call taking care of calling
ImageResource::setContainerSizeForLayoutObject when the image's paint
has been invalidated.

Review URL: https://codereview.chromium.org/1102803002

git-svn-id: svn://svn.chromium.org/blink/trunk@194439 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Do not invoke async method on a GC-unreachable object.
For AsyncMethodRunner<Target> where Target is a garbage collected type,
we cannot have the async method runner safely call a method on an object
instance if that object has been determined as being unreachable by the
GC marking phase, but it _or_ any of the objects that it refers to hasn't
been swept yet.

This aligns the treatment of AsyncMethodRunner<> over garbage collected
objects with that of Timer<>.

R=haraken
BUG=420515

Review URL: https://codereview.chromium.org/1108663002

git-svn-id: svn://svn.chromium.org/blink/trunk@194437 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: have Console be on the heap by default.
Enable Oilpan for Console and its supplement.

R=haraken
BUG=479467

Review URL: https://codereview.chromium.org/1063513007

git-svn-id: svn://svn.chromium.org/blink/trunk@194434 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Avoid transiently creating disallowed elements when building <use> trees
When building a shadow tree for a <use>, a direct reference to a
"disallowed" element would cause the element to first be inserted before
buildShadowTree() noticed it's disallowed and returns false, so it's
removed again.
This transient mutation could take place while computing an animation
update, if a CSS property was being animated and the layout tree/style
was dirty.
Avoid the insert-remove sequence by checking if the initial target is
disallowed up-front. This matches how it's done in the general subtree
building case inside buildShadowTree().

BUG=478549

Review URL: https://codereview.chromium.org/1105873002

git-svn-id: svn://svn.chromium.org/blink/trunk@194421 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
[New Multicolumn] Prevent SVG foreignObject from becoming a spanner.
BUG=480387,480393
R=dsinclair@chromium.org,jchaffraix@chromium.org

Review URL: https://codereview.chromium.org/1107673004

git-svn-id: svn://svn.chromium.org/blink/trunk@194417 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
[New Multicolumn] Don't enter child multicol contexts when processing object insertions / removals.
If we were to process a descendant flow thread and its descendants, we would
need to descend into it properly, by calling flowThreadDescendantWasInserted()
/ flowThreadDescendantWillBeRemoved() on the inner flow thread for all its
children (instead of erroneously pretending that the inner flow thread's
children were part of the outer flow thread). But instead of doing all that,
just skip the whole thing. When whole subtrees are inserted or removed, it's
typically done via moveChildTo() & co, and we can safely leave inner flow
threads (and their associated column sets and spanner placeholders) as they
are. The move will not affect them. They will be exactly as much multicol
before and after the move.

Also rename a local variable from |nextRenderer| to |objectAfterSubtree| to
avoid confusion with the new variable |next|.

Similarly, only update the flow thread state flag for the objects that actually
belong to a given flow thread (i.e. don't descend into descendant flow
threads).

BUG=479126
R=dsinclair@chromium.org,jchaffraix@chromium.org

Review URL: https://codereview.chromium.org/1109513002

git-svn-id: svn://svn.chromium.org/blink/trunk@194402 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mateuszs
Removed obsolete float_util.h as VS2013 supports standards well enough.
BUG=

Review URL: https://codereview.chromium.org/1076443002

Cr-Commit-Position: refs/heads/master@{#326781}
sigbjornf
Oilpan: have History on the heap by default.
R=haraken
BUG=479467

Review URL: https://codereview.chromium.org/1109493003

git-svn-id: svn://svn.chromium.org/blink/trunk@194390 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
IDL: Handle the [Unscopeable, RuntimeEnabled=X] combination better
If a runtime enabled attribute or method is unscopeable, then add it to
the @@unscopables object only if the feature is enabled. This is a
marginal change, but it does ensure that features don't leave detectable
artifacts when disabled.

BUG=462916

Review URL: https://codereview.chromium.org/1081853003

git-svn-id: svn://svn.chromium.org/blink/trunk@194384 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix HeapVectorShrinkInlineCapacity test with ASan enabled.
If 'contiguous container' overflow checking is enabled, vector inline
buffers aren't supported. Adjust test accordingly.

R=
BUG=420515

Review URL: https://codereview.chromium.org/1092223002

git-svn-id: svn://svn.chromium.org/blink/trunk@194375 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: have Screen be on the heap by default.
R=haraken
BUG=479467

Review URL: https://codereview.chromium.org/688993002

git-svn-id: svn://svn.chromium.org/blink/trunk@194367 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ed
[svg] Update the <use> shadowtree if a referenced element is removed.
BUG=477601

Review URL: https://codereview.chromium.org/1087653004

git-svn-id: svn://svn.chromium.org/blink/trunk@194363 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: expand size of vector backing container when finalizing.
The finalization of vector buffers will currently finalize all slots
in the buffer, as the actually used subsequence cannot be determined by
the buffer. Hence, the buffer finalization needs to expand the size of
the container before iterating over the slots so as to avoid ASan
container overflow checks reporting false negatives.

R=haraken
BUG=475801

Review URL: https://codereview.chromium.org/1104803002

git-svn-id: svn://svn.chromium.org/blink/trunk@194360 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Enable Oilpan for core/clipboard/
Enable Oilpan by default for the DataTransfer* and DataObject* interface
objects.

R=haraken
BUG=479467

Review URL: https://codereview.chromium.org/640303002

git-svn-id: svn://svn.chromium.org/blink/trunk@194347 bbb929c8-8fbe-4397-9dbb-9b2b20218538
bratell
Add #include <algorithm> to code that is missing it.
Including <algorithm> is compile time expensive but not including it
when it's used causes compiler errors when other code removes their
includes of <algorithm>.

To prevent possible future compilation errors with C++11 stl, I've
also added #include <utility> to headers that use std::swap since
<algorithm> isn't certain to provide std::swap.

R=thakis@chromium.org

Review URL: https://codereview.chromium.org/1088843002

git-svn-id: svn://svn.chromium.org/blink/trunk@194281 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r194270.
R=haraken
BUG=275851
NOTRY=true

Review URL: https://codereview.chromium.org/1097063003

git-svn-id: svn://svn.chromium.org/blink/trunk@194277 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
IDL: Drop [PerContextEnabled] extended attribute
It is no longer used, and adds complexity to the code generator.

BUG=465624

Review URL: https://codereview.chromium.org/1107523002

git-svn-id: svn://svn.chromium.org/blink/trunk@194275 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
favor DCHECK_CURRENTLY_ON for better logs in components/ (part 2)
BUG=466848

Review URL: https://codereview.chromium.org/1043013002

Cr-Commit-Position: refs/heads/master@{#326483}
wmaslowski
Accessing directories in extensions should not cause content verifier failure.
BUG=479598

Review URL: https://codereview.chromium.org/1105493002

Cr-Commit-Position: refs/heads/master@{#326480}
jl
Reland of IDL: Add support for [Unscopeable] on attributes and methods
Adding [Unscopeable] to an attribute or method means it won't be found
during name lookup with an object that has the attribute or method in
the scope (i.e. using the "with" statement.)

The mechanism that makes this happen is that the interface prototype
object has a property named @@unscopables that is an object with a
property for every unscopeable member named as the member.

BUG=462916

Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=194091

Review URL: https://codereview.chromium.org/1085453003

git-svn-id: svn://svn.chromium.org/blink/trunk@194272 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Enable Oilpan for core/timing/.
R=haraken
BUG=479467

Review URL: https://codereview.chromium.org/693483004

git-svn-id: svn://svn.chromium.org/blink/trunk@194227 bbb929c8-8fbe-4397-9dbb-9b2b20218538
davve
Tighten assertions around StyleImage::computeIntrinsicDimensions
By initializing to fixed we can assume not only that the intrinsic
lengths should not be percentage but also that they should be fixed.

BUG=479687

Review URL: https://codereview.chromium.org/1096993003

git-svn-id: svn://svn.chromium.org/blink/trunk@194220 bbb929c8-8fbe-4397-9dbb-9b2b20218538
haavardm
Report the connect status of the oldest connection in the socket pool.
This CL implements a combination of the suggestions 1) and 2)
and comment #1 in crbug.com/462808. This reduces the number of
calls to GetLoadState. However the status might be less accurate
as we are far from guaranteed that the oldest connection is the
one which has come the furthest. This should be acceptable though,
as the state is mainly used report activity or at which stage
connections are hung at.

BUG=462808

Review URL: https://codereview.chromium.org/1091793002

Cr-Commit-Position: refs/heads/master@{#326244}
sigbjornf
Revert "Re-factor VisibleSelectionTest for adding tests for composed tree version"
This reverts commit 52847e6579f5703d41a96349992b79f1ae258b98.

Reason for revert:
Breaks Android Builder (dbg) compilation,

http://build.chromium.org/p/chromium.webkit/builders/Android%20Builder%20(dbg)/builds/43678

(and Oilpan compilation.)

Original issue's description:
> Re-factor VisibleSelectionTest for adding tests for composed tree version
>
> This patch changes |VisibleSelectionTest| for adding tests for composed tree
> version easier with introducing shadow tree related tests.
>
> This patch also introduces |Node| and |Position| for ease of writing and
> debugging gTest.
>
> This patch is result of collaboration work with hajimehoshi@chromium.org
> for selection of web components. After this patch, we are going to implement
> another strategies for the composed tree. We've already
> prepared that at http://crrev.com/1009603011.
>
> BUG=275851
> TEST=n/a; No behavior changes.
>
> Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=194195

TBR=yosin,tkent
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=275851

Review URL: https://codereview.chromium.org/1055633004

git-svn-id: svn://svn.chromium.org/blink/trunk@194197 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r194169.
TBR=oilpan-reviews
BUG=476735
NOTRY=true

Review URL: https://codereview.chromium.org/1095323004

git-svn-id: svn://svn.chromium.org/blink/trunk@194196 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
favor DCHECK_CURRENTLY_ON for better logs in chrome/browser/custom_handlers/
BUG=466848

Review URL: https://codereview.chromium.org/1031083004

Cr-Commit-Position: refs/heads/master@{#326120}
mstensho
[New Multicolumn] Disallow spanners inside floats and absolutely positioned boxes.
Since the logical top of a float or absolutely positioned box isn't (guaranteed
to be) known until after layout, we get problems determining the logical height
of the flow thread portion preceding the spanner, which in turn means that
we'll get column balancing wrong. The usefulness of spanners inside floats or
absolutely positioned boxes is questionable, so just disallow spanners inside
such boxes for now.

BUG=479085
R=dsinclair@chromium.org,jchaffraix@chromium.org

Review URL: https://codereview.chromium.org/1100823002

git-svn-id: svn://svn.chromium.org/blink/trunk@194152 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r194136.
TBR=oilpan-reviews
BUG=477557
NOTRY=true

Review URL: https://codereview.chromium.org/1060193006

git-svn-id: svn://svn.chromium.org/blink/trunk@194145 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Throw exception if querying SVGAnimationElement with unresolved interval
http://www.w3.org/TR/SVG11/animate.html#__svg__SVGAnimationElement__getStartTime
http://www.w3.org/TR/SVG11/animate.html#__svg__SVGAnimationElement__getSimpleDuration

Matches Gecko.

BUG=477828

Review URL: https://codereview.chromium.org/1088933005

git-svn-id: svn://svn.chromium.org/blink/trunk@194141 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
HeapTest.HeapVectorPartObjects: fix reserveCapacity() expectation.
The size argument to reserveCapacity() is a lower bound, adjust the
tests accordingly.

TBR=haraken,tkent
BUG=475801

Review URL: https://codereview.chromium.org/1098953003

git-svn-id: svn://svn.chromium.org/blink/trunk@194138 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Make CSSKeyframesRule.insertRule an alias of appendRule
As opposed to the other way around, as insertRule is deprecated.

BUG=470400

Review URL: https://codereview.chromium.org/1091283005

git-svn-id: svn://svn.chromium.org/blink/trunk@194122 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Derive the SourceAlpha filter input from SourceGraphic
Let the SourceAlpha FilterEffect wrap a FilterEffect rather than just
getting the SourceGraphic reference from the SkiaImageFilterBuilder.
This makes the DAG constructed for a url(...) reference within a
<filter-function-list> only have a single input - SourceGraphic.

Matches Gecko-behavior for 'filter'.

BUG=109224

Review URL: https://codereview.chromium.org/1056353003

git-svn-id: svn://svn.chromium.org/blink/trunk@194115 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Refactored compound selector parsing methods.
Methods for adding simple selectors to compound selectors had names like
rewriteSpecifiers. This CL tries to make more sense to it and adds
documentation for the not-so-straightforward ways of adding simple
selectors.

Renamed tagIsForNamespaceRule to tagIsImplicit as that is what it means.
The type selector is necessary as a placeholder for use during selector
matching, but not necessary to add to the serialization.

What complicates this code a lot, is the fact that we can have one or
more implicit ShadowPseudo combinators within the same compound selector,
as seen by the parser, which means it's really multiple compound
selectors. Handling these implicit combinators as true combinators in the
parser could simplify this code. See added TODO.

R=timloh@chromium.org

Review URL: https://codereview.chromium.org/1094213002

git-svn-id: svn://svn.chromium.org/blink/trunk@194107 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove the allowfullscreen exemption for the video-specific fullscreen API
Intent to Remove:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/3NukIuOaU4c/Boab2WxzhBYJ

Prompted by a question from Ali Alabbas (Microsoft) on blink-dev:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/f-V2GWatXkA/nvdHJ3xihMkJ

TEST=LayoutTests/media/video-controls-fullscreen-iframe.html

This test ensures that the allowfullscreen attribute is still not
required for <video controls>, even though it is for the API call.

BUG=346236

Review URL: https://codereview.chromium.org/1058783006

git-svn-id: svn://svn.chromium.org/blink/trunk@194106 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: HeapVectorBacking should call destructors for its elements
Currently HeapVectorBacking does not call destructors of its elements
and is leaking the objects. We must call them.

R=tkent
BUG=475801
TEST=HeapTest.VectorDestructors
TEST=HeapTest.DequePartObjectsExpand
TEST=HeapTest.HeapVectorPartObjects

Review URL: https://codereview.chromium.org/1086413003

git-svn-id: svn://svn.chromium.org/blink/trunk@194100 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Update a Web Animations spec link
https://github.com/w3c/web-animations/issues/89

BUG=460722
NOTRY=true

Review URL: https://codereview.chromium.org/1099063002

git-svn-id: svn://svn.chromium.org/blink/trunk@194097 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
IDL: Add support for [Unscopeable] on attributes and methods
Adding [Unscopeable] to an attribute or method means it won't be found
during name lookup with an object that has the attribute or method in
the scope (i.e. using the "with" statement.)

The mechanism that makes this happen is that the interface prototype
object has a property named @@unscopables that is an object with a
property for every unscopeable member named as the member.

BUG=462916

Review URL: https://codereview.chromium.org/1085453003

git-svn-id: svn://svn.chromium.org/blink/trunk@194091 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mpawlowski
Sync typed urls with typed_cont() == 0
When the user types "google.com" into the address bar, the server will
redirect him to "www.google.com" (or a regional equivalent). The redirected
URL will have PAGE_TRANSITION_TYPED but typed_count() == 0. We still want
to Sync such URL, otherwise the receiving client will only see "google.com"
with PAGE_TRANSITION_CHAIN_START and without the matching _CHAIN_END.
Additionally, the history view won't show that "google.com" URL because
VisitDatabase::GetVisibleVisitsInRange filters out results that don't
match PAGE_TRANSITION_CHAIN_END.

BUG=

Review URL: https://codereview.chromium.org/1087773002

Cr-Commit-Position: refs/heads/master@{#325990}
sigbjornf
Oilpan: rename GCState and GCReason values to reflect function only.
Rename ThreadState::GCScheduledForTesting to ThreadState::FullGCScheduled
and Heap::ForcedGCForTesting to Heap::ForcedGC. That is, just reflect
their purpose, and have the names no longer include the context where
they're often, but not always, used (testing code to flush out garbage.)

R=haraken
BUG=478613

Review URL: https://codereview.chromium.org/1097443004

git-svn-id: svn://svn.chromium.org/blink/trunk@194046 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Document the Web Animation interfaces with spec links and TODOs
Almost all of these interfaces are out of sync with the latest spec,
only the two dictionaries were close enough to make it worthwhile to
document the differences on a per-member level.

BUG=460722

Review URL: https://codereview.chromium.org/1092203002

git-svn-id: svn://svn.chromium.org/blink/trunk@194042 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Drop some dead code from FilterEffect
Remove the following and associated getters/setters:

 FilterEffect::m_alphaImage
 FilterEffect::m_resultColorSpace
 FilterEffect::clearResultsRecursive()
 FilterEffect::getSourceRect()

Also remove declarations that lack definitions and a few unused
includes.

Review URL: https://codereview.chromium.org/1097053004

git-svn-id: svn://svn.chromium.org/blink/trunk@194041 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Add UseCounters for CSS-related *List interfaces with item() methods
By request from Simon Pieters (CSSOM editor) measure the usage of the
item() method on the three interfaces that are currently marked as
[ArrayClass]. This is to determine the feasibility of removing the usage
of [ArrayClass] by using "real" arrays instead. That won't be possible
in the case of MediaList, because that interface has other members, but
measure it anyway in case some option emerges where removing
MediaList.item() would in some way help.

Also add a UseCounter for StyleSheetList's anonymous named getter, which
is the only other thing blocking array conversion of that interface.

Review URL: https://codereview.chromium.org/1072403008

git-svn-id: svn://svn.chromium.org/blink/trunk@194040 bbb929c8-8fbe-4397-9dbb-9b2b20218538
davve
Rid ourselves of unnecessary expected files
Get rid of -expected.txt files from SVG baseline files by removing
text from the DOM. Having text elements linger classifies the tests as
'text' and requires them to have expected files. By cleaning up the
text elements before test ends, we can get rid of the expected files.

BUG=476344

Review URL: https://codereview.chromium.org/1097933002

git-svn-id: svn://svn.chromium.org/blink/trunk@194030 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ed
Avoid assert for isLegacyIntrinsic too.
BUG=477786

Review URL: https://codereview.chromium.org/1095053002

git-svn-id: svn://svn.chromium.org/blink/trunk@194029 bbb929c8-8fbe-4397-9dbb-9b2b20218538
davve
Limit recent SVG baseline tests to a stable subset
For currently unknown reasons, some baseline-shift and
alignment-baseline values does not result in stable positions across
zoom levels on the Windows bots.

See win_blink_rel failures in
https://codereview.chromium.org/1081813003/ for patch set 4 for
details. The issue does not however reproduce in a Win7 VM.

Leave these problematic values out and remove TestExpectations line.

BUG=476344, 478703

Review URL: https://codereview.chromium.org/1052373007

git-svn-id: svn://svn.chromium.org/blink/trunk@194028 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r194009.
Arrange for SVGPropertyTearOff.h to be able to #include SVGElement.h,
so as to avoid any SVGElement visibility breakages downstream.

R=haraken,kouhei
BUG=477527
NOTRY=true

Review URL: https://codereview.chromium.org/1097893003

git-svn-id: svn://svn.chromium.org/blink/trunk@194023 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r194000.
TBR=oilpan-reviews
BUG=477533
NOTRY=true

Review URL: https://codereview.chromium.org/1090273005

git-svn-id: svn://svn.chromium.org/blink/trunk@194006 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Sync the ChildNode and ParentNode interfaces with the spec
There are no changes to the generated code.

BUG=460722

Review URL: https://codereview.chromium.org/1092113004

git-svn-id: svn://svn.chromium.org/blink/trunk@193987 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
ScriptedAnimationController: factor out has-schedulable items predicate.
Common up the logic controlling the servicing/scheduling of animation
events & actions. No change in functionality.

R=
BUG=

Review URL: https://codereview.chromium.org/1093803002

git-svn-id: svn://svn.chromium.org/blink/trunk@193983 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jiangj
Reland: Fix errors found in Mac gn component builds
This is relanding https://codereview.chromium.org/1087873003 which was
reverted in https://codereview.chromium.org/1089773003/.

Mac gn component build fail because of missing frameworks and missing some other
dependencies, and occasionally file list out of sync with the gyp counterpart:
http://build.chromium.org/p/tryserver.chromium.mac/builders/mac_chromium_gn_dbg/builds/321/steps/compile/logs/stdio

For instance, the frameworks linked in the components that sync depends on is not
automatically linked into sync, thus revealing the issue.

BUG=477710

Review URL: https://codereview.chromium.org/1098513002

Cr-Commit-Position: refs/heads/master@{#325771}
sigbjornf
Oilpan: fix build after r193963.
TBR=oilpan-reviews
BUG=477830
NOTRY=true

Review URL: https://codereview.chromium.org/1092793008

git-svn-id: svn://svn.chromium.org/blink/trunk@193969 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r193951.
TBR=oilpan-reviews
BUG=463143
NOTRY=true

Review URL: https://codereview.chromium.org/1092973003

git-svn-id: svn://svn.chromium.org/blink/trunk@193964 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Move FilterEffectRenderer to core/paint/
Also some minor include cleanups.

Review URL: https://codereview.chromium.org/1092673002

git-svn-id: svn://svn.chromium.org/blink/trunk@193956 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Add a "logical query mode" to SVGTextQuery
This CL adds an additional query "mode" to use for some of the query
functions. This new methods searches "logically" - using the layout
objects rather than the line boxes to guide the search. The existing
method is renamed to spatialQuery, leaving us with:

  spatialQuery() - for point -> something
  logicalQuery() - for character (code unit) -> something

This new search-order is needed to handle bi-directionality correctly.
Previously the direction of the text would influence the search, since
the line boxes would be processed in their spatial-ordering and the
search position would be adjusted based on that ordering. (As an
example, this would mean that given:

  <text direction="rtl">ltrRTL</text>

and a query range [2, 4], the third character of the RTL run and the
first character of the ltr run would be included rather than the other
way around. See also new test in bidi-getsubstringlength.html)

The value returned by getCharNumAtPosition() is adjusted such that the
layout object of the intersected glyph is used to determine the
character index based on the query root (the element on which the
method is called.) This means that the value returned is in the same
query space as that handled by logicalQuery().

BUG=471205,470326

Review URL: https://codereview.chromium.org/1083073002

git-svn-id: svn://svn.chromium.org/blink/trunk@193944 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ed
Avoid ASSERT_NOT_REACHED in blink::floatValueForLength.
BUG=477786

Review URL: https://codereview.chromium.org/1083083005

git-svn-id: svn://svn.chromium.org/blink/trunk@193937 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
ScreenOrientationController: task-based dispatching of change events.
Move ScreenOrientationController over to posting a task for dispatching
its async change events. That is, no longer use a one-shot timer.

R=mlamouri
BUG=

Review URL: https://codereview.chromium.org/1089523002

git-svn-id: svn://svn.chromium.org/blink/trunk@193927 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ed
Update histograms.xml.
Review URL: https://codereview.chromium.org/1089933003

Cr-Commit-Position: refs/heads/master@{#325609}
fs
Drop clip-rule setup from LayoutSVGResourceClipper::createContentPicture
After https://codereview.chromium.org/1052873003, SVGShapePainter will
pick the right fill rule to use (based on the PaintInfo flags.)

Review URL: https://codereview.chromium.org/1093623002

git-svn-id: svn://svn.chromium.org/blink/trunk@193889 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jiangj
Fix errors found in Mac gn component builds
Mac gn component build fail because of missing frameworks and missing some other
dependencies, and occasionally file list out of sync with the gyp counterpart:
http://build.chromium.org/p/tryserver.chromium.mac/builders/mac_chromium_gn_dbg/builds/321/steps/compile/logs/stdio

For instance, the frameworks linked in the components that sync depends on is not
automatically linked into sync, thus revealing the issue.

Review URL: https://codereview.chromium.org/1087873003

Cr-Commit-Position: refs/heads/master@{#325479}
sigbjornf
Oilpan: assert that new Persistents belong to Oilpan threads.
R=haraken
BUG=477577

Review URL: https://codereview.chromium.org/1089763002

git-svn-id: svn://svn.chromium.org/blink/trunk@193882 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Removed unused argument in CSSSelectorParser.
Two of the methods for rewriting specifiers had an unused elementName
parameter. Removed it.

R=timloh@chromium.org

Review URL: https://codereview.chromium.org/1095533002

git-svn-id: svn://svn.chromium.org/blink/trunk@193877 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ed
Add UseCounter for SVGURIReference.href.baseVal/animVal.
Review URL: https://codereview.chromium.org/1086873004

git-svn-id: svn://svn.chromium.org/blink/trunk@193870 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
[New Multicolumn] Disallow multicol on ruby elements.
Avoids an assertion failure and general confusion.

BUG=477469
R=dsinclair@chromium.org,jchaffraix@chromium.org

Review URL: https://codereview.chromium.org/1092453003

git-svn-id: svn://svn.chromium.org/blink/trunk@193868 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r193843.
TBR=oilpan-reviews
BUG=416735
NOTRY=true

Review URL: https://codereview.chromium.org/1082403003

git-svn-id: svn://svn.chromium.org/blink/trunk@193848 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Add a comment about counter availability in M43 branch
R=jochen@chromium.org
NOTRY=true

Review URL: https://codereview.chromium.org/1088483005

git-svn-id: svn://svn.chromium.org/blink/trunk@193816 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jiangj
Keep Mac sources that shouldn't been removed for gn builds
To match blink_platform.gyp.

Review URL: https://codereview.chromium.org/1056373003

git-svn-id: svn://svn.chromium.org/blink/trunk@193806 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Revert recent changes to the Fullscreen UA style sheet
This reverts four recent CLs:

 * Match the Fullscreen spec's CSS as far as currently practical:
   https://codereview.chromium.org/974783002

 * Move translate:none to the standard Fullscreen UA style sheet:
   https://codereview.chromium.org/1014853003

 * Remove border and padding from iframes in fullscreen:
   https://codereview.chromium.org/1032113002

 * Move iframe border/padding to the standard Fullscreen UA style sheet:
   https://codereview.chromium.org/1032253002

There are multiple unresolved regressions due to the changes:

 * Weird distorted page seen after exiting from full screen mode in
   Sleepy Jack app:
   https://code.google.com/p/chromium/issues/detail?id=468278

 * 'Print Preview' fails on 'Awesome-3d-clock' app:
   https://code.google.com/p/chromium/issues/detail?id=470057

 * Unable to toggle out of fullscreen mode after clicking on
   'fullscreen' icon for "cordy" app:
   https://code.google.com/p/chromium/issues/detail?id=475829

These are release blockers and will take some time to investigate, so
revert for this release.

BUG=402378

Review URL: https://codereview.chromium.org/1058083003

git-svn-id: svn://svn.chromium.org/blink/trunk@193799 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Move createColorSpaceFilter from ImageBuffer to ColorSpaceUtilities
Loose method that lacks a strong association with ImageBuffer.

Review URL: https://codereview.chromium.org/1083213004

git-svn-id: svn://svn.chromium.org/blink/trunk@193789 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
IDL: Improve "includes for type" mechanism in various ways
- Optionally pass extended attributes along with the type, so that the
  includes generated can depend on it. (This is not needed now, but will
  be in the future.)

- Add includes for the types of method arguments, getters and setters.

- Cleanup some (now) redundant calls to add_includes_for_type() in
  v8_types.py that interfered with the next item.

- Don't add includes relating to "invisible" methods. Invisible methods
  are those that come from partial interfaces, and that won't actually
  be implemented in the compilation unit being generated. Adding such
  includes meant that files under bindings/core/ would sometimes include
  headers from bindings/modules/ (without depending on the contents of
  those headers).

BUG=358074

Review URL: https://codereview.chromium.org/1086113002

git-svn-id: svn://svn.chromium.org/blink/trunk@193787 bbb929c8-8fbe-4397-9dbb-9b2b20218538
davve
Remove effective zoom from font metrics before SVG text layout.
Since https://codereview.chromium.org/308123010 and
https://codereview.chromium.org/323053002, the effectiveZoom is
included in the style's font. This patch adds missing code to
SVGTextLayoutEngineBaseline to remove the effective zoom before
computing baseline and advance.

BUG=476344

Review URL: https://codereview.chromium.org/1081813003

git-svn-id: svn://svn.chromium.org/blink/trunk@193786 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Allow "::content /deep/" to match.
Add loop for matchForShadowDistributed to support ::content left of
/deep/ combinator like we do for descendant and child combinators.

R=hayato@chromium.org
BUG=453437

Review URL: https://codereview.chromium.org/1082023003

git-svn-id: svn://svn.chromium.org/blink/trunk@193748 bbb929c8-8fbe-4397-9dbb-9b2b20218538
bratell
Move an include guard to guard all code in base/move.h
gcc -H warned about base/move.h missing an include guard and it was
because the existing include guard didn't encompass all the code in the
file.

This fixes that warning and maybe makes compilations one nanosecond
faster.

The code outside the include guard was added Oct 2014 when fixing bug
418297.

BUG=418297

Review URL: https://codereview.chromium.org/1082263002

Cr-Commit-Position: refs/heads/master@{#325132}
jiangj
Remove duplicate -std=gnu++11 flag for Mac gn build
It's already added when is_clang is true, which is always the case on
Mac.

BUG=336487

Review URL: https://codereview.chromium.org/1083963002

Cr-Commit-Position: refs/heads/master@{#325090}
ljagielski
sys_info_linux: positive return value of MaxSharedMemorySize for 32-bit build on 64-bit host.
Previous implementation caused DCHECK when value exceeded 32-bit size_t.

BUG=

Review URL: https://codereview.chromium.org/1000933002

Cr-Commit-Position: refs/heads/master@{#325034}
sigbjornf
Tidy HTMLImportsController::supplementName()
R=haraken

Review URL: https://codereview.chromium.org/1088873002

git-svn-id: svn://svn.chromium.org/blink/trunk@193699 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Removed unnecessary input selectors from html.css.
The first input selector will always match the two following ones. The
only reason for having the additional ones would be for specificity. By
inspection, I couldn't find that was the case. Removing.

Review URL: https://codereview.chromium.org/1055743005

git-svn-id: svn://svn.chromium.org/blink/trunk@193687 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
collectAllGarbage(): bail on reaching fixed point.
To root out objects that become unreachable and dead once persistent
references to them are finalized, we're forced to iteratively GC when
wanting to sweep out all garbage. But no need to continue doing it
after the live object set has stabilized.

R=haraken
BUG=420515

Review URL: https://codereview.chromium.org/1079993002

git-svn-id: svn://svn.chromium.org/blink/trunk@193682 bbb929c8-8fbe-4397-9dbb-9b2b20218538
tmoniuszko
Fix gn_all deps when enable_configuration_policy=false
BUG=

Review URL: https://codereview.chromium.org/1079083003

Cr-Commit-Position: refs/heads/master@{#325018}
bratell
Removing unused function WTF::appendNumber
WTF::appendNumber can append a number as decimal characters to a
Vector of things that accept characters. It is not a string method
and nobody is using it so we have no reason to keep it.

BUG=

Review URL: https://codereview.chromium.org/1059523004

git-svn-id: svn://svn.chromium.org/blink/trunk@193677 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ed
Spring cleaning: remove isSupportedAttribute.
Inspired by Darin Adler's WebKit patch:
https://bugs.webkit.org/show_bug.cgi?id=143194

BUG=471771

Review URL: https://codereview.chromium.org/1074813002

git-svn-id: svn://svn.chromium.org/blink/trunk@193650 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mathiash
Make service tab launcher a component
BUG=473011

Review URL: https://codereview.chromium.org/1057533005

Cr-Commit-Position: refs/heads/master@{#324850}
bratell
Better handling of broken applet codebase
A broken codebase would result in using an invalid url as base url in
the KURL constructor and that never results in anything useful (could
even crash). Since HTMLAppletElement is deprecated and badly documented
the goal of this patch is mostly to avoid the known badness and not to
make HTMLAppletElement perfect.

R=fs@opera.com

BUG=374110

Review URL: https://codereview.chromium.org/1079953002

git-svn-id: svn://svn.chromium.org/blink/trunk@193633 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Don't clear FontFaceCache if no @font-face were removed.
AnalyzedStyleUpdate will end up with a Reconstruct for the StyleResolver
and a if we remove stylesheets which do not contain @font-face rules and
don't contain any other rules that will cause dirtiesAllStyle() to be
true. Skip clearing the font cache in those cases.

As part of understanding how the AnalyzedStyleUpdate works, I wrote a few
unit tests for compareStyleSheets. This method looks fragile and doesn't
seem to work well when stylesheets are added and removed at the same time.
I haven't found a way to trigger a real bug yet, as we don't seem to be
using AnalyzedStyleUpdate for a case where the active stylesheet list
changes in a way that triggers this bug.

BUG=471079,475858

Review URL: https://codereview.chromium.org/1076163002

git-svn-id: svn://svn.chromium.org/blink/trunk@193625 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Clear LayoutSVGText's frame rect if no line boxes are produced
The frame rect is normally updated from
SVGRootInlineBox::computePerCharacterLayoutInformation(), but if the
children are empty, there'll be no such boxes and the frame rect won't
be updated.

BUG=474275

Review URL: https://codereview.chromium.org/1078193002

git-svn-id: svn://svn.chromium.org/blink/trunk@193559 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: adjust AnimationTimeline finalization.
With Oilpan, explicitly disconnecting its animation players is not needed;
the ExecutionContext's weak reference will be transparently take care of
this instead.

While here, merge the timeline finalization steps into a detach operation
for AnimationPlayer.

TBR=dstockwell,oilpan-reviews
BUG=472307

Review URL: https://codereview.chromium.org/1080523002

git-svn-id: svn://svn.chromium.org/blink/trunk@193552 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Cleanup resolving of 'em' units in SVGLengthContext
With the 'rem' unit added, there's some duplication, since the only
difference between 'em' and 'rem' is where the style comes from.
By splitting the resolution of the style out of the methods that
convert to/from 'em' (and 'rem'), the same two functions can be used
to compute the results in both the 'em' and 'rem' case - just feeding
them with different ComputedStyle objects.

BUG=368598,470449

Review URL: https://codereview.chromium.org/1065223003

git-svn-id: svn://svn.chromium.org/blink/trunk@193547 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ed
Move test from fast to svg/parser, and split it.
This should hopefully make the individual parts fast enough
to not timeout. The slowness is most likely due to the
amount of console output that this test generates.

BUG=446356

Review URL: https://codereview.chromium.org/1078663002

git-svn-id: svn://svn.chromium.org/blink/trunk@193533 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r193519.
TBR=oilpan-reviews
BUG=275851
NOTRY=true

Review URL: https://codereview.chromium.org/1075123002

git-svn-id: svn://svn.chromium.org/blink/trunk@193526 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
SVGLength: Avoid reading out-of-bounds when parsing incorrect 'rem' unit
The read/check of the third char ('m') could end up reading outside the
buffer if unlucky.

BUG=368598, 470449

Review URL: https://codereview.chromium.org/1069213003

git-svn-id: svn://svn.chromium.org/blink/trunk@193523 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Support non-function object values assigned to EventHandler attributes
In HTML, the type EventHandler, used for event handler IDL attributes,
is defined

  [TreatNonObjectAsNull]
  callback EventHandlerNonNull = any (Event event);

  typedef EventHandlerNonNull? EventHandler;

Aside from treating non-object values as null, the extended attribute
means non-callable object values should be allowed by the attribute's
setter (and returned by its getter) and should be treated as if they
were no-op functions returning undefined.

BUG=475428

Review URL: https://codereview.chromium.org/1076783002

git-svn-id: svn://svn.chromium.org/blink/trunk@193516 bbb929c8-8fbe-4397-9dbb-9b2b20218538
tsniatowski
jinja2: make templates outside of // work again
A recent CL -- http://crrev.com/1002313002 -- made the jinja wrapper script
barf on templates located outside CHROMIUM_SRC (the used Jinja2 loader
disallows template paths with '..' components). While not actively used
currently in the Chromium build, it is a somewhat useful feature of the
wrapper that used to work.

Fix by instatiating the jinja template loader with a configurable path as the
search directory, rather than a hardcoded CHROMIUM_SRC. Usages with templates
outside CHROMIUM_SRC now must pass an appropriate --loader-base-dir value
to the wrapper script.

R=cjhopman,jbudorick
BUG=

Review URL: https://codereview.chromium.org/1077553002

Cr-Commit-Position: refs/heads/master@{#324597}
rune
Don't force layout for scrollTo(0,0).
The ICB origin will always be a valid scroll position, so there is no
need to force a synchronous layout before setting the scroll position to
(0,0).

R=rbyers@chromium.org
BUG=465574

Review URL: https://codereview.chromium.org/1071983002

git-svn-id: svn://svn.chromium.org/blink/trunk@193490 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Correctly handle updates over attached Attrs involving null values.
Element attributes having a null value are not stored by the ElementData's
attribute collection. When updating an Element-attached Attr with
a new value, which previously was null, correctly handle updates over
null values (before and after.)

R=
BUG=472840

Review URL: https://codereview.chromium.org/1073823002

git-svn-id: svn://svn.chromium.org/blink/trunk@193484 bbb929c8-8fbe-4397-9dbb-9b2b20218538
wdzierzanowski
Align ChannelLayout comments with kChannelOrderings values
The documentation of several ChannelLayout enumerators was at odds with
the values in kChannelOrderings.

Review URL: https://codereview.chromium.org/1078463003

Cr-Commit-Position: refs/heads/master@{#324481}
fs
Handle layer clients in LayoutSVGResourceContainer::registerResource
When registering pending clients on a newly discovered (filter) resource,
make sure to invalidate via the DeprectatedPaintLayer if the client has
one, or the client won't be updated properly.
Make SVGResourcesCache::clientStyleChanged handle non-SVG elements.

This was exposed by scheduler changes that caused flaky behavior in
LayoutTests/css3/filters/effect-reference-rename.html, where the
script:

  document.getElementById("NotMyFilter").id = "MyFilter";

would normally execute before the call to registerResource() that added
MyFilter. With the scheduler these could happen in the opposite order
and trigger the "layoutObject->node()->isSVGElement()" assert.

BUG=453019,432129

Review URL: https://codereview.chromium.org/1068073005

git-svn-id: svn://svn.chromium.org/blink/trunk@193438 bbb929c8-8fbe-4397-9dbb-9b2b20218538
davve
Add metrics for intrinsic and min-intrinsic CSS values
Blink supports the unprefixed and nonstandard values |intrinsic| and
|min-intrinsic| when passed as:

 width: min-intrinsic | intrinsic

If we want to remove them or add them to a specification, use counter
data may be useful.

BUG=475104

Review URL: https://codereview.chromium.org/1051573003

git-svn-id: svn://svn.chromium.org/blink/trunk@193429 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r193369.
TBR=oilpan-reviews
NOTRY=true

Review URL: https://codereview.chromium.org/1074463004

git-svn-id: svn://svn.chromium.org/blink/trunk@193381 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Don't enable @viewport support in inspector emulation.
Author support for @viewport is not enabled on Android and should not be
enabled in mobile emulation mode in the inspector. The idea is that if
@viewport support is enabled by default, it will be enabled on all
platforms, and there will be no need for a switch in the emulation code
of the inspector.

R=dgozman@chromium.org
BUG=467204

Review URL: https://codereview.chromium.org/1062333002

git-svn-id: svn://svn.chromium.org/blink/trunk@193365 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Update the FIXME around event handler attributes on body/frameset
BUG=460722
NOTRY=true

Review URL: https://codereview.chromium.org/1067303004

git-svn-id: svn://svn.chromium.org/blink/trunk@193363 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Explicitly use SkPaint(s) in SVGInlineTextBoxPainter
Move paintForLayoutObject from SVGShapePainter.cpp to SVGPaintContext,
and use it when setting up paints for decorations and text in
SVGInlineTextBoxPainter.
This eliminates the last users of SVGLayoutSupport functions
updateGraphicsContext() and applyStrokeStyleToContext(), as well as
SVGPaintServer::apply().

BUG=424655

Review URL: https://codereview.chromium.org/1070703002

git-svn-id: svn://svn.chromium.org/blink/trunk@193360 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Sync CSS interfaces with the specs
Other than code movement, there are two changes to the generated code:
CSSImportRule.href and StyleSheet.type are made non-nullable, so
v8SetReturnValueString is used instead of v8SetReturnValueStringOrNull.
This doesn't matter, because these never return String() internally. If
they did, the return value would change from null to the empty string.

BUG=460722

Review URL: https://codereview.chromium.org/1054303004

git-svn-id: svn://svn.chromium.org/blink/trunk@193357 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Explicitly use SkPaint(s) in SVGShapePainter
This replaces use of SVGLayoutSupport::updateGraphicsContext to update
the GC-state with code that fills in and uses SkPaints explicitly, and
hence avoids saving GC-state (except for CTM updates).
As a side-effect, the code to handle stroke of zero-length is simplified
significantly.

BUG=424655

Review URL: https://codereview.chromium.org/1052873003

git-svn-id: svn://svn.chromium.org/blink/trunk@193272 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Cache element indices for :nth-child and :nth-last-child selectors.
In order to avoid n^2 for :nth-selectors, we introduce a cache where we
store the index of every kth child of a parent node P the first time the
nth-count is queried for one of its children. The number k is given by
the "spread" constant.

After the cache has been populated for the children of P, the nth-index
for an element will be found by walking the siblings from the element
queried for and leftwards until a cached element/index pair is found.
So populating the cache for P is O(n). Subsequent lookups are best case
O(1), worst case O(k).

The cache is created on the stack when we do operations where we know we
can benefit from having it. Currently, those are querySelector,
querySelectorAll, and updateStyle. We are throwing away the cache after
each operation to avoid holding on to potentially large caches in memory.

R=esprehn@chromium.org
BUG=461878

Review URL: https://codereview.chromium.org/1023393002

git-svn-id: svn://svn.chromium.org/blink/trunk@193268 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Move SVG path blend state to its own object
Create a new inner state object SVGPathBlender::BlendState and move
SVGPathBlender::blendSegments and helpers to it. The per-segment blend*
methods are folded away into blendSegments(). This allows to better
exploit commonalities between the different segment types.
The update of the current point(s) is moved into a helper function.

BUG=467592

Review URL: https://codereview.chromium.org/1056873002

git-svn-id: svn://svn.chromium.org/blink/trunk@193262 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Improve window.closed fidelity.
Have window.close() mark the window object as closing, so that we can
return a more precise result for window.closed immediately upon return.

Otherwise window.closed would only transition to |true| after the deferred
closing operation has gone ahead. This exposes internal details and timing
to scripts, which is preferably avoided.

Spec-wise, for "close a browsing context",

 https://html.spec.whatwg.org/#close-a-browsing-context

window.closed will transition to |true| at the start of step 3, with
unloading&discarding (steps 3-5) being executed asynchronously (when
the deferred close operation runs.) This implies that window.closed
will return true before |pagehide| and |unload| events have been
dispatched as part of step 3 (but _after_ |beforeunload| dispatching
and handling, step 2.) This is not correct with the spec, it should
only happen once step 5 has run, but the behavior aligns with Gecko.
It is thought to be quite unlikely that unload handlers depend on
window.closed being |false| rather than |true| when run.

R=haraken,mkwst
BUG=472379

Review URL: https://codereview.chromium.org/1053073002

git-svn-id: svn://svn.chromium.org/blink/trunk@193255 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r193243.
TBR=oilpan-reviews
BUG=330389
NOTRY=true

Review URL: https://codereview.chromium.org/1064813002

git-svn-id: svn://svn.chromium.org/blink/trunk@193254 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Attempt to deflake append-child-adopt-node-error-crash.html test.
Somewhat speculative, avoid potential timing issues with iframe loads
going ahead before the test has initialized fully.

R=
BUG=474155

Review URL: https://codereview.chromium.org/1050403004

git-svn-id: svn://svn.chromium.org/blink/trunk@193232 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r193185.
TBR=oilpan-reviews
BUG=420515
NOTRY=true

Review URL: https://codereview.chromium.org/1063703002

git-svn-id: svn://svn.chromium.org/blink/trunk@193187 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: sync Mac test expectations.
Widen the expectations to allow for crashes to be reported as timeouts
on the mac_dbg oilpan bot.

TBR=oilpan-reviews
NOTRY=true

Review URL: https://codereview.chromium.org/1059973002

git-svn-id: svn://svn.chromium.org/blink/trunk@193164 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Sync expectations following r192161, pt 2.
TBR=oilpan-reviews,pdr,wkorman@chromium.org
BUG=470313
NOTRY=true

Review URL: https://codereview.chromium.org/1063593002

git-svn-id: svn://svn.chromium.org/blink/trunk@193163 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Sync test expectations following r193161.
TBR=oilpan-reviews,pdr,wkorman@chromium.org
BUG=470313
NOTRY=true

Review URL: https://codereview.chromium.org/1065513002

git-svn-id: svn://svn.chromium.org/blink/trunk@193162 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r193159.
TBR=oilpan-reviews
BUG=
NOTRY=true

Review URL: https://codereview.chromium.org/1062683002

git-svn-id: svn://svn.chromium.org/blink/trunk@193160 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Hide the SVGTextQuery implementation in the .cpp file
Mostly renaming and "re-namespacing" in preparation for adding a
different way to perform a query.
Actual code-changes include storing the LayoutObject to query in the
SVGTextQuery instance, and passing it on to executeQuery(). The Vector
of textboxes is moved to the stack of executeQuery(), and the helper
collectTextBoxesInFlowBox() gets a new argument to pass that Vector
around.

BUG=471205,470326

Review URL: https://codereview.chromium.org/1057853002

git-svn-id: svn://svn.chromium.org/blink/trunk@193038 bbb929c8-8fbe-4397-9dbb-9b2b20218538
davve
Use viewBox for SVG as intrinsic size when all else fails
In http://crrev.com/308643002 the use of viewBox for intrinsicSize was
removed (which means this is a partial revert of that change). The
reason for the removal was that there wasn't a known cases where it
would be useful.

But then crbug.com/441862 surfaced and showed that using the viewBox
for intrinsic size can indeed be useful and necessary for SVG inside
an image through a relatively complex chain. What in the end happens
is that the intrinsic size is used not as a size but as a ratio when
doing scaling to accommodate for object-fit:cover (see
LayoutReplaced::replacedContentRect).

Ideally, we should only allow use of the ratio from the viewBox, but
we currently have no way of expressing just the ratio for an Image. So
there is potential for the viewBox being misused as size. Putting the
code back should be relatively safe though, since we've had it before.

BUG=441862

Review URL: https://codereview.chromium.org/1019813002

git-svn-id: svn://svn.chromium.org/blink/trunk@193030 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Finalize scheduler before shutting down Blink.
Have the Blink unittest runner shutdown the scheduler before doing
same to Blink, as the former may well access objects in the latter.

R=kouhei,haraken
BUG=

Review URL: https://codereview.chromium.org/1054893002

Cr-Commit-Position: refs/heads/master@{#323453}
fs
Simplify range mapping computation in SVGTextQuery/SVGInlineTextBox
Reduce SVGInlineTextBox::mapStartEndPositionsIntoFragmentCoordinates to
a simple offset/base adjustment and an intersection (which is what it
did - just in an unnecessarily verbose way.)

In SVGTextQuery::mapStartEndPositionsIntoFragmentCoordinates, drop the
intersection code, and leave that to the SVGInlineTextBox method.
Move the call to modifyStartEndPositionsRespectingLigatures() after the
intersection, because we don't want to do any adjustments on an empty
range. This is ok because modifyStartEndPositionsRespectingLigatures()
should never expand the range outside of the fragment it operating on.
Moving the call means it needs to be adjusted to work on offsets within
the fragment, so do that.

BUG=471205,470326

Review URL: https://codereview.chromium.org/1049673002

git-svn-id: svn://svn.chromium.org/blink/trunk@193017 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Eliminate use of and remove PathCoordinateMode
No longer used by SVGPathConsumer. Used by SVGPathBlender to decide
what the blending result will be.
Replace with bools in SVGPathBlender.

BUG=467592

Review URL: https://codereview.chromium.org/1048913004

git-svn-id: svn://svn.chromium.org/blink/trunk@193009 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r192943.
TBR=oilpan-reviews
BUG=464617
NOTRY=true

Review URL: https://codereview.chromium.org/1051893002

git-svn-id: svn://svn.chromium.org/blink/trunk@192951 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r192936.
TBR=oilpan-reviews
BUG=436952
NOTRY=true

Review URL: https://codereview.chromium.org/1058493002

git-svn-id: svn://svn.chromium.org/blink/trunk@192948 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Move PathParsingMode to SVGPathParser.h
This enum is (only) needed when using SVGPathParser.

BUG=467592

Review URL: https://codereview.chromium.org/1051783002

git-svn-id: svn://svn.chromium.org/blink/trunk@192947 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r192918.
TBR=oilpan-reviews
BUG=436952
NOTRY=true

Review URL: https://codereview.chromium.org/1053703002

git-svn-id: svn://svn.chromium.org/blink/trunk@192945 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Convert svg/text/columns-do-not-apply.html to a reftest.
Also increase column count to 4, to increase the likelihood of this failing if
the code is broken.

BUG=471172
R=ed@opera.com

Review URL: https://codereview.chromium.org/1036423002

git-svn-id: svn://svn.chromium.org/blink/trunk@192932 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix WorkerThreadStartupData finalization handling.
The WorkerThreadStartupData structure is used at creation-time to
configure new worker threads and their global scopes. To simplify
its lifetime and have the owning worker thread do the finalization,
move this structure off the heap.

The motivation for it being on the heap wasn't entirely compelling
to start with (introduced by https://codereview.chromium.org/191003010.)

R=haraken
BUG=472044

Review URL: https://codereview.chromium.org/1041053005

git-svn-id: svn://svn.chromium.org/blink/trunk@192926 bbb929c8-8fbe-4397-9dbb-9b2b20218538
tmoniuszko
Fix unresolved gn dependencies when enable_configuration_policy=false
BUG=

Review URL: https://codereview.chromium.org/1009883002

Cr-Commit-Position: refs/heads/master@{#323206}
mostynb
add video hole support to the gn build
BUG=329447

Review URL: https://codereview.chromium.org/1042543003

Cr-Commit-Position: refs/heads/master@{#323201}
fs
Split normalized reading from non-normalized in SVGPathParser
Move to parseAndNormalizePath() and parsePath() respectively and move
state to the corresponding one as appropriate.

Default inline parsePathDataFromSource. Since callsite usually pass a
constant PathParsingMode and checkForInitialMoveTo, this allows for
some specialization.

BUG=467592

Review URL: https://codereview.chromium.org/1045343002

git-svn-id: svn://svn.chromium.org/blink/trunk@192901 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Determine the right SVGTextMetrics using the correct approach
https://codereview.chromium.org/1041693002/ had a bug with how it
determined the SVGTextMetrics cell to use for a certain character/glyph.
We need to use SVGTextFragment::metricsListOffset and iterate.

BUG=470326

Review URL: https://codereview.chromium.org/1045793002

git-svn-id: svn://svn.chromium.org/blink/trunk@192817 bbb929c8-8fbe-4397-9dbb-9b2b20218538
tmoniuszko
Allow views::Label subclasses create RenderText
BUG=

Review URL: https://codereview.chromium.org/1036233005

Cr-Commit-Position: refs/heads/master@{#322787}
fs
Rearrange some includes for core/layout/svg/SVGText*
LayoutSVGResourceMasker.h came along for the ride too.

Review URL: https://codereview.chromium.org/1041153002

git-svn-id: svn://svn.chromium.org/blink/trunk@192754 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Adjust glyph positions in RTL runs in SVGTextQuery
When calculating the glyph position of a glyph in an RTL run/line box,
make sure the position is computed from the right of the fragment
within the line box.
Also adjust calls to SVGTextMetrics::measureCharacterRange to pass the
direction of the line box rather than the direction of the layout
object.
Use the SVGTextMetrics stored in the layout attributes to get the
extents for getExtentOfChar to avoid having to redo the somewhat
involved extent computation for cursive scripts.
With this, glyph extents for cursive scripts are better but still far
from perfect/good. This is likely not the fault of the query code
though.

The test svg/text/bidi-text-query.svg is rewritten to better illustrate
the query order and the returned extents.

BUG=470326

Review URL: https://codereview.chromium.org/1041693002

git-svn-id: svn://svn.chromium.org/blink/trunk@192701 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Sync the DataTransfer* interfaces with the spec
The only change to the generated code is due to
DataTransferItemList.length now being unsigned long, but since will not
be observable as DataTransferItemList::length() will not return any
negative values.

BUG=460722

Review URL: https://codereview.chromium.org/1036273002

git-svn-id: svn://svn.chromium.org/blink/trunk@192697 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: avoid InjectedScriptManager::CallbackData-induced leaks.
Move CallbackData to the Oilpan heap, so as to avoid it having to
keep a Persistent<> reference to its InjectedScriptHost.

If left as a persistent, it would leave the v8 wrapper object uncollected
and prevent a clean shutdown.

R=haraken
BUG=340522

Review URL: https://codereview.chromium.org/1040703002

git-svn-id: svn://svn.chromium.org/blink/trunk@192684 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Enable new multicol for testing and experimental web platform features.
There's already a RuntimeEnabledFeatures flag for region based
(aka. "new") multicol. So far it's only been used to toggle support
for column-fill (only supported in the new implementation), but will
from now on be used to determine whether to use the region based
implementation or not.

Remove internals.settings.setRegionBasedColumnsEnabled().

We need to keep a method for region based multicol (that does nothing)
in WebSettings for now, since it's still being called from the
Chromium side. Will be cleaned up later, when the
--enable-region-based-columns command line flag (which from now on has
no effect) is gone. See crbug.com/350853

Remove virtual/regionbasedcolumns tests, since region based multicol
is what's tested by default from now on. At the same time, add
virtual/stable/ tests, so that we still get test coverage for the old
implementation, since that's still what's shipping. This move causes
many changes in TestExpectations. All multicol test expectations that
used to be foo/* will now be virtual/stable/foo/* , and everything
that used to be virtual/regionbased/foo/* is now foo/* .

A few test expectations also need to be updated:

fast/dom/Element/getBoundingClientRect.html: Regenerated expectation
file. New multicol has improved column balancing, resulting in 6px
shorter columns.

fast/borders/border-antialiasing.html: Schedule for
rebaseline. Clipping improvements in new multicol.

fast/repaint/multicol-as-paint-container.html: Schedule for
rebaseline. Different individual rectangles, but same resulting
rectangle.

fast/repaint/multicol-repaint.html: Schedule for rebaseline. Clipping
improvements in new multicol.

BUG=334335,467468
R=dsinclair@chromium.org,jchaffraix@chromium.org,kbr@chromium.org

Review URL: https://codereview.chromium.org/1028383002

git-svn-id: svn://svn.chromium.org/blink/trunk@192683 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: dispose an HTMLImportsController on document detach/removal.
When a Document becomes detached and removes its HTMLImportsController
supplement, this will synchronously remove the controller and all
its "HTML imports" owned objects, in a non-Oilpan setting. This cancels
all ongoing loaders and more (cf. HTMLImportsController::removeFrom().)

ResourceFetcher objects are moving to accurately detaching from their
FrameFetchContexts when their frames become detached from a document
(http://crbug.com/458222). This implies that we cannot have loader objects
active, as that may cause FrameFetchContexts to be accessed, but once
lacking a frame. The code is no longer that expecting that.

For HTML imports loaders, this is avoided by synchronously cancelling &
finalizing the loaders, but that doesn't happen for Oilpan. It needs to,
so an explicit dispose() step is introduced for HTMLImportsController
and all its associated objects.

R=haraken
BUG=340522

Review URL: https://codereview.chromium.org/1032293002

git-svn-id: svn://svn.chromium.org/blink/trunk@192677 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Fix handling of Arabic script in SVGTextContentElement.getSubStringLength
Pass the direction of the line box instead of the layout object when
measuring the sub string.

BUG=470326

Review URL: https://codereview.chromium.org/1032363002

git-svn-id: svn://svn.chromium.org/blink/trunk@192670 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Clear baseLayoutStyle when the font selector version has increased.
FontFaceCache has a version() member which is increased when we add fonts
to the cache. It is used to detect if new fonts have been added to the
cache after a LayoutStyle was calculated. Different version() numbers will
make Font comparison fail and trigger relayout with new font data.

When the font added to the cache is new to the style system, it is
accompanied by a full document recalc. If we add a stylesheet with an
@font-face rule, the @font-face will cause an addition to the font cache,
and a document style recalc. So, if we have a "font-family:webfont,serif"
where "webfont" does not match anything, we lay out with the serif "font".
If we then add a stylesheet with an @font-face for "webfont", we need to
re-layout with that new font even if the computed style for font-family
doesn't change. That is triggered by the version number incremented by the
addition of "webfont".

This is all well until we add or remove a stylesheet which causes an
analyzed stylesheet update where we get a Reconstruct. The StyleResolver
will be recreated and font faces will be re-added, hence increasing the
version number of the font cache. The analyzed stylesheet update is smart
enough to avoid a full document recalc if it figures out that we did not
really add or remove any @font-face rules, just re-adding the ones we had.

We will then end up with a computed Font that was created for a different
font cache version, but we figured out we didn't need to recompute the
style or relayout since the font cache didn't really change with the
increased version.

If we are animating an element while such a reconstruct happen, we end up
having a baseLayoutStyle for the animation which is based on an old font
cache version. The LayoutStyle comparison ASSERT for baseLayoutStyle in
ElementAnimations will trigger because the Font comparison will fail,
since the version number for a newly created LayoutStyle Font will be
different.

To avoid that, we throw away the baseLayoutStyle after such a reconstruct
happens, in which case the stored version in the FontFallbackList will not
be in sync with the one stored in the FontFaceCache.

The real bug here is that the version tagging/increment here is imprecise
and not correlated with needsStyleRecalc. Removing an empty stylesheet
like in the added test-case will cause any element to be re-layout the
next time some other computed style change happen on that element as we
detect that the version number is out of sync. I have reported
crbug.com/471079 for that.

There is a generation() in FontCache which is similar to version(), but
increasing that will always trigger a full document recalc in
StyleEngine::fontsNeedUpdate.

R=esprehn@chromium.org,dstockwell@chromium.org,eae@chromium.org
BUG=470458

Review URL: https://codereview.chromium.org/1038193002

git-svn-id: svn://svn.chromium.org/blink/trunk@192669 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
IDBRequestTest.AbortErrorAfterAbort: stop request on exit.
To avoid test instability should a GC happen before a later test calls
stopActiveDOMObjects(), have this test stop its request upon exit.
Otherwise we risk finalizing the request object while it is in a
pending state; something that the IDBRequest destructor checks for.

R=

Review URL: https://codereview.chromium.org/1035963002

git-svn-id: svn://svn.chromium.org/blink/trunk@192640 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
favor DCHECK_CURRENTLY_ON for better logs in chromecast/
BUG=466848

Review URL: https://codereview.chromium.org/1038143002

Cr-Commit-Position: refs/heads/master@{#322500}
mstensho
Turn css3/unicode-bidi-isolate-basic into a reftest.
BUG=386567
R=rune@opera.com

Review URL: https://codereview.chromium.org/1029343003

git-svn-id: svn://svn.chromium.org/blink/trunk@192637 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
[New Multicolumn] Give up on stretching columns if they have already reached max height.
This doesn't change any behavior (column heights were already clamped against
max height), but it avoids an assertion failure that would occur if no space
shortage is recorded during a layout pass. Unbreakable content (lines) that's
taller than the column (max) height don't record space shortage, as columns
cannot be stretched beyond the (max) height anyway.

Note that layout might end up looking somewhat weird in situations like this,
since content that's supposed to be unbreakable is split across multiple
columns (instead of letting content overflow columns in the block direction).
For paged overflow (or printing) this is the desired behavior, though, since
overflow will be clipped. See also crbug.com/367651

This also avoids the same assertion failure when
fast/block/line-layout/line-break-removal-near-textarea-crash.html is run with
the new multicol implementation on Mac, because -webkit-appearance:button
imposes a min-height there. min-height is treated as height if height is auto.
That's crbug.com/65731

BUG=470527
R=dsinclair@chromium.org,jchaffraix@chromium.org

Review URL: https://codereview.chromium.org/1017263004

git-svn-id: svn://svn.chromium.org/blink/trunk@192636 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Force Mac editing behavior for fast/multicol/hit-test-above-or-below.html
This way we won't need platform specific expectations, since it should now just
pass on all platforms. What to hit when you start selecting below the end of
the last column (or simply below the block in non-multicol), is
platform-specific. On Windows you hit the character that's directly above the
cursor, while on Linux and Mac you hit the end of the text.

This is another preparatory patch for enabling region based columns.

R=jchaffraix@chromium.org
BUG=334335

Review URL: https://codereview.chromium.org/1016603006

git-svn-id: svn://svn.chromium.org/blink/trunk@192632 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
favor DCHECK_CURRENTLY_ON for better logs in chrome/browser/chromeos/
BUG=466848

Review URL: https://codereview.chromium.org/1036723003

Cr-Commit-Position: refs/heads/master@{#322463}
fs
Factor out glyph position computations in SVGTextQuery
In preparation for fixing RTL handling, move some common code for
computing the position of a glyph into two helper functions.

No functional changes.

BUG=470326

Review URL: https://codereview.chromium.org/1032603005

git-svn-id: svn://svn.chromium.org/blink/trunk@192624 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Add serializers to RTCIceCandidate and RTCSessionDescription
Support for the serializer syntax was added by these CLs:
  https://codereview.chromium.org/1031593003/
  https://codereview.chromium.org/1004503004/

The V8ObjectBuilder helper class was added by this CL:
  https://codereview.chromium.org/1031783003/

BUG=469650, 468180

Review URL: https://codereview.chromium.org/1033983002

git-svn-id: svn://svn.chromium.org/blink/trunk@192621 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
[New Multicolumn] mapAbsoluteToLocalPoint() needs to convert to flow thread coordinates.
mapAbsoluteToLocalPoint() works on visual coordinates, so pretending that it's
a flow thread coordinate (and then mapping it to a visual coordinate again, why
not) on the way up the tree is just going to cause trouble.

Instead we need to convert from visual to flow thread coordinates on our way
back down the tree, when entering the flow thread on our way to the target
element. Sadly, we also need to cancel out a flowthread-to-visual conversion
done in LayoutBox::offsetFromContainer().

This makes fast/events/document-elementFromPoint.html pass in the new multicol
implementation.

Added a couple of new tests as well (one which actually fails in the old /
current implementation), since the aforementioned test isn't yet run with the
new implementation.

R=dsinclair@chromium.org,jchaffraix@chromium.org
BUG=334335

Review URL: https://codereview.chromium.org/1024023002

git-svn-id: svn://svn.chromium.org/blink/trunk@192616 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Move iframe border/padding to the standard Fullscreen UA style sheet
This spec bug was resolved very quickly: (Thanks, Anne!)
https://www.w3.org/Bugs/Public/show_bug.cgi?id=28332

The ua-style-iframe-border.html test is no longer needed, as it was
written specifically to handle the fact that the border rule was not
!important, which it now is.

BUG=402378

Review URL: https://codereview.chromium.org/1032253002

git-svn-id: svn://svn.chromium.org/blink/trunk@192610 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Get rid of SVGTextMetrics functions without an explicit TextDirection
It's better to not use these at all. Open-code them at their current
callsites with an intent of fixing the direction they specify.

No functional changes.

BUG=470326

Review URL: https://codereview.chromium.org/1038843002

git-svn-id: svn://svn.chromium.org/blink/trunk@192605 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Add V8ObjectBuilder helper and use in modules/crypto/
V8ObjectBuilder is used to create simple V8 objects, and replaces the
corresponding functionality in Dictionary (Dictionary::createEmpty() and
the various Dictionary::set() functions), making Dictionary a read-only
accessor of an object's properties.

BUG=469650

Review URL: https://codereview.chromium.org/1031783003

git-svn-id: svn://svn.chromium.org/blink/trunk@192599 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
IDL: Add support for serializer definitions
The code generation for it is very simple. The

  serializer ReturnType name();

form adds the method "ReturnType name()" as a normal method, and in
addition a toJSON() method with identical behavior.

All other forms of serializer definitions, are equivalent to defining
a method

  [CallWith=ScriptState] any toJSON();

unless the serializer definition has additional extended attributes, in
which case those are also applied to the toJSON() method.

BUG=469650

Review URL: https://codereview.chromium.org/1004503004

git-svn-id: svn://svn.chromium.org/blink/trunk@192594 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r192583.
TBR=oilpan-reviews
BUG=275851
NOTRY=true

Review URL: https://codereview.chromium.org/1037593004

git-svn-id: svn://svn.chromium.org/blink/trunk@192593 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Deprecate CSSKeyframesRule.insertRule()
Intent to Deprecate:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/jaxgGDSFVY0/l5pqsjLkt_UJ

BUG=470400

Review URL: https://codereview.chromium.org/1004733012

git-svn-id: svn://svn.chromium.org/blink/trunk@192590 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
favor DCHECK_CURRENTLY_ON for better logs in chrome/browser/devtools
BUG=466848

Review URL: https://codereview.chromium.org/1030263002

Cr-Commit-Position: refs/heads/master@{#322339}
fs
Rework the SVGPathConsumer interface
The per-command interface is replaced with a segment interface. The new
interface in practice only consists of the

  emitSegment(const PathSegment&)

method, but incrementPathSegmentCount() and continueConsuming() need to
be kept around for the sake of SVGPathTraversalStateBuilder.

The two users of the interface - SVGPathParser and SVGPathBlender - are
converted to use the new interface.
For SVGPathParser this is fairly
straightforward (no additional code-changes).
In SVGPathBlender, the "blend switch" is moved into a separate function
and each blend* method is converted to return the blended segment
instead of calling the consumer themselves. Some local variables are
removed in various blend* methods, but otherwise the conversion consist
of assigning blended values to a PathSegmentData, rather than feeding
them to a consumer.

BUG=467592

Review URL: https://codereview.chromium.org/1037463002

git-svn-id: svn://svn.chromium.org/blink/trunk@192589 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Turn ViewportAnchors into stack allocated objects.
The viewport anchors have stack lifetimes, so rephrase their
implementation and use slightly so as to be able to allocate
them on the stack.

The main benefit of doing so is that the references they
contain to Oilpan heap objects will then be correctly traced
should an Oilpan conservative GC be needed while resizing
the view.

R=bokan,haraken
BUG=340522

Review URL: https://codereview.chromium.org/1003323004

git-svn-id: svn://svn.chromium.org/blink/trunk@192586 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove border and padding from iframes in fullscreen
This restores two rules dropped in the spec sync:
https://codereview.chromium.org/974783002

Without the border:none rule,
http://html5-demos.appspot.com/static/fullscreen.html gets a 1px white
border in fullscreen, which looks particularly odd due to the rounded
borders in this demo.

Without the padding:0 rule, https://play.google.com/store/movies?hl=en
gets a 60px white padding at the top of the fullscreen iframe, which is
clearly not the intended design.

BUG=402378, 468292, 469133

Review URL: https://codereview.chromium.org/1032113002

git-svn-id: svn://svn.chromium.org/blink/trunk@192567 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
favor DCHECK_CURRENTLY_ON for better logs in content/browser
BUG=466848

Review URL: https://codereview.chromium.org/1031133003

Cr-Commit-Position: refs/heads/master@{#322280}
mostynb
favor DCHECK_CURRENTLY_ON for better logs in chrome/browser/android/
BUG=466848

Review URL: https://codereview.chromium.org/1016473003

Cr-Commit-Position: refs/heads/master@{#322250}
mostynb
favor DCHECK_CURRENTLY_ON for better logs in components/
BUG=466848

Review URL: https://codereview.chromium.org/1004933003

Cr-Commit-Position: refs/heads/master@{#322240}
mostynb
favor DCHECK_CURRENTLY_ON for better logs in extensions/
BUG=466848

Review URL: https://codereview.chromium.org/1032553009

Cr-Commit-Position: refs/heads/master@{#322238}
ed
[S.P.] Use LayoutObject references in SVGFilterPainter.
Review URL: https://codereview.chromium.org/1034683002

git-svn-id: svn://svn.chromium.org/blink/trunk@192547 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: finalization of Permissions and SyncManager not needed.
With ScriptWrappable being without a destructor with Oilpan, have these
two classes derive from the non-finalizing GarbageCollected<>.

R=haraken
BUG=340522

Review URL: https://codereview.chromium.org/1033963002

git-svn-id: svn://svn.chromium.org/blink/trunk@192536 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Deprecate Attr child nodes
Intent to Deprecate:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/tW6Lr5nA1pY/BOedStgP2pEJ

Unfortunately this leads to duplicated deprecation warnings if one e.g.
sets attr.firstChild.data = 'foo', but both are needed to cover the
cases of mere access, like attr.firstChild, and mere modification, like
attr.appendChild().

BUG=305105

Review URL: https://codereview.chromium.org/1031073003

git-svn-id: svn://svn.chromium.org/blink/trunk@192530 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r192519.
TBR=oilpan-reviews
BUG=none
NOTRY=true

Review URL: https://codereview.chromium.org/1030163002

git-svn-id: svn://svn.chromium.org/blink/trunk@192525 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ed
[S.P.] Use 'const LayoutObject&' in SVGMaskPainter.
Review URL: https://codereview.chromium.org/1022843004

git-svn-id: svn://svn.chromium.org/blink/trunk@192515 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r192502.
R=haraken
BUG=275851
NOTRY=true

Review URL: https://codereview.chromium.org/1030053004

git-svn-id: svn://svn.chromium.org/blink/trunk@192507 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build++ after r192490.
TBR=oilpan-reviews
BUG=463435
NOTRY=true

Review URL: https://codereview.chromium.org/1035533003

git-svn-id: svn://svn.chromium.org/blink/trunk@192503 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Have postMessage()s throw TypeError on failed arity checks.
R=haraken,mkwst@chromium.org
BUG=339441

Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=192337

Review URL: https://codereview.chromium.org/1025203002

git-svn-id: svn://svn.chromium.org/blink/trunk@192483 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Mark wrappers of canvas rendering context objects as dependent.
When initially called, canvas.getContext() will return a fresh rendering
context object, but at the same time switch its "context mode" to a direct
one (2d or webgl), such that subsequent getContext() with the same
contextID argument will return that initially created context object.

To correctly provide that same-object identity, the wrapper object must be
marked as depending on the canvas element object, such that it will be
retained across GCs.

R=junov,haraken
BUG=450410

Review URL: https://codereview.chromium.org/1033613002

git-svn-id: svn://svn.chromium.org/blink/trunk@192465 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ed
[S.P.] Use 'const LayoutObject&' in SVGClipPainter.
Review URL: https://codereview.chromium.org/1035463002

git-svn-id: svn://svn.chromium.org/blink/trunk@192461 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Fix TaskManagerBrowserTest.WebWorkerJSHeapMemory and enable.
Update and enable the test, including adjusting postMessage() usage to no
longer call the method without any arguments.

R=ncarter, alph
BUG=339441,259368

Review URL: https://codereview.chromium.org/1027333003

Cr-Commit-Position: refs/heads/master@{#322018}
fs
Rework SVG path normalization code
This CL moves normalization code from the SVGPathParser::emit* methods,
into a emitSegment method on a new helper object NormalizingConsumer.
Normalization is a fairly uniform process, and with a more uniform
datastructure to work on (PathSegmentData), it can be simplified.
The new NormalizingConsumer::emitSegment accepts a non-normalized
segment, which it maps to a normalized segment in a few steps:
  1) Convert relative points to absolute.
  2) Convert smooth/quadratic/arc parametrizations to cubics.
  3) Convert non-normalized verbs to normalized.
  4) Update normalization state.

Normalization state (currentPoint, subPathPoint, etc.) is also moved to
the new helper class. The coordinate mode (SVGPathParser::m_mode) is no
longer needed and removed.
The checks for quadratic/cubic curve classes are turned into functions.

BUG=467592

Review URL: https://codereview.chromium.org/1033643003

git-svn-id: svn://svn.chromium.org/blink/trunk@192445 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r192426.
TBR=oilpan-reviews
BUG=451004
NOTRY=true

Review URL: https://codereview.chromium.org/1029363002

git-svn-id: svn://svn.chromium.org/blink/trunk@192427 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Mark overflow-scroll-animates.html as leaking.
TBR=skobes,dglazkov
BUG=469271
NOTRY=true

Review URL: https://codereview.chromium.org/1030843002

git-svn-id: svn://svn.chromium.org/blink/trunk@192424 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
[New Multicolumn] Don't return the wrong flow thread from locateFlowThreadContainingBlock().
LayoutListItem::updateMarkerLocationAndInvalidateWidth() does nasty
things (inserts layout objects at "random" places in the tree during
layout), so we need to temporarily reset the current flow thread in
LayoutState, or we might end up locating the wrong one in
LayoutObject::locateFlowThreadContainingBlock(). Need this until
crbug.com/370461 gets fixed.

This makes fast/lists/list-inside-columns-crash.html pass with the new multicol
implementation, but since that test is still running with the old multicol
implementation, I added a simplified tailored test that's actually run.

BUG=334335,460251
R=dsinclair@chromium.org,jchaffraix@chromium.org

Review URL: https://codereview.chromium.org/1021143004

git-svn-id: svn://svn.chromium.org/blink/trunk@192423 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Rename FrameDestructionObserver to LocalFrameLifecycleObserver.
Renamed so as to be consistent with the naming of other lifecycle
observers.

R=haraken
BUG=462949

Review URL: https://codereview.chromium.org/1026253002

git-svn-id: svn://svn.chromium.org/blink/trunk@192418 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ollel
Use same parameters for jpeg decoding quality on all platforms.
This patch will change android to use same decoding parameters as
other platforms, thus changing back to dct=int and dither=fs since
the faster settings caused visible artifacts that did not justify
the small performance gain.

BUG=385515

Review URL: https://codereview.chromium.org/1023193002

git-svn-id: svn://svn.chromium.org/blink/trunk@192409 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
KEYGEN elements should always create LayoutBlockFlow, regardless of display type.
Since it's a replaced element, the display value on a KEYGEN element should
only affect whether it's inline-level or block-level. The actual type of layout
object should be the same, regardless of display type.

BUG=455867
R=jchaffraix@chromium.org

Review URL: https://codereview.chromium.org/1027173002

git-svn-id: svn://svn.chromium.org/blink/trunk@192399 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Pass segment to decomposeArcToCubic and let it handle exceptional cases
Moves complexity from SVGPathParser::emitArcToSegment, and leaves it
doing just normalization and emittal.

BUG=467592

Review URL: https://codereview.chromium.org/1028183003

git-svn-id: svn://svn.chromium.org/blink/trunk@192398 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
PostMessageTest: retire use of zero-argument port.postMessage().
In testPostUnsupportedWebMessageToApp, avoid invoking postMessage()
without any arguments. At least one is required for
MessagePort.postMessage().

R=sgurun@chromium.org
BUG=339441

Review URL: https://codereview.chromium.org/1003603004

Cr-Commit-Position: refs/heads/master@{#321855}
sigbjornf
Turn the InspectorHighlight builder into a stack allocated object.
R=haraken
BUG=

Review URL: https://codereview.chromium.org/1024423002

git-svn-id: svn://svn.chromium.org/blink/trunk@192387 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Remove SiblingTraversalStrategies include from StyleResolver.
SiblingTraversalStrategies were unused in StyleResolver.h, but some files
relied on ElementTraversal being included via StyleResolver.h.

R=jchaffraix@chromium.org

Review URL: https://codereview.chromium.org/1026483003

git-svn-id: svn://svn.chromium.org/blink/trunk@192384 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Temporarily disable baseLayoutStyle optimization.
In order to figure out more about how the baseRenderStyle validity assert
triggers in the wild, we'll try to temporarily make a RELEASE_ASSERT out
of it.

This means we'll effectively disable the optimization, yet clone a
baseLayoutStyle to be able to check that the optimization would have been
sound.

Performance tests may intentionally degrade as a consequence.

R=esprehn@chromium.org
BUG=463413

Review URL: https://codereview.chromium.org/1001323003

git-svn-id: svn://svn.chromium.org/blink/trunk@192378 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Disallow adding ContextLifecycleObservers during iteration.
The implementation of ContextLifecycleNotifier disallows the addition
of ActiveDOMObjects while delivering its notifications, by way of
a RELEASE_ASSERT(). This prevents ending up in inconsistent states where
(e.g.) instructing the ActiveDOMObjects to stop would lead to the
creation of new, but running, ActiveDOMObjects.

Extend this restriction to encompass all ContextLifecycleObservers; none
may be added while iterating over the registered ActiveDOMObjects. This
allows us to simplify the underlying implementation somewhat.

R=haraken
BUG=462949

Review URL: https://codereview.chromium.org/1024543004

git-svn-id: svn://svn.chromium.org/blink/trunk@192377 bbb929c8-8fbe-4397-9dbb-9b2b20218538
christiank
Add texture compression interface and ETC1 encoder.
This CL introduces a CC texture compression API and adds an ETC1
encoder that will be used for compressing tile textures.

BUG=434699

Review URL: https://codereview.chromium.org/1015373003

Cr-Commit-Position: refs/heads/master@{#321788}
fs
Move PathTraversalState::m_segmentIndex to SVGPathTraversalStateBuilder
The latter is the only one to manipulate the value.

BUG=467592

Review URL: https://codereview.chromium.org/1015833004

git-svn-id: svn://svn.chromium.org/blink/trunk@192370 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
IDL: Add support for serializer definitions
A serializer definition is output as a 'Serializer' production, with
either no children, an 'Operation' child, or a 'Map'/'List' child. The
production has an attribute named 'ATTRIBUTE' in the

  serializer = identifier;

form (and no children), and the 'Map'/'List' productions have attributes
named 'GETTER', 'INHERIT' and 'ATTRIBUTES', where the latter is a list of
the attributes named in the definition.

BUG=469650

Review URL: https://codereview.chromium.org/1031593003

Cr-Commit-Position: refs/heads/master@{#321780}
fs
SVGPathParser: Move unaltered emits to a separate code-path
Hoist the check for normalized parsing/normalization out of the emit*
methods, and with it the non-normalized emittal out of emit*. This type
of emittal is trivial, so the use of SVGPathParser::m_mode can be
avoided altogther in this code-path.
This leaves the emit* methods with only doing normalized emittals, and
SVGPathParser::m_pathParsingMode only needs to be checked in the main
parsing method, so it becomes possible to just use the parameter
directly.

BUG=467592

Review URL: https://codereview.chromium.org/1028173002

git-svn-id: svn://svn.chromium.org/blink/trunk@192369 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Synchronize SVGLengthMode values for SVGTextPathElement.startOffset
The SVGLengthMode was specified as 'Other' on the attribute, and 'Width'
in SVGLength::lengthModeForAnimatedLengthAttribute.
Since they are both "wrong" (percentage for this attribute should be
resolved against the length of the path it's used for), randomly pick
'Width'.

BUG=469620

Review URL: https://codereview.chromium.org/1003273005

git-svn-id: svn://svn.chromium.org/blink/trunk@192367 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
favor DCHECK_CURRENTLY_ON for better logs in content/{public,shell,test}/
BUG=466848

Review URL: https://codereview.chromium.org/1010963002

Cr-Commit-Position: refs/heads/master@{#321771}
philipj
Link to https://html.spec.whatwg.org/#the-foo-element where sensible
This makes it more apparent what e.g. HTMLModElement and
HTMLParagraphElement are.

These interfaces don't have good sections and are left alone:
HTMLDirectoryElement
HTMLFontElement
HTMLFrameElement
HTMLFrameSetElement
HTMLMarqueeElement (https://www.w3.org/Bugs/Public/show_bug.cgi?id=28296)

BUG=460722
NOTRY=true

Review URL: https://codereview.chromium.org/1022413002

git-svn-id: svn://svn.chromium.org/blink/trunk@192355 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Rework the SVGPathSource interface
This CL replaces the current per-command interface of SVGPathSource
with a per-segment interface.

A new struct PathSegmentData is added, and existing SVGPathSources are
modified to implement parse into this struct. For the most part this is
a trivial copy and paste operation. In SVGPathStringSource, some of the
helpers are refactored, and leading whitespace is consumed in the
constructor to avoid having something similar to moveToNextToken() in
the new interface. Number parsing is also made "latched", by setting a
flag on error, and only check that flag when all the input has been
considered. This makes the code a bit more streamlined while optimizing
for the common case (of no error.) This also renders the
parseFloatPoint* helpers unused, so they are removed.

peekSegmentType() is added to support checking if the first segment is
a move command without directly affecting the common 'transformation'
loop.

Users of the SVGPathSource interface (SVGPathParser and SVGPathBlender)
are refactored to make use of the new interface.
For SVGPathParser this means renaming the parse* methods to emit*,
while hoisting the input-handling out into the main "parsing" loop, and
passing the parsed PathSegmentData to the right emitter.
Similarly for SVGPathBlender, the input-handling is hoisted out of the
blend* methods, and the two inputs are passed as parameters. The
command equality check is changed to only be based on the command type.

BUG=467592

Review URL: https://codereview.chromium.org/1023993002

git-svn-id: svn://svn.chromium.org/blink/trunk@192348 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
[New Multicolumn] Leave remaining disabled test disabled, and explain why.
I've gone through all interesting multicol tests that needed to be converted to
reftests, js-tests (or at least something that isn't dump-render-tree or PNG
tests).

The remaining tests either provide no additional test coverage, or are invalid (albeit
passing in the old implementation), so just keep them disabled. Will be removed once
the old multicol implementation is gone (that's crbug.com/408123).

BUG=386567
R=rune@opera.com

Review URL: https://codereview.chromium.org/1023203002

git-svn-id: svn://svn.chromium.org/blink/trunk@192340 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Have postMessage()s throw TypeError on failed arity checks.
R=haraken,mkwst@chromium.org
BUG=339441

Review URL: https://codereview.chromium.org/1025203002

git-svn-id: svn://svn.chromium.org/blink/trunk@192337 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: remove now-addressed PostMessageTimer fixme.
R=haraken
BUG=340522
NOTRY=true

Review URL: https://codereview.chromium.org/1025133003

git-svn-id: svn://svn.chromium.org/blink/trunk@192336 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: revert SVG GC mixin constructor workaround.
Following r191501 (http://crrev.com/980653002), the construction of
a GC mixin object is safe, preventing conservative GCs from going ahead
until the GC mixin object is in a valid state.

With that in place, revert the workaround for SVG mixins (r188695),
which restructured the mixin constructors such that they performed no
heap allocations while the constructed object was in an invalid state.

R=haraken
BUG=420515

Review URL: https://codereview.chromium.org/1025883002

git-svn-id: svn://svn.chromium.org/blink/trunk@192330 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Sync HTML element interfaces S-V with the spec
Switch to linking to #the-foo-element instead of #htmlfooelement, as
it gives good extra clues in cases like HTMLTableCaptionElement and
HTMLTableCellElement. It also doesn't skip past constructors, etc.

At the same time also move Event.path out of the non-standard section,
as it's in the Shadow DOM spec (below HTMLShadowElement).

Also give HTMLInputElement.autocapitalize its own section.

There are no changes to the generated code other than order.

BUG=460722

Review URL: https://codereview.chromium.org/1031473002

git-svn-id: svn://svn.chromium.org/blink/trunk@192327 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Sync HTML element interfaces O-Q with the spec
Also fix the confused comment in HTMLImageElement, its hspace/vspace
attributes should also be unsigned long, noticed now because of the same
attributes on HTMLObjectElement.

There are no changes to the generated code other than order.

BUG=460722

Review URL: https://codereview.chromium.org/1028633005

git-svn-id: svn://svn.chromium.org/blink/trunk@192321 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Throw TypeError if value conversion to transferable fails.
For postMessage(), when converting to a sequence<Transferable> value,
throw a TypeError for any element that isn't an instance of a Transferable
type.

(Addresses http://w3c-test.org/webmessaging/with-ports/026.html failure.)

R=haraken
BUG=339441

Review URL: https://codereview.chromium.org/1022283002

git-svn-id: svn://svn.chromium.org/blink/trunk@192320 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Revert "remove -Wno-header-guard workaround for old versions of NSS"
This reverts commit 86ebf48be903b226d068b08efa16fe3725babb8c.

Build failures:
  http://build.chromium.org/p/chromium.chromiumos/builders/Linux%20ChromiumOS%20Builder/builds/20027
  http://build.chromium.org/p/chromium.webkit/builders/GPU%20Linux%20Builder%20%28dbg%29/builds/31334

Original issue's description:
> remove -Wno-header-guard workaround for old versions of NSS
>
> I think it's safe to re-enable this warning now.  The bug was
> fixed upstream in 3.15.1 and there have been several NSS upgrades since then.
>
> BUG=255201
> Committed: https://crrev.com/86ebf48be903b226d068b08efa16fe3725babb8c
> Cr-Commit-Position: refs/heads/master@{#321711}

TBR=mostynb@opera.com,thakis@chromium.org
BUG=255201
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/1024343002

Cr-Commit-Position: refs/heads/master@{#321712}
mostynb
remove -Wno-header-guard workaround for old versions of NSS
I think it's safe to re-enable this warning now.  The bug was
fixed upstream in 3.15.1 and there have been several NSS upgrades since then.

BUG=255201

Review URL: https://codereview.chromium.org/1028863002

Cr-Commit-Position: refs/heads/master@{#321711}
sigbjornf
Completely clear the heap ages array.
R=haraken
BUG=468166

Review URL: https://codereview.chromium.org/1021393004

git-svn-id: svn://svn.chromium.org/blink/trunk@192306 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Perform CORS access checks on Beacon redirects.
Beacon "fetches" follow CORS, which means that a CORS check must be
performed on the redirect response.

R=mkwst
BUG=468527

Review URL: https://codereview.chromium.org/1016373002

git-svn-id: svn://svn.chromium.org/blink/trunk@192294 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r192278.
TBR=oilpan-reviews
BUG=451004
NOTRY=true

Review URL: https://codereview.chromium.org/1020383003

git-svn-id: svn://svn.chromium.org/blink/trunk@192288 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Implement <video controls> dodging for text track layout
This is a follow-up to "Separate the text track container from the media
controls": https://codereview.chromium.org/949203002/

Previously, we got this behavior for free because the text track
container was part of the media controls.

BUG=448795

Review URL: https://codereview.chromium.org/1018593004

git-svn-id: svn://svn.chromium.org/blink/trunk@192281 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix webkit unit tests following r192243 (reland).
R=haraken
BUG=467890

Review URL: https://codereview.chromium.org/1028653002

git-svn-id: svn://svn.chromium.org/blink/trunk@192276 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Separate the text track container from the media controls
Having the text track container as a part of the media controls makes it
harder to show and hide the controls as a group, which would be useful.

One benefit of the old approach was that the controls automatically
wouldn't overlap the cues. This is now broken, and two tests are
affected. This will be addressed in a follow-up:
https://codereview.chromium.org/1018593004/

TextTrackContainer is never hidden, as that used MediaControlElement's
show() and hide(). If it does not have any cues nothing will be
rendered, it will just sit there. If an optimization of this kind is
worthwhile, it should be to remove the TextTrackContainer entirely from
the DOM.

Some bits of mediaControls.css that should have no effect are removed.

BUG=448795

Review URL: https://codereview.chromium.org/949203002

git-svn-id: svn://svn.chromium.org/blink/trunk@192263 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Revert of Oilpan: fix webkit unit tests following r192243. (patchset #2 id:20001 of https://codereview.chromium.org/1026753002/)
Reason for revert:
Breaks windows builder,

 http://build.chromium.org/p/chromium.webkit/builders/WebKit%20Win%20Builder/builds/74953

Original issue's description:
> Oilpan: fix webkit unit tests following r192243.
> 
> TBR=oilpan-reviews
> BUG=467890
> NOTRY=true

TBR=oilpan-reviews@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=467890

Review URL: https://codereview.chromium.org/1024013002

git-svn-id: svn://svn.chromium.org/blink/trunk@192252 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix webkit unit tests following r192243.
TBR=oilpan-reviews
BUG=467890
NOTRY=true

Review URL: https://codereview.chromium.org/1026753002

git-svn-id: svn://svn.chromium.org/blink/trunk@192251 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Disable inline vector buffers for WTF::Deque for ASAN builds.
Speculatively extend r191159 to Deque<> vector buffers.

R=tkent
BUG=469111

Review URL: https://codereview.chromium.org/1025623002

git-svn-id: svn://svn.chromium.org/blink/trunk@192247 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Clear need for animation style for forced styleForElement.
When style recalc for an element is triggered by a StyleRecalcChange from
the ancestors, we need to clear the m_animationStyleChange flag on
ElementAnimations if set since the baseLayoutStyle cannot be used. This
is normally done from Element::recalcStyle just before recalcOwnStyle is
called.

Document::inheritHtmlAndBodyElementStyles does styleForElement outside of
the recalcStyle machinery and didn't clear this flag which caused an
assert for baseLayoutStyle comparison.

In particular, the case was that while an animation was running on body,
attempting to load an @font-face would trigger a version increase in the
font cache and a SubtreeStyleChange for the document, while we still tried
to use the baseLayoutStyle for the animating body because we ignored the
Force passed to inheritHtmlAndBodyElementStyles.

Comparing the baseLayoutStyle with the LayoutStyle created from scratch
would cause comparison to fail, due to a Font comparison fail because of
the increased font cache version number, which in turn caused the assert
to trigger.

R=esprehn@chromium.org,dstockwell@chromium.org
BUG=459661

Review URL: https://codereview.chromium.org/1000413003

git-svn-id: svn://svn.chromium.org/blink/trunk@192241 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Turn fast/block/float/float-not-removed-from-next-sibling4.html into a reftest.
BUG=386567
R=rune@opera.com

Review URL: https://codereview.chromium.org/1016403002

git-svn-id: svn://svn.chromium.org/blink/trunk@192237 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Remove dubious part from fast/block/margin-collapse/self-collapsing-cols-creates-block-formatting-context.html
The test had invalid column-span:all elements, i.e. there was no multicol
containing block. The new multicol implementation ignores all effects of
column-span:all unless it's a valid one, while the old / current implementation
doesn't.

BUG=386567
R=rune@opera.com

Review URL: https://codereview.chromium.org/1020923002

git-svn-id: svn://svn.chromium.org/blink/trunk@192236 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Simplify handling of LocalFrame lifecycle notifications.
LocalFrame provides a registration interface for observers to observe
its detachment and destruction, by way of FrameDestructionObserver.

Just like the derived objects of LifecycleNotifier<> do, hence it makes
sense for LocalFrame to also use that interface and implementation. Done
so here by introducing LocalFrameLifecycleNotifier<>.

On the observer side, the FrameDestructionObserver interface now derives
from LifecycleObserver<>, reusing its implementation. Instead of
canonicalizing its name as LocalFrameLifecycleObserver also, keep the
established FrameDestructionObserver.

R=haraken
BUG=462949

Review URL: https://codereview.chromium.org/1017313002

git-svn-id: svn://svn.chromium.org/blink/trunk@192231 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Simplify conversion of quadratic bezier segments
Perform the normalization first, and then compute the control points for
the equivalent cubic segment.

BUG=467592

Review URL: https://codereview.chromium.org/1024583002

git-svn-id: svn://svn.chromium.org/blink/trunk@192208 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix gcc compilation.
To catch out erroneous uses of unregisterPreFinalizer() over
class types T that do not provide an implementation of invokePreFinalizer()
(by way of USING_PRE_FINALIZER(), most likely), unregisterPreFinalizer()
currently asserts for T::invokePreFinalizer being bound and non-null.

This unfortunately runs into gcc's -Waddress warning ("the address of
<function> will never be null"), as the static method is statically
known and bound (where correctly used.)

Rephrase the assert by wrapping up the check in a sizeof() so as to
steer clear of gcc's fussiness.

R=
BUG=420515

Review URL: https://codereview.chromium.org/1000493003

git-svn-id: svn://svn.chromium.org/blink/trunk@192201 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Turn fast/css/first-letter-range-insert.html into a dumpAsText test.
Better option than rebaselining for new multicol (which uses different layout
objects, so DRT is just cumbersome).

BUG=386567
R=dsinclair@chromium.org

Review URL: https://codereview.chromium.org/1025493002

git-svn-id: svn://svn.chromium.org/blink/trunk@192192 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Add helper for computing the reflected control point for smooth segments
BUG=467592

Review URL: https://codereview.chromium.org/1019853003

git-svn-id: svn://svn.chromium.org/blink/trunk@192177 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ed
[svg] Make svgView override existing data selectively.
The change is to not blow off all the existing viewBox,
pAR, etc when an #svgView(...) is used. Instead only
replace the parts that are actually specified in the
svgView syntax.

BUG=444553

Review URL: https://codereview.chromium.org/1015743003

git-svn-id: svn://svn.chromium.org/blink/trunk@192174 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
[New Multicolumn] Correct localPoint when hitting an anonymous child block.
If Layer::hitTestContents() detects a hit, but we have failed to pinpoint it to
a DOM node (because we only found anonymous layout objects), there's code to
locate the nearest ancestor DOM node above the layer, and store it. But there's
no code to actually set the corresponding localPoint (and that sounds like a
tricky task, anyway), which means that text selecting and caretRangeFromPoint()
will suffer.

Add a work-around for flow thread layers. We can just report that didn't hit
anything so that we continue and hit a sibling column set instead, and thus set
the right localPoint (because the column set is in the same layer as the
multicol container, and the multicol container does have a DOM node).

Note that we should no longer get here for positioned generated content, like
the old comment suggested, because generated content now inserts pseudo nodes,
instead of creating anonymous layout objects. So it's actually a bit unclear if
we can end up here at all in other cases than multicol (which is now handled
properly-ish).

Re-enable an old test that now passes, and add some new ones.

BUG=461352
R=dsinclair@chromium.org,jchaffraix@chromium.org

Review URL: https://codereview.chromium.org/1003303005

git-svn-id: svn://svn.chromium.org/blink/trunk@192173 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Eliminate TextTrackCue::updateDisplayTree()
updateDisplayTree() cloned and inserted a new tree every time, and was
called continuously from CueTimeline::updateActiveCues(). The net effect
of this was to re-layout the cue continuously, causing cues to move into
areas where a cue was previously. The letter and spirit of the WebVTT
spec is to have a stable layout, where cues do not move once laid out.

TEST=LayoutTests/media/track/track-webvtt-two-cue-layout-after-first-end.html

As the display tree is now kept intact, it becomes necessary to
invalidate the style in setIsPastNode.

Test coverage of past and future cues:
LayoutTests/media/track/cue-style-invalidation.html
LayoutTests/media/track/track-css-matching-timestamps.html
LayoutTests/media/track/track-css-matching.html

Note that per spec a part of the cue could match neither :past nor
:future, but our implementation is mutually exclusive. It's not clear
what the best behavior is, so a spec bug was filed instead:
https://www.w3.org/Bugs/Public/show_bug.cgi?id=28237

BUG=322434

Review URL: https://codereview.chromium.org/1013393004

git-svn-id: svn://svn.chromium.org/blink/trunk@192171 bbb929c8-8fbe-4397-9dbb-9b2b20218538
peterp
Let adb_gdb support privileged processes with a switch.
Add "--privileged" and "--privileged=<num>" that works similar to
"--sandboxed" to make it easier to debug the GPU process on Android.

BUG=468697

Review URL: https://codereview.chromium.org/1023703002

Cr-Commit-Position: refs/heads/master@{#321351}
davve
Fix typo in layout test in rarely taken code branch
Review URL: https://codereview.chromium.org/1011393006

git-svn-id: svn://svn.chromium.org/blink/trunk@192167 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Move 'closePath' handling to the consumers
Only one consumer which needs it: SVGPathBuilder; Move it there.

BUG=467592

Review URL: https://codereview.chromium.org/1016023002

git-svn-id: svn://svn.chromium.org/blink/trunk@192163 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Cleanup: Call logicalTopInFlowThreadAt() at more places.
R=rune@opera.com

Review URL: https://codereview.chromium.org/1011413002

git-svn-id: svn://svn.chromium.org/blink/trunk@192158 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Removed unused styleSheetCandidateNodes().
Review URL: https://codereview.chromium.org/1023693002

git-svn-id: svn://svn.chromium.org/blink/trunk@192157 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Rewrite fast/multicol/*nested-columns.html as reftests.
The vertical-rl version fails (both before and after the rewrite) with the
region based multicol implementation. Reported bug 467477 for that.

BUG=386567
R=andersr@opera.com

Review URL: https://codereview.chromium.org/1009313002

git-svn-id: svn://svn.chromium.org/blink/trunk@192155 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Revert "Tweaks layoutTests to use eventSender.setTouchPointRadius correctly"
This reverts commit e0717a58a20cc4d14501cd6e9b9164789b7581eb

Reason for revert:
Touch event test failures,

 https://storage.googleapis.com/chromium-layout-test-archives/WebKit_Linux_32/34636/layout-test-results/results.html

Original issue's description:
> Tweaks layoutTests to use eventSender.setTouchPointRadius correctly
>
> A link to the Chrome patch (event_sender.cc) https://codereview.chromium.org/990183003/
>
> BUG=
>
> Review URL: https://codereview.chromium.org/990193002
>
> git-svn-id: svn://svn.chromium.org/blink/trunk@192088 bbb929c8-8fbe-4397-9dbb-9b2b20218538

TBR=rbyers@chromium.org,d.pikalov@partner.samsung.com,fdegans@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=468704

Review URL: https://codereview.chromium.org/1019273002

git-svn-id: svn://svn.chromium.org/blink/trunk@192154 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: tidy up finalization of InspectorEmulationAgent following r192106.
Move InspectorEmulationAgent's self-reference clearing to discardAgent()
instead of doing in its destructor, as that will access an already dead
WebViewImpl object.

R=tkent
BUG=467059

Review URL: https://codereview.chromium.org/1022773002

git-svn-id: svn://svn.chromium.org/blink/trunk@192150 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Remove all event listeners during window's frame destruction step.
Perform the removal of LocalDOMWindow event listeners as part of it being
informed of LocalFrame's destruction (via frameDestroyed()). This is preferable
to waiting until LocalDOMWindow's destructor is run, as it makes the timing of it
independent of when that destructor actually gets to run.

With Oilpan, it is possible that a frame and its window will be swept out without
an explicit frame destruction notification. In that event, a prefinalizing
action is run to take care of the removal.

Additionally, this CL removes an explicit call to reset() from the LocalDOMWindow
destructor. We have since r182337 been asserting that the reset() has already
occurred, without it ever triggering. Time to remove the redundant reset() call.

R=haraken
BUG=340522

Review URL: https://codereview.chromium.org/1017043002

git-svn-id: svn://svn.chromium.org/blink/trunk@192149 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Document calls to the "rules for updating the text track rendering"
Per spec there are only two calls to these rules:
 * The last step of the "time marches on" algorithm.
 * "When the user agent starts exposing a user interface for a video
   element."

We have the first call, and two others that are needed when the text
track mode changes between hidden and visible. A spec bug was filed
for this case: https://www.w3.org/Bugs/Public/show_bug.cgi?id=28236

BUG=322434
NOTRY=true

Review URL: https://codereview.chromium.org/1022743002

git-svn-id: svn://svn.chromium.org/blink/trunk@192148 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
IDL: Add [Custom=CallEpilogue] to eliminate CG special cases
The effect is similar to having [Custom] on a method, but instead of
completely replacing the generated method implementation, the custom
callback is just called after the regular method implementation call.

Use this to reimplement EventTarget.{add,remove}EventListener and
MediaQueryList.{add,remove}Listener's code generation special cases.

Also use this to reduce the custom code for History.{push,replace}State
to such a call epilogue. While doing so, update History.idl so that the
now generated code is behaves the same as the old custom code.

BUG=345519

Review URL: https://codereview.chromium.org/1019453002

git-svn-id: svn://svn.chromium.org/blink/trunk@192146 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Let CueTimeline::currentlyActiveCues() return by reference-to-const
CueList is a Vector<CueInterval>, so passing it by value creates a copy.
This was verified in a debugger.

BUG=321654

Review URL: https://codereview.chromium.org/1014873004

git-svn-id: svn://svn.chromium.org/blink/trunk@192144 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r192119.
TBR=oilpan-reviews
BUG=458222
NOTRY=true

Review URL: https://codereview.chromium.org/1016113003

git-svn-id: svn://svn.chromium.org/blink/trunk@192123 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
favor DCHECK_CURRENTLY_ON for better logs in content/browser/[f-p]*
BUG=466848

Review URL: https://codereview.chromium.org/1000373002

Cr-Commit-Position: refs/heads/master@{#321215}
fs
Only update SVGPathParser::m_controlPoint when doing NormalizedParsing
It's part of "normalization state".

BUG=467592

Review URL: https://codereview.chromium.org/1015083003

git-svn-id: svn://svn.chromium.org/blink/trunk@192115 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Clean up around text track display state updates
Several minor oddities are changed to be hopefully less odd:

 * CueTimeline need not check activeSetChanged due to an earlier
   |if (!activeSetChanged) return|.
 * Move one-time setup of m_displayTree and m_cueBackgroundBox to where
   they are created.
 * ASSERT the preconditions guaranteed in VTTCue::updateDisplay() and
   getDisplayTree(), guaranteed by TextTrackContainer::updateDisplay.
 * Never remove and m_cueBackgroundBox from m_displayTree, just leave it
   there and assert that it is so.
 * Document where m_cueBackgroundBox is actually populated.
 * Remove a bunch of spec comments where the code doesn't resemble the
   shape of the spec and FIXMEs that aren't anywhere close to where they
   would actually be fixed. A link to http://wkb.ug/79916 remains in
   VTTCueBox::applyCSSProperties().

BUG=322434

Review URL: https://codereview.chromium.org/1022523002

git-svn-id: svn://svn.chromium.org/blink/trunk@192113 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r192098.
TBR=oilpan-reviews
BUG=467883
NOTRY=true

Review URL: https://codereview.chromium.org/1018043002

git-svn-id: svn://svn.chromium.org/blink/trunk@192100 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
favor DCHECK_CURRENTLY_ON for better logs in android_webview/
BUG=466848

Review URL: https://codereview.chromium.org/1013843002

Cr-Commit-Position: refs/heads/master@{#321125}
sigbjornf
Oilpan: adjust encrypted-media expectations following r192054.
R=haraken
BUG=441585

Review URL: https://codereview.chromium.org/1021473002

git-svn-id: svn://svn.chromium.org/blink/trunk@192090 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r192077.
TBR=oilpan-reviews
NOTRY=true

Review URL: https://codereview.chromium.org/1020453003

git-svn-id: svn://svn.chromium.org/blink/trunk@192089 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove Document.getOverrideStyle()
Intent to Deprecate and Remove:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/s3ezjTuC8ig/_IBbI5svjDoJ

BUG=468173

Review URL: https://codereview.chromium.org/1015943002

git-svn-id: svn://svn.chromium.org/blink/trunk@192076 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Simplify SVGPathBlender::blendArcToSegment
By factoring the "simple" (same coordinate type) case out of
SVGPathBlender::blendAnimatedFloatPoint, we can simplify the blending
of rx/ry/angle of two arc segments.
Additionally, since the m_fromMode == m_toMode if m_addTypesCount != 0,
the same expression can be used to determine the mode of the blended
segment.

BUG=467592

Review URL: https://codereview.chromium.org/1014023003

git-svn-id: svn://svn.chromium.org/blink/trunk@192073 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Allow cross-origin cssRules access to CORS-fetched stylesheet.
When accessing the cssRules property on CSSStyleSheet an origin check is
performed for non-inline stylesheets. Should that stylesheet have been
loaded from another origin following CORS, the access ought to be
permitted, but wasn't.

Address by having the link element (LinkStyle) record if the stylesheet
it creates was successfully fetched using CORS. If it was, the stylesheet
access check will succeed.

R=mkwst
BUG=467672

Review URL: https://codereview.chromium.org/1011103002

git-svn-id: svn://svn.chromium.org/blink/trunk@192066 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Move translate:none to the standard Fullscreen UA style sheet
As expected, it has now been added to the spec:
https://www.w3.org/Bugs/Public/show_bug.cgi?id=27931
https://fullscreen.spec.whatwg.org/#user-agent-level-style-sheet-defaults

BUG=402378

Review URL: https://codereview.chromium.org/1014853003

git-svn-id: svn://svn.chromium.org/blink/trunk@192056 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r192041.
TBR=oilpan-reviews
BUG=458222
NOTRY=true

Review URL: https://codereview.chromium.org/1014983002

git-svn-id: svn://svn.chromium.org/blink/trunk@192044 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r192035.
TBR=oilpan-reviews
BUG=458191
NOTRY=true

Review URL: https://codereview.chromium.org/1012073004

git-svn-id: svn://svn.chromium.org/blink/trunk@192043 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Normalize targetPoint first in parseArcToSegment
This simplifies the code a bit.

BUG=467592

Review URL: https://codereview.chromium.org/1017703002

git-svn-id: svn://svn.chromium.org/blink/trunk@192028 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Stop mutating inputs to decomposeArcToCubic
There's not a lot of gain from doing so, and not doing it will provide
more freedom to the caller (w/ handling of current point.)

BUG=467592

Review URL: https://codereview.chromium.org/1013183002

git-svn-id: svn://svn.chromium.org/blink/trunk@192027 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Remove custom implementation of History.state attribute getter
Using [CachedAttribute=stateChanged] gives equivalent generated code, so
there is no reason to have a custom implementation.

BUG=345519

Review URL: https://codereview.chromium.org/1013823005

git-svn-id: svn://svn.chromium.org/blink/trunk@192026 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Reorder the emittal parts of SVGPathParser::parse*
In preparation for separating normalization from "unaltered".

BUG=467592

Review URL: https://codereview.chromium.org/1016553007

git-svn-id: svn://svn.chromium.org/blink/trunk@192020 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
List IDL compiler sources as inputs to GN's idl_impl action
This simply copies the inputs of the similar idl_compiler action, and
fixes a dependency issue where e.g. UnionTypes{Core,Modules}.* would not
be regenerated properly when the compiler sources were modified.

BUG=240176, 321462

Review URL: https://codereview.chromium.org/1014793002

git-svn-id: svn://svn.chromium.org/blink/trunk@192014 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ed
[svg2] Make 'width' and 'height' presentation attributes
The following elements' width and height attributes have been made
into presentation attributes:

* mask
* rect
* image
* foreignObject

BUG=400725

Review URL: https://codereview.chromium.org/963733002

git-svn-id: svn://svn.chromium.org/blink/trunk@192013 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: have LifetimeNotifier<T> track its observers weakly.
Simplify the unregistration of lifetime observers upon finalization by
having LifetimeNotifier<> keep a WeakMember<> reference to them. As a
result the observers will no longer have to explicitly unregister
themselves when going away. Observers can still explicitly unregister,
should that be needed for other reasons.

R=haraken
BUG=462949, 467502

Review URL: https://codereview.chromium.org/1006253002

git-svn-id: svn://svn.chromium.org/blink/trunk@192011 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Drop SVGPathSegWithContext
SVGPathSegWithContext no longer adds any functionality to the SVGPathSeg
class hierarchy (SVGPathSeg now has a context.)

BUG=467592

Review URL: https://codereview.chromium.org/1011983003

git-svn-id: svn://svn.chromium.org/blink/trunk@192010 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Don't handle out-of-range parameters for arcs in UnalteredParsing mode
This means that pathSegList actually keeps/presents the out-of-range
parameters. (This behavior matches Gecko.)

BUG=467592

Review URL: https://codereview.chromium.org/1015433003

git-svn-id: svn://svn.chromium.org/blink/trunk@191990 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Drop SVGPathBuilder::m_current
This path consumer can only handle normalized paths, which means only
absolute commands.

BUG=467592

Review URL: https://codereview.chromium.org/1013753003

git-svn-id: svn://svn.chromium.org/blink/trunk@191989 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
IDL: Improve CG for attributes with [CachedAttribute]
Avoid converting the C++ value to a V8 value twice (once for the call to
V8HiddenValue::setHiddenValue() and once for the function return value)
by storing the converted value in a local and using that in both places.

The similar case attribute.is_keep_alive_for_gc already worked this way,
but with a different variable name ('wrapper' instead of 'v8Value').

The only significant CG change is that the Vector<String> returned by
Navigator::languages() is now converted only once, and that the same
resulting JavaScript array object is returned on the first access as on
subsequent accesses.

Review URL: https://codereview.chromium.org/1012713003

git-svn-id: svn://svn.chromium.org/blink/trunk@191980 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
favor DCHECK_CURRENTLY_ON for better logs in content/browser/[q-z]*
BUG=466848

Review URL: https://codereview.chromium.org/1005683003

Cr-Commit-Position: refs/heads/master@{#320804}
sigbjornf
Oilpan: fix build after r191945
TBR=oilpan-reviews
BUG=458222
NOTRY=true

Review URL: https://codereview.chromium.org/1014483005

git-svn-id: svn://svn.chromium.org/blink/trunk@191952 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r191942.
TBR=oilpan-reviews
BUG=467059
NOTRY=true

Review URL: https://codereview.chromium.org/1014533006

git-svn-id: svn://svn.chromium.org/blink/trunk@191951 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Missing collectMatchingShadowHostRules call from hasAnyMatchingRules.
This caused style to be incorrectly shared between two different hosts
with different matching for :host([attr]).

Regression from https://codereview.chromium.org/789403005

R=kochi@chromium.org
BUG=466815

Review URL: https://codereview.chromium.org/1009893004

git-svn-id: svn://svn.chromium.org/blink/trunk@191947 bbb929c8-8fbe-4397-9dbb-9b2b20218538
tmoniuszko
Fix includes in exclusive_access_controller_base.cc
BUG=

Review URL: https://codereview.chromium.org/1008403002

Cr-Commit-Position: refs/heads/master@{#320765}
fs
Drop declarations without matching definitions from SVGPathUtilities.h
appendSVGPathByteStreamFromSVGPathSeg and buildStringFromSVGPathSegList
lack corresponding definitions.
Also drop related forward declarations and includes.

Review URL: https://codereview.chromium.org/1014473003

git-svn-id: svn://svn.chromium.org/blink/trunk@191941 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Correct LayoutPagedFlowThread::name().
Review URL: https://codereview.chromium.org/1001803002

git-svn-id: svn://svn.chromium.org/blink/trunk@191938 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Drop unused includes for SVG path machinery
Drops some includes of PassOwnPtr.h from path-source implementations
and the path parser as well as an include of WTFString.h from the
latter.

Review URL: https://codereview.chromium.org/1004803006

git-svn-id: svn://svn.chromium.org/blink/trunk@191937 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Don't allow <stop> as layout tree child of <svg> or <g>
LayoutSVGGradientStop would be allowed as children of <svg>, <g> and
other containers which could trigger asserts and wreck havoc.

BUG=466937

Review URL: https://codereview.chromium.org/1009923002

git-svn-id: svn://svn.chromium.org/blink/trunk@191932 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: promptly release FilterData on LayoutSVGResourceFilter destruction
For Oilpan, mirror the prompt release of the resources attached to
FilterData, instead of leaving it until the next GC strikes.

R=haraken,fs@opera.com
BUG=467542

Review URL: https://codereview.chromium.org/1010673005

git-svn-id: svn://svn.chromium.org/blink/trunk@191921 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Sync the Event, EventTarget and CustomEvent interfaces with the spec
https://dom.spec.whatwg.org/#interface-event
https://dom.spec.whatwg.org/#interface-eventtarget
https://dom.spec.whatwg.org/#interface-customevent

Note that the EventListener argument for add/removeEventListener() is
named callback in the spec but left as listener here, as custom code in
Source/bindings/templates/methods.cpp to deal with missing arguments
depends on it. Sorting this out is left to http://crbug.com/353484

There are no observable changes to the generated code.

BUG=460722, 353484

Review URL: https://codereview.chromium.org/1005193002

git-svn-id: svn://svn.chromium.org/blink/trunk@191913 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Merge Element::offsetParentForBindings() into offsetParent()
This split was introduced with a fix for "offsetParent should never
return nodes in user agent Shadow DOM to script" in 2013:
https://trac.webkit.org/changeset/146037

SpatialNavigations's rectToAbsoluteCoordinates was the only internal use
of Element::offsetParent(). Rewrite that in a way that preserves the
existing behavior.

Review URL: https://codereview.chromium.org/994903003

git-svn-id: svn://svn.chromium.org/blink/trunk@191902 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: consistently use IsGarbageCollectedMixin<> trait.
Use blink::IsGarbageCollectedMixin<T> to test if the object
T implements GarbageCollectedMixin. It handles objects that
have multiple GarbageCollectedMixin bases.

With that in place for WebPrivatePtr<>'s LifetimeOf trait,
SpeechRecognition's specialization for it can be retired.

R=haraken
BUG=420515
TBR=tkent

Review URL: https://codereview.chromium.org/1007803004

git-svn-id: svn://svn.chromium.org/blink/trunk@191900 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Fix windowclient-focus test expectation.
TBR=mkwst@chromium.org,mlamouri@chromium.org
BUG=466943
NOTRY=true

Review URL: https://codereview.chromium.org/1008243004

git-svn-id: svn://svn.chromium.org/blink/trunk@191895 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Mark http/tests/misc/client-hints-{no,invalid}-accept tests as failing.
TBR=yoaw@yoaw.ws
BUG=467450
NOTRY=true

Review URL: https://codereview.chromium.org/1009253002

git-svn-id: svn://svn.chromium.org/blink/trunk@191894 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Sync the HTMLM*Element interfaces with the spec
No FIXME was added for HTMLMapElement.images, as it seems unlikely that
we will actually implement it. A spec bug was filed instead:
https://www.w3.org/Bugs/Public/show_bug.cgi?id=28219

There are no changes to the generated code other than order.

BUG=460722

Review URL: https://codereview.chromium.org/1011593002

git-svn-id: svn://svn.chromium.org/blink/trunk@191890 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Remove LifecycleNotifier<>::m_context.
It serves no purpose any longer to keep this self reference around,
hence retire m_context.

Also, move isContextThread() up to ExecutionContext; a more natural place
to position the predicate.

R=haraken
BUG=462949

Review URL: https://codereview.chromium.org/1008113002

git-svn-id: svn://svn.chromium.org/blink/trunk@191883 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Remove ExecutionContext::lifecycleNotifier.
No longer used nor created by ExecutionContext, remove entirely.

Notice that this will make ExecutionContext::isIteratingOverObservers()
now return an accurate status (it was always 'false' before.)

R=haraken
BUG=462949

Review URL: https://codereview.chromium.org/1009623002

git-svn-id: svn://svn.chromium.org/blink/trunk@191880 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
[New Multicolumn] Make positionForPoint() work.
When we decide to look "inside" a column set for text content, convert
the visual point to a flow thread point, and then redirect to the flow
thread. The flow thread is where the actual content is; column sets
are always childless. Also make sure that we don't enter flow threads
directly, since they are not visual.

This improves text selecting when hitting something outside the
columns (in the area around the multicol container, or in gaps between
columns).

Re-enable some old tests that now pass because of this change.

The old (current) multicol implementation deals with this in
LayoutBlock::adjustPointToColumnContents().

BUG=461352
R=dsinclair@chromium.org,jchaffraix@chromium.org

Review URL: https://codereview.chromium.org/978603003

git-svn-id: svn://svn.chromium.org/blink/trunk@191869 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
WebKitCSSMatrix: Avoid crash resolving relative lengths.
The initial styles created to resolve lengths did not properly construct
a font which caused a crash trying to resolve 'ex' and 'ch' units. Call
Font::update() to construct a dummy font.

There is no document here to the deduce the initial font from. What to do
with relative lengths and percentages has been discussed for the
standardization of DOMMatrix, and the current draft says only absolute
lengths should be allowed [1].

I chose not to try to align with that as WebKitCSSMatrix is a proprietary
api. FWIW, viewport relative units were already resolved against an emtpy
viewport.

[1] http://dev.w3.org/fxtf/geometry/#dommatrix-constructors

R=leviw@chromium.org
BUG=414145

Review URL: https://codereview.chromium.org/1005523002

git-svn-id: svn://svn.chromium.org/blink/trunk@191865 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Add UseCounters for Element.offset*
Add HTMLElement.offset* (which is per spec) to shadow Element.offset*,
so that the new counters will only trigger for non-HTML elements.

It seems likely that usage could be high without actually implying that
removal would break anything, but wait to see the data...

BUG=463116

Review URL: https://codereview.chromium.org/1007683002

git-svn-id: svn://svn.chromium.org/blink/trunk@191864 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Some minor touch-ups to the SVG content-model test framework
* Update references to filter spec. and make feDropShadow a proper
  filter primitive.
* Rename needChld to needChild.
* Sync tags table and classes with SVG2.
* Minor simplifications to class expansion and child-creation.

Review URL: https://codereview.chromium.org/1006863002

git-svn-id: svn://svn.chromium.org/blink/trunk@191856 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
favor DCHECK_CURRENTLY_ON for better logs in content/browser/[a-d]*
BUG=466848

Review URL: https://codereview.chromium.org/1008613002

Cr-Commit-Position: refs/heads/master@{#320527}
ed
[svg] 'keyTimes' values should allow surrounding whitespace.
BUG=467000

Review URL: https://codereview.chromium.org/1007843002

git-svn-id: svn://svn.chromium.org/blink/trunk@191854 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: trace non-owned InspectorOverlay references.
The agent objects keeping a reference to their controlling object's
InspectorOverlay should trace the reference, as InspectorOverlay is now
on the heap.

R=haraken
BUG=340522

Review URL: https://codereview.chromium.org/1008813002

git-svn-id: svn://svn.chromium.org/blink/trunk@191844 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Improve debuggability of failed GCState transitions.
Make use of the call stack to help diagnose unexpected GCState transitions.

R=haraken
BUG=420515

Review URL: https://codereview.chromium.org/1007773002

git-svn-id: svn://svn.chromium.org/blink/trunk@191841 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Remove decl for undefined&unused MediaKeySession::enqueueEvent() method.
R=haraken

Review URL: https://codereview.chromium.org/1000423002

git-svn-id: svn://svn.chromium.org/blink/trunk@191838 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ed
[svg2] <pattern> doesn't have x and y presentation attributes
BUG=400725

Review URL: https://codereview.chromium.org/1006493002

git-svn-id: svn://svn.chromium.org/blink/trunk@191837 bbb929c8-8fbe-4397-9dbb-9b2b20218538
landell
Paint buffered range that is within delta from CT
    
This patch make sure to avoid cases where the current position and buffered ranges are slightly out of sync and the buffered ranges would not be painted

BUG=460904

Review URL: https://codereview.chromium.org/982553002

git-svn-id: svn://svn.chromium.org/blink/trunk@191830 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Allow GCScheduledForTesting ThreadState transition while sweeping-idle.
Add missing case for transitioning to GCScheduledForTesting while in the
SweepingAndIdleGCScheduled state.

R=haraken
BUG=420515

Review URL: https://codereview.chromium.org/1003113002

git-svn-id: svn://svn.chromium.org/blink/trunk@191827 bbb929c8-8fbe-4397-9dbb-9b2b20218538
tmoniuszko
Allow setting enable_remoting from gn args
BUG=

Review URL: https://codereview.chromium.org/993533002

Cr-Commit-Position: refs/heads/master@{#320469}
sigbjornf
Oilpan: mark ResourceCacheValidationSuppressor as a stack allocated object.
R=haraken
BUG=340522

Review URL: https://codereview.chromium.org/1003763002

git-svn-id: svn://svn.chromium.org/blink/trunk@191819 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: turn StyleResourceLoader into a traced part object.
Thereby tracing its Document reference.

R=haraken
BUG=340522

Review URL: https://codereview.chromium.org/998333002

git-svn-id: svn://svn.chromium.org/blink/trunk@191816 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Move loading machinery out of LoadableTextTrack
Currently, the code to load a text track is spread between
HTMLTrackElement, LoadableTextTrack and TextTrackLoader - where the former
two create the loader and respond to events from it. It's not obvious what
the responsibilities are for each of HTMLTrackElement and
LoadableTextTrack.
To clear this up a bit, move the shared loading responsibilities into
HTMLTrackElement only. This makes the code-flow more clear and even reduces
the amount of state involved.
Also update the spec prose comments and attempt to simplify the code
somewhat.

BUG=466083

Review URL: https://codereview.chromium.org/999773002

git-svn-id: svn://svn.chromium.org/blink/trunk@191812 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
remove duplicate friend declaration
Followup to https://codereview.chromium.org/983853002

BUG=455312

Review URL: https://codereview.chromium.org/1000323002

Cr-Commit-Position: refs/heads/master@{#320421}
rune
Rename default -> initial style and use singletons.
Default style is normally referred to the style after UA style has been
applied. Renamed to 'initial' in the cases where we really mean initial
style to avoid confusion.

Made initial style construction singletons by making the methods in
LayoutStyle and SVGLayoutStyle private. There were a couple of places
where extra copies were created unnecessarily.

R=leviw@chromium.org

Review URL: https://codereview.chromium.org/1001833002

git-svn-id: svn://svn.chromium.org/blink/trunk@191795 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Skip removal of stylesheet candidate node if not added.
There is a flag saying whether it was added which was already in use in
StyleElement::removedFrom. Also removed an unnecessary test and bogus
comment for HTMLLinkElement. StyleElement is only used by HTMLStyleElement
and SVGStyleElement.

Review URL: https://codereview.chromium.org/980343002

git-svn-id: svn://svn.chromium.org/blink/trunk@191792 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r191767 (551c15ee).
R=kouhei
BUG=466007

Review URL: https://codereview.chromium.org/1005473002

git-svn-id: svn://svn.chromium.org/blink/trunk@191777 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Remove temporary OS(ANDROID) for @viewport.
Temporarily introduced for two-sided patch:

https://codereview.chromium.org/979033003
https://codereview.chromium.org/989963002

R=aelias@chromium.org

Review URL: https://codereview.chromium.org/989973002

git-svn-id: svn://svn.chromium.org/blink/trunk@191768 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Trigger use of viewportAndroid.css through new setting.
A setting is used instead of an OS(ANDROID) ifdef in blink in [1]. This
CL enables that setting for Android on the chromium side along with other
Android specific settings.

[1] https://codereview.chromium.org/979033003/

Review URL: https://codereview.chromium.org/989963002

Cr-Commit-Position: refs/heads/master@{#320251}
ed
Handle more <length> properties in css/web animation.
This change adds the following properties to the LengthStyleInterpolation codepath:

'cx', 'cy', 'r', 'rx', 'ry' and 'stroke-dashoffset'

BUG=400725

Review URL: https://codereview.chromium.org/991533003

git-svn-id: svn://svn.chromium.org/blink/trunk@191762 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Hide call to removeDisplayTree in CueTimeline
TextTrack::setMode explicitly cleans out the display trees of its cues.
Move this into a new method - hideCues() - on CueTimeline and call that
instead. This keeps the manipulation of the display representation in a
single place.

BUG=321654

Review URL: https://codereview.chromium.org/994353003

git-svn-id: svn://svn.chromium.org/blink/trunk@191748 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Move code from StyleResolver to ViewportStyleResolver.
@viewport rule collection is moved to ViewportStyleResolver. This removes
the last StyleResolver dependency from ScopedStyleResolver.

Removed an unnecessary null check for m_document in ViewportStyleResolver
which should always be non-null.

Moved resetAuthorStyle() to skip the call when the ScopedStyleResolver is
deleted immediately afterwards.

Load the viewport UA style into CSSDefaultStyleSheets once instead
of parsing it from InspectorPageAgent every time it is applied. Also
apply the UA style from ViewportStyleResolver instead of the
InspectorPageAgent to remove resolver dependencies from the inspector
code. The application of the UA style is controlled by a setting instead
of and OS(ANDROID) #if in Blink.

The introduction of the setting is a two-sided patch with this CL and [1].
[2] removes the OS(ANDROID) check completely.

[1] https://codereview.chromium.org/989963002/
[2] https://codereview.chromium.org/989973002/

Review URL: https://codereview.chromium.org/979033003

git-svn-id: svn://svn.chromium.org/blink/trunk@191747 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: use a cross-thread persistent for per-isolate ScriptDebugServers.
TBR=oilpan-reviews
BUG=462572
NOTRY=true

Review URL: https://codereview.chromium.org/998933004

git-svn-id: svn://svn.chromium.org/blink/trunk@191735 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r191721 (b3a40c954).
TBR=oilpan-reviews
BUG=437770
NOTRY=true

Review URL: https://codereview.chromium.org/1003473003

git-svn-id: svn://svn.chromium.org/blink/trunk@191730 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r191713 (4c9f53fdbb).
TBR=oilpan-reviews
BUG=462572
NOTRY=true

Review URL: https://codereview.chromium.org/1001603002

git-svn-id: svn://svn.chromium.org/blink/trunk@191729 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Documentation for webview settings in Settings.in
Clarified what the wide viewport and overview mode settings are for.

R=aelias@chromium.org

Review URL: https://codereview.chromium.org/979243005

git-svn-id: svn://svn.chromium.org/blink/trunk@191722 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix webkit unit tests after r191696 (d325d00a5).
TBR=oilpan-reviews
NOTRY=true

Review URL: https://codereview.chromium.org/993383002

git-svn-id: svn://svn.chromium.org/blink/trunk@191707 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Do really include the beacon Blob content type if valid.
The setting of a Blob beacon's content type was plain wrong and
uninteresting.

R=haraken
BUG=466038

Review URL: https://codereview.chromium.org/996143002

git-svn-id: svn://svn.chromium.org/blink/trunk@191700 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Add an explicit dispose step for WebDevToolsAgentImpl.
In order to provide an orderly shutdown of a WebViewImpl's
WebDevToolsAgentImpl object, add a dispose() step before clearing out
its reference. Delaying the dispose steps until WebDevToolsAgentImpl
is finalized, is incompatible with Oilpan.

R=haraken
BUG=451004

Review URL: https://codereview.chromium.org/996163002

git-svn-id: svn://svn.chromium.org/blink/trunk@191698 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Don't recurse in LengthStyleInterpolation helper constructCalcExpression
The mixed for-loop and recursion made this helper function look more
complicated than it needed to be. Make it iterate only using the
for-loop.

Review URL: https://codereview.chromium.org/995033002

git-svn-id: svn://svn.chromium.org/blink/trunk@191696 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Sync the HTMLL*Element interfaces with the spec
No observable changes are intended.

BUG=460722

Review URL: https://codereview.chromium.org/996833002

git-svn-id: svn://svn.chromium.org/blink/trunk@191691 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Move IsPointerConvertible<T, JSONValue> specialization out of TypeTraits.h
Preferable to have it next to the type's declaration.

R=tkent,haraken

Review URL: https://codereview.chromium.org/991373002

git-svn-id: svn://svn.chromium.org/blink/trunk@191688 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Add [NewObject] and [SameObject] to various interfaces
This only updates interfaces which have already been touched as part of
"Sync IDL files with specs", many interfaces remain to be sync'd.

BUG=460722, 462913

Review URL: https://codereview.chromium.org/998673002

git-svn-id: svn://svn.chromium.org/blink/trunk@191675 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Move TextTrackContainer::updateSizes to the layout-side
This method is only called from the corresponding LayoutObject
(LayoutTextTrackContainer), so move it and its state there instead.
When the text track container has been properly separated from the media
controls it should be possible to simplify this further by doing this in
the media element's layout object.

BUG=448795

Review URL: https://codereview.chromium.org/994063003

git-svn-id: svn://svn.chromium.org/blink/trunk@191653 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Stop pushing the value of 'default' to LoadableTextTrack
This value is only used during track selection, and caching the value
should have little impact since this is not a very performance-sensitive
code-path. Simply check for existance of the attribute instead.

This also works around an issue with ASAN and inline-capacity Vectors.

BUG=464065

Review URL: https://codereview.chromium.org/993613005

git-svn-id: svn://svn.chromium.org/blink/trunk@191652 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r191643 (4e6a640c).
TBR=oilpan-reviews
BUG=459001
NOTRY=true

Review URL: https://codereview.chromium.org/995923002

git-svn-id: svn://svn.chromium.org/blink/trunk@191651 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ed
[S.P.] Move filter painting to SVGFilterPainter.
BUG=462077

Review URL: https://codereview.chromium.org/992213002

git-svn-id: svn://svn.chromium.org/blink/trunk@191645 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r191633.
TBR=oilpan-reviews
BUG=461149
NOTRY=true

Review URL: https://codereview.chromium.org/994083002

git-svn-id: svn://svn.chromium.org/blink/trunk@191642 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Add [TypeChecking=Interface] to XSLTProcessor interface
Also make affected arguments (to importNode() and transformTo*()) non-
optional, like in Firefox. It makes no sense to call either function
without any of the arguments, and the previous behavior was to fail
silently in that case.

Also make the return type of transformTo*() nullable to reflect how they
are actually implemented; they currently return null on failure.

BUG=462561

Review URL: https://codereview.chromium.org/996603003

git-svn-id: svn://svn.chromium.org/blink/trunk@191639 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Gracefully handle mixed content checking on detached resource fetches.
Do not assume the presence of a frame() when performing the mixed content
checks in ResourceFetcher::canRequest().

R=mkwst@chromium.org
BUG=461225

Review URL: https://codereview.chromium.org/995783002

git-svn-id: svn://svn.chromium.org/blink/trunk@191636 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
IDL: Support [NewObject] and [SameObject] extended attributes
This patch only adds the names to the list of allowed extended attribute,
so that having them in the IDL doesn't cause compilation errors.

Using them has no effect on the generated code; we're allowing them so
that IDL files can use the same syntax as specifications.

BUG=462913

Review URL: https://codereview.chromium.org/993543003

git-svn-id: svn://svn.chromium.org/blink/trunk@191621 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: promptly free per-frame document heap vector.
The per-frame updating of animations create a small vector
on the heap each time around. Most of the time the update checking
will not trigger additional heap allocations (or work), so by promptly
releasing the heap vector, the allocation pointer can simply be reset.

R=haraken
BUG=420515

Review URL: https://codereview.chromium.org/994483002

git-svn-id: svn://svn.chromium.org/blink/trunk@191615 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove the FIXME for Text.getDistributedNodes()
It has been added to the spec:
https://www.w3.org/Bugs/Public/show_bug.cgi?id=28069

BUG=460722
NOTRY=true

Review URL: https://codereview.chromium.org/998473002

git-svn-id: svn://svn.chromium.org/blink/trunk@191607 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Drop FIXME about unrestricted doubles in ScrollToOptions
The specification was updated[1] to use unrestricted doubles, so our code
now matches the specification.

[1] https://hg.csswg.org/drafts/rev/d8db5444d4d1

BUG=354298

Review URL: https://codereview.chromium.org/994553002

git-svn-id: svn://svn.chromium.org/blink/trunk@191605 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Sync HTML element interfaces H-K with the spec
In the HTMLInputElement interface some comments documenting the change
history were removed. The link for the value attribute was added in
https://trac.webkit.org/changeset/134538 to document an #ifdef at the
time, but that is no longer needed.

No observable changes are intended.

BUG=460722

Review URL: https://codereview.chromium.org/990993004

git-svn-id: svn://svn.chromium.org/blink/trunk@191601 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rchlodnicki
Fix crash on referencing deleted SignedInDevicesManager observer
Each profile creates new instance of SignedInDevicesManager so, for example,
opening incognito window and then closing it, destroyes an instance of
SignedInDevicesManager created for this profile. The code has forgot to remove
itself from the list of observers in EventRouter.
That caused crash when that event was triggered later in a normal profile as
EventRouter would reference stale pointer.

In tests observer is not added and profile_ is null so null-checking it.

R=rdevlin.cronin@chromium.org
BUG=

Review URL: https://codereview.chromium.org/980663002

Cr-Commit-Position: refs/heads/master@{#319755}
ed
[svg2] Make 'cx', 'cy' and 'r' presentation attributes
The following elements' cx and cy attributes have been made
into presentation attributes:

* circle
* ellipse

and the 'r' attribute on <circle>.

BUG=400725

Review URL: https://codereview.chromium.org/980233002

git-svn-id: svn://svn.chromium.org/blink/trunk@191575 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Remove internal uses of TrackDisplayUpdateScope in CueTimeline
Separate the interval update from the update of the active cue list by
moving the former into {add,remove}CueInternal and then calling those
where appropriate.

BUG=321654

Review URL: https://codereview.chromium.org/993563002

git-svn-id: svn://svn.chromium.org/blink/trunk@191558 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Drop TrackDisplayUpdateScope in HTMLMediaElement::removeTextTrack
This will end up calling TextTrack::setTrackList (if needed) which
calls CueTimeline::removeCues - which is already doing a "batched"
update.

BUG=321654

Review URL: https://codereview.chromium.org/990183002

git-svn-id: svn://svn.chromium.org/blink/trunk@191555 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Sync HTML element interfaces C-D with the spec
There are no changes to the generated code except ordering.

BUG=460722

Review URL: https://codereview.chromium.org/988173002

git-svn-id: svn://svn.chromium.org/blink/trunk@191547 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Add [TypeChecking=Interface] to XPath interfaces
Also make all arguments non-optional, make some nullable, change the type
of XPathResult input arguments to "object?" and drop the custom bindings
for DocumentXPathEvaluator.evaluate() (which did nothing special at all).

All this matches Firefox's behavior, and the informal "specification" at
https://wiki.whatwg.org/wiki/DOM_XPath as well as, to some degree, the
older specification at http://www.w3.org/TR/DOM-Level-3-XPath.

The changed type of XPathResult input arguments means that any object can
be used for those arguments, but the value is not used at all in our
implementation anyway, so strictly checking that an XPathResult is passed
serves little purpose in practice.

BUG=462561

Review URL: https://codereview.chromium.org/983123003

git-svn-id: svn://svn.chromium.org/blink/trunk@191546 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Use Length for the stroke-width property in SVGLayoutStyle
Straight-forward if it hadn't been for the default value - "1" - which
does not interact well with the zoom (is not affected by it). To deal
with that, introduce a helper wrapper - UnzoomedLength - and use that
instead of a plain Length.
The animation framework is changed to use AnimatedLength and
LengthStyleInterpolation. This leaves AnimatedSVGLength and
SVGLengthStyleInterpolation unused, so they are removed.

BUG=461375

Review URL: https://codereview.chromium.org/983103003

git-svn-id: svn://svn.chromium.org/blink/trunk@191544 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: avoid disabling GC plugin checks over Node.
With the GC plugin now recognizing GC_PLUGIN_IGNORE() on "operator new"
overrides, move down Node's annotation.

R=haraken
BUG=443854

Review URL: https://codereview.chromium.org/986113004

git-svn-id: svn://svn.chromium.org/blink/trunk@191543 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Start separating the text track container from the media controls
Having the text track container as a part of the media controls makes it
harder to show and hide the controls as a group, which would be useful.

This CL prepares for this by moving and renaming code, with no observable
difference. However, some small drive-by fixes are included:

TextTrackContainer::m_videoDisplaySize is made into an IntSize, since
the position part is never used. It's also renamed to just m_videoSize.

(Based on https://codereview.chromium.org/949203002/)

BUG=448795

Review URL: https://codereview.chromium.org/988763002

git-svn-id: svn://svn.chromium.org/blink/trunk@191538 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Remove unnecessary add/removeObserver lifetime notifier indirections.
With LifetimeNotifier<T,O>::{add,remove}Observer(O*) now being type
accurate & safe, we can simply expose these as public and avoid having
to define&declare forwarding versions. Unless the overriding is needed
(e.g., ContextLifecycleNotifier::addObserver().)

R=haraken
BUG=462949

Review URL: https://codereview.chromium.org/991763002

git-svn-id: svn://svn.chromium.org/blink/trunk@191537 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Add [TypeChecking=Interface] to Animation interface
This affects its constructor, which takes a (nullable) Element argument,
and with this change throws a TypeError if the argument value is not null,
undefined or an element. Previously it would treat all non-element values
as null.

BUG=462561

Review URL: https://codereview.chromium.org/962963008

git-svn-id: svn://svn.chromium.org/blink/trunk@191532 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: avoid ODR warning when linking heap unit tests.
Do not replace blink::Node in unit tests and risk triggering linker ODR
warnings, but instead define a uniquely named test object and assign it
to the Node typed heap.

R=haraken
BUG=420515,449754

Review URL: https://codereview.chromium.org/992603002

git-svn-id: svn://svn.chromium.org/blink/trunk@191530 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Update MediaKeySession lifetime description to be Oilpan reality-based.
MediaKeys are now referred to by way of WeakMember<> (was: WeakPtr<>);
update comment to reflect that.

Also, remove some redundant WeakPtr.h includes.

R=haraken
BUG=340522

Review URL: https://codereview.chromium.org/976613002

git-svn-id: svn://svn.chromium.org/blink/trunk@191527 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Sync HTML element interfaces A-B with the spec
There are no changes to the generated code except ordering.

BUG=460722

Review URL: https://codereview.chromium.org/991513002

git-svn-id: svn://svn.chromium.org/blink/trunk@191522 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Sync HTML element interfaces E-F with the spec
Changing the HTMLFieldSetElement and HTMLFormElement.elements type from
HTMLCollection to HTMLFormControlsCollection does not change behavior,
since they already return a HTMLFormControlsCollection in C++ and that
object is wrapped correctly. Only some includes change in the generated
code.

Other than that, there are no changes to the generated code other than
the order.

HTMLFormElement.action is reflected as a URL by us and other tested
browsers, so a spec bug was filed to make the spec agree:
https://www.w3.org/Bugs/Public/show_bug.cgi?id=28169

BUG=460722

Review URL: https://codereview.chromium.org/980703006

git-svn-id: svn://svn.chromium.org/blink/trunk@191507 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: disable conservative GCs during initial GC mixin construction.
Another, more effective, attempt at disallowing conservative GCs from
striking while constructing a GC mixin object and it is not in a
well-formed state to allow a GC to strike.

GC mixins now override 'operator new', which along with taking care of
the allocation request, disables conservative GCs. GCs are kept disabled
until the constructors of the mixin's inherited classes have run and
the mixin itself is in a well-formed state to re-enable GCs.

Arrange for that re-enabling by way of a private field to an empty type
with a constructor that takes care of the underlying details. All of this
is hidden from direct view to the Blink code, still only requiring that
GC mixin instances declare themselves as such by using the
USING_GARBAGE_COLLECTED_MIXIN(Type) macro.

R=haraken
BUG=456823

Review URL: https://codereview.chromium.org/980653002

git-svn-id: svn://svn.chromium.org/blink/trunk@191501 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Sync the HTMLCollection interfaces with the specs
https://dom.spec.whatwg.org/#interface-htmlcollection
https://html.spec.whatwg.org/#the-htmlallcollection-interface
https://html.spec.whatwg.org/#the-htmlformcontrolscollection-interface
https://html.spec.whatwg.org/#the-htmloptionscollection-interface

There are no changes to the generated code other than the order.

The console-format-collections.html test expectations depended on a
specific order and were updated.

BUG=460722

Review URL: https://codereview.chromium.org/990613002

git-svn-id: svn://svn.chromium.org/blink/trunk@191492 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Sync the HTMLElement interface with the spec
https://html.spec.whatwg.org/#htmlelement

BUG=460722

Review URL: https://codereview.chromium.org/983213002

git-svn-id: svn://svn.chromium.org/blink/trunk@191490 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Sync the Window interface with the many specs
https://html.spec.whatwg.org/#the-window-object
and many other specs with partial Window interfaces.

Add UseCounters to the non-standard things that didn't already have
them, and put MeasureAs/DeprecatedAs at the beginning of each line to
make it more obvious that they are all counted.

prompt()'s second argument was left as |defaultValue|, as |default| is
a C++ keyword.

The only changes to the generated code are due to renamed arguments and
added UseCounters.

BUG=460722

Review URL: https://codereview.chromium.org/984943002

git-svn-id: svn://svn.chromium.org/blink/trunk@191461 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Move "zoomAndPan enabled" logic from SVGDocumentExtensions to SVGSVGElement
This isolates access to the viewSpec to SVGSVGElement.

Review URL: https://codereview.chromium.org/986603002

git-svn-id: svn://svn.chromium.org/blink/trunk@191443 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Reland: Add [TypeChecking=Interface] to Range interface
All functions already threw exceptions for invalid argument values, but
DOMException exceptions instead of TypeError exceptions.

Throwing TypeError exceptions matches Firefox's behavior.

Note that the null checks are kept in the implementation since many of
the functions are called from C++ code that in some cases depend on the
existing error handling of invalid input.

BUG=462561

Review URL: https://codereview.chromium.org/974823002

git-svn-id: svn://svn.chromium.org/blink/trunk@191442 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Sync the Touch-related interfaces with the two specs
Unfortunately there does not appear to be a single well-maintained spec
that deals with all of this, but these documents from the Touch Events
Community Group seem to be the most recently updated:
http://rawgit.com/w3c/touch-events/v1-errata/touchevents.html
http://rawgit.com/w3c/touch-events/master/touchevents.html

There are no changes to the generated code except for changes in order.

BUG=460722

Review URL: https://codereview.chromium.org/982273002

git-svn-id: svn://svn.chromium.org/blink/trunk@191441 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Add [TypeChecking=Interface] to Node interface
This changes the behavior of the methods

  compareDocumentPosition(Node)
  contains(Node?)
  isEqualNode(Node?)
  isSameNode(Node?)

that now throw TypeError exceptions instead of returning false when called
with invalid arguments. The argument to isSameNode() is also made
required instead of optional, meaning it will also throw TypeError when
called without arguments.

The new behavior matches Firefox, except in the case of isSameNode() which
Firefox doesn't support. (The method has been removed from the spec.)

The new behavior of compareDocumentPosition() and isEqualNode() also matches
IE11.

BUG=462561

Review URL: https://codereview.chromium.org/978223002

git-svn-id: svn://svn.chromium.org/blink/trunk@191440 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r191432 (5bc98fff).
TBR=oilpan-reviews
BUG=461375
NOTRY=true

Review URL: https://codereview.chromium.org/986633002

git-svn-id: svn://svn.chromium.org/blink/trunk@191439 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Rearrange the Window interface to match the many specs
https://html.spec.whatwg.org/#the-window-object
and many other specs with partial Element interfaces.

To make reviewing easier, this commit only changes the order of lines
and adds comments. Actual spec sync will be done separately.

The order of the generated code changes, but there are no actual
changes.

BUG=460722

Review URL: https://codereview.chromium.org/988683002

git-svn-id: svn://svn.chromium.org/blink/trunk@191435 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Use Length for the stroke-dasharray property in SVGLayoutStyle
This replaces the SVGLengthList used for strokeDashArray in
SVGLayoutStyle with a (reference-counted) Vector of Lengths.
SVGStrokeDasharrayStyleInterpolation is updated to treat a dash array in
a similar fashion, by having a list of LengthStyleInterpolations.
The storage of types in SVGStrokeDasharrayStyleInterpolation is dropped
for the same reason. AnimatableStrokeDasharrayList is updated to use
AnimatableLengths instead of AnimatableSVGLengths.

BUG=461375

Review URL: https://codereview.chromium.org/975733002

git-svn-id: svn://svn.chromium.org/blink/trunk@191432 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ed
[S.P.] Move clip painting to SVGClipPainter.
BUG=462077

Review URL: https://codereview.chromium.org/979883002

git-svn-id: svn://svn.chromium.org/blink/trunk@191430 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ed
Check Ahem font ex units on multiple platforms.
BUG=441840

Review URL: https://codereview.chromium.org/890013004

git-svn-id: svn://svn.chromium.org/blink/trunk@191427 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: remove GlobalFetch GC plugin ignorance.
The latest clang roll (http://crbug.com/444089) includes
the GC plugin fix from 444740. Hence, we can retire the
GC_PLUGIN_IGNORE() and depend on it.

R=haraken
BUG=444740

Review URL: https://codereview.chromium.org/989483002

git-svn-id: svn://svn.chromium.org/blink/trunk@191419 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Match the Fullscreen spec's CSS as far as currently practical
This change was prompted by the "Fullscreen API bug fixes" blink-dev
thread started by Ali Alabbas at Microsoft:
https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/f-V2GWatXkA

This is very similar to, and borrows from, the in-progress review to
move Fullscreen to the top layer system:
https://codereview.chromium.org/788073004/

With this change, any fullscreen element (except :root) will have
style applied that makes match the screen size, where previously this
was only done for iframe and video. This will cause a re-layout of
those elements when entering and exiting fullscreen, with the side
effect that the full-screen-render-inline.html test now works. While
the bug does not reproduce now, the underlying cause has not been
fixed, the move to top layer is probably the best cure.

iframe:-webkit-full-screen { border: none; } was previously
!important, but isn't in the spec. This is the cause of the changed
test expectations for full-screen-iframe-zIndex.html.

The flex:1 and display:block rules for audio and video originate from
a Vimeo fullscreen bug: https://bugs.webkit.org/show_bug.cgi?id=58291

With the size and position of the fullscreen element forced to match
the viewport by the UA style sheet, neither of these rules should have
any observable effect, so they are removed.

BUG=402378, 246077

Review URL: https://codereview.chromium.org/974783002

git-svn-id: svn://svn.chromium.org/blink/trunk@191409 bbb929c8-8fbe-4397-9dbb-9b2b20218538
wdzierzanowski
Use variadic template in media::BindToCurrentLoop()
Stop using pump.y to generate media/base/bind_to_current_loop.h and use
a variadic template instead.

This is a mirror change of
https://crrev.com/c87149e666acfe39d49d7f30a5fd9acc7ef085ea.

TEST=media_unittests

Review URL: https://codereview.chromium.org/978923004

Cr-Commit-Position: refs/heads/master@{#319343}
sigbjornf
Oilpan: fix build after r191383 (93780455).
TBR=oilpan-reviews
BUG=441500
NOTRY=true

Review URL: https://codereview.chromium.org/979033005

git-svn-id: svn://svn.chromium.org/blink/trunk@191385 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Add [TypeChecking=Unrestricted] to SubtleCrypto interface
This only changes the error messages of the TypeError exceptions thrown.

Also clean up C++-side error handling, some of which was already
unnecessary.

BUG=462561

Review URL: https://codereview.chromium.org/978353002

git-svn-id: svn://svn.chromium.org/blink/trunk@191380 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Delay testing lifecycle observers until known to be alive.
When iterating, ContextLifecycleNotifier must be able to cope with
pointer references to ContextLifecycleObservers that may have been
destructed while iterating&notifying others.

Delay the observer type check until we've verified that the observer is
alive.

R=haraken
BUG=464285

Review URL: https://codereview.chromium.org/983713004

git-svn-id: svn://svn.chromium.org/blink/trunk@191372 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
fix typo in GN target comment
TBR=brettw

Review URL: https://codereview.chromium.org/979143002

Cr-Commit-Position: refs/heads/master@{#319263}
jl
Add [TypeChecking=Interface] to Range interface
All functions already threw exceptions for invalid argument values, but
DOMException exceptions instead of TypeError exceptions.

Throwing TypeError exceptions matches Firefox's behavior.

BUG=462561

Review URL: https://codereview.chromium.org/974823002

git-svn-id: svn://svn.chromium.org/blink/trunk@191363 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Sync the Range interface with the specs
https://dom.spec.whatwg.org/#interface-range
http://dev.w3.org/csswg/cssom-view/#extensions-to-the-range-interface
https://dvcs.w3.org/hg/innerhtml/raw-file/tip/index.html#extensions-to-the-range-interface

The only changes are the order of things and argument names.

BUG=460722

Review URL: https://codereview.chromium.org/965943003

git-svn-id: svn://svn.chromium.org/blink/trunk@191341 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
fix for builds with webrtc disabled
PepperVideoCaptureHost::OnFrameReady makes use of kUnknownFrameRate
which was previously only included in webrtc builds.  Let's move
these constants to the header file instead, since it can be
included in both webrtc and non-webrtc builds.

Followup to https://codereview.chromium.org/955253002.

BUG=461116,463829

Review URL: https://codereview.chromium.org/973373002

Cr-Commit-Position: refs/heads/master@{#319169}
sigbjornf
Recognize GC_PLUGIN_IGNORE() on 'operator new' declarations.
For the select few times an overriding "operator new" is needed for a
GC class, provide the GC_PLUGIN_IGNORE() escape hatch for these. The
responsibility that the "new"'s allocation will be on the Oilpan heap,
rests with the implementor of the class.

R=haraken
BUG=443854

Review URL: https://codereview.chromium.org/975393002

Cr-Commit-Position: refs/heads/master@{#319141}
rune
Return reference from styleEngine() accessor.
The m_styleEngine member of Document is created in the constructor and
only cleared when the OwnPtr goes out of scope as Document is destroyed.

Changed the styleEngine() accessor to return a reference with an ASSERT
checking that it is never null.

Removed null checks in Document::~Document() and styleResolverChanged()
where the styleEngine cannot be null.

Removed the clearStyleResolver method from Document since it was only
used inside the Document implementation.

R=morrita@chromium.org

Review URL: https://codereview.chromium.org/975933002

git-svn-id: svn://svn.chromium.org/blink/trunk@191302 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Add a version of SVGLengthContext::valueForLength with explicit dimension
Used by SVGTextLayoutEngineBaseline::calculateBaselineShift.

BUG=461375

Review URL: https://codereview.chromium.org/960843003

git-svn-id: svn://svn.chromium.org/blink/trunk@191299 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Simplify TextTrackCue::isActive
Make it a simple getter for the m_isActive flag. The other aspects of the
current condition should be managed by TextTrack. A breakdown on the
(non-assert) usage follows.

MediaControlTextTrackContainerElement::updateDisplay
  Already explicitly checks TextTrackCue::track() and isRendered on the
  track.

TextTrackCueList::collectActiveCues
  Caller (TextTrack::activeCues) checks mode != 'disabled'.

CueTimeline::* (mostly updateActiveCues)
  This class manages the flag, and should be notified when a cue is removed
  or a track has it's mode changed to disabled.

BUG=321654

Review URL: https://codereview.chromium.org/970203005

git-svn-id: svn://svn.chromium.org/blink/trunk@191298 bbb929c8-8fbe-4397-9dbb-9b2b20218538
bratell
Rebaseline fast/inline-block/003.html on Mac
fast/inline-block/003.html fails all the on mac. Maybe it just needs
a new baseline. Problem seems to be different top document margins.

R=fs@opera.com,samli@chromium.org
BUG=463796

Review URL: https://codereview.chromium.org/977053002

git-svn-id: svn://svn.chromium.org/blink/trunk@191297 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Assert some invariants in TextTrack
A cue having a track reference implies it being in that track's list of
cues. Rely on this in a few places.

BUG=321654

Review URL: https://codereview.chromium.org/979743003

git-svn-id: svn://svn.chromium.org/blink/trunk@191292 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Crash test for 400997.
Scrollbars can be kept alive referenced from the EventHandler after they
have been detached from their ScrollableAreas (through
m_lastScrollbarUnderMouse and m_scrollbarHandlingScrollGesture).
EventHandler may call setHoveredPart and setPressedPart on custom scroll-
bars (LayoutScrollbar) on mouse moves after these bars have been detached
from their scrollable areas. Those methods recalculate style for custom
scrollbar pseudo elements. That caused a crash in SelectorChecker for
the :corner-present pseudo class because it used the scrollableArea()
from Scrollbar without null-checking it.

The null-check was added as a speculative fix in r191244. This CL adds a
test which causes that crasher.

R=keishi@chromium.org,tkent@chromium.org
BUG=400997

Review URL: https://codereview.chromium.org/978753002

git-svn-id: svn://svn.chromium.org/blink/trunk@191278 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Make SVGLengthMode an enum class
Mostly search and replace; A minor tweak in LinearGradientAttributes
changing to 'Height' for m_y1 and m_y2. Dropping the default value for
"detached" SVGLength objects.

BUG=461375

Review URL: https://codereview.chromium.org/966923003

git-svn-id: svn://svn.chromium.org/blink/trunk@191274 bbb929c8-8fbe-4397-9dbb-9b2b20218538
arjanl
Set whether context menu appears on mouse up from WebPreferences
Whether the context menu appears on mouse up can depend on run-time
settings (in the case of Opera). This reads the setting to
WebPreferences, so that the browser has the possibility of
communicating the appropriate setting to the renderer. If not
explicitly set, it defaults, as before, to 'true' on Windows and
'false' on other platforms.

BUG=

Review URL: https://codereview.chromium.org/819293002

Cr-Commit-Position: refs/heads/master@{#319040}
ed
[S.P.] Merge getContentPicture into createContentPicture.
BUG=462077

Review URL: https://codereview.chromium.org/974903003

git-svn-id: svn://svn.chromium.org/blink/trunk@191268 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove failing test for dragging <video controls> in fullscreen
This is not expected to work, the remnants of the WebKit code that
supported dragging were removed a year ago:
https://codereview.chromium.org/196533020

BUG=341813

Review URL: https://codereview.chromium.org/974543004

git-svn-id: svn://svn.chromium.org/blink/trunk@191266 bbb929c8-8fbe-4397-9dbb-9b2b20218538
tmoniuszko
Handle unpatched VS xtree header
BUG=

Committed: https://crrev.com/b5020725ac56d11c064086295af7db628b4fe64b
Cr-Commit-Position: refs/heads/master@{#318859}

Review URL: https://codereview.chromium.org/965713002

Cr-Commit-Position: refs/heads/master@{#319035}
jl
Add [TypeChecking=Interface] to Element interface
This affects the generated code for the methods

  setAttributeNode()
  setAttributeNodeNS()
  removeAttributeNode()
  insertAdjacentElement()

so that they now throw TypeError exceptions when called with invalid
argument values.

The implementations of each function contained code (removed here) that
checked for invalid argument values and threw exceptions, so the only
difference is the type of exception thrown (DOMException -> TypeError)
except for insertAdjacentElement() that was already throwing TypeErrors.

BUG=462561

Review URL: https://codereview.chromium.org/969363002

git-svn-id: svn://svn.chromium.org/blink/trunk@191256 bbb929c8-8fbe-4397-9dbb-9b2b20218538
joaoe
ChromeContentRendererClient should not rely on Dispatcher::is_extension_process
The extensions::Dispatcher::is_extension_process flag is set for both the
standalone extensions renderer and single process mode. This caused
ChromeContentRendererClient to act differently in single process mode, like
returning true from ShouldFork for any navigation started by blink, which
would cause a new WebView to be created for each navigation.

BUG=462210

Review URL: https://codereview.chromium.org/956313002

Cr-Commit-Position: refs/heads/master@{#318938}
ed
[S.P.] Move mask painting to SVGMaskPainter.
BUG=462077

Review URL: https://codereview.chromium.org/967543002

git-svn-id: svn://svn.chromium.org/blink/trunk@191196 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Use Length for the stroke-dashoffset property in SVGLayoutStyle
This replaces the SVGLength used for strokeDashOffset in
SVGLayoutStyle with a Length.

BUG=461375

Review URL: https://codereview.chromium.org/962763003

git-svn-id: svn://svn.chromium.org/blink/trunk@191191 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Sync Oilpan test expectations.
Remove expectations that no longer applies or is subsumed by
TestExpectations (compositing/iframes/scrolling-iframe.html)

TBR=oilpan-reviews
BUG=345655
NOTRY=true

Review URL: https://codereview.chromium.org/971333002

git-svn-id: svn://svn.chromium.org/blink/trunk@191188 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Test observer removal&destruct during destroy notification.
Add unit test verifying that removal of observers during
LifecycleNotifier<T>::notifyContextDestroyed() is handled as expected.

R=haraken
BUG=462949

Review URL: https://codereview.chromium.org/973773002

git-svn-id: svn://svn.chromium.org/blink/trunk@191186 bbb929c8-8fbe-4397-9dbb-9b2b20218538
tmoniuszko
Handle unpatched VS xtree header
BUG=

Review URL: https://codereview.chromium.org/965713002

Cr-Commit-Position: refs/heads/master@{#318859}
jl
IDL: Add [LegacyInterfaceTypeChecking] extended attribute
This attribute is the opposite of [TypeChecking=Interface], and is
intended to replace it in all IDL files. By doing that, we'll explicitly
flag attributes and methods with incorrect behavior, instead of having
incorrect behavior by default.

We should be able to later switch individual attribute and methods over
to the correct behavior on a case-by-case basis by dropping the
[LegacyInterfaceTypeChecking] attribute from them, and eventually drop
support for the attribute altogether.

BUG=462561

Review URL: https://codereview.chromium.org/961073004

git-svn-id: svn://svn.chromium.org/blink/trunk@191185 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
IDL: Remove last traces of [TypeChecking=Unrestricted]
- Remove the Unrestricted value from IDLExtendedAttributes.txt.

- Remove [TypeChecking=Unrestricted] from InternalSettingsGenerated.idl
  which was previously missed since it's a generated file.

- To simplify the code, revert some of the changes made in
    https://codereview.chromium.org/938403007/
  that are no longer needed since TypeChecking now only supports a single
  value (Interface).

BUG=354298

Review URL: https://codereview.chromium.org/971783002

git-svn-id: svn://svn.chromium.org/blink/trunk@191178 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Simplify ContextLifecycleNotifier's handling of ActiveDOMObjects.
No longer keep a separate set of ActiveDOMObject observers, but iterate
over the notifier set instead.

Also adjust the visibility of various helper methods to what they
need to be.

R=haraken
BUG=462949

Review URL: https://codereview.chromium.org/965393002

git-svn-id: svn://svn.chromium.org/blink/trunk@191177 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Sync the MessageChannel and MessagePort interfaces with the spec
This exposes the MessagePort interface to workers.

The MessageChannel constructor was exposed to workers in spec and
implementation in 2009:
https://html5.org/r/3325
https://trac.webkit.org/changeset/45381

The MessagePort interface wasn't made exposed in the spec until 2014:
https://html5.org/r/8425

BUG=460722

Review URL: https://codereview.chromium.org/969643002

git-svn-id: svn://svn.chromium.org/blink/trunk@191172 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Retire TSan WTF::Latin1Encoding() suppression.
Issue was addressed by http://crbug.com/445481.

R=jyasskin
BUG=364014

Review URL: https://codereview.chromium.org/962233002

Cr-Commit-Position: refs/heads/master@{#318743}
sigbjornf
Oilpan: fix build after r191128 (557025ef).
TBR=oilpan-reviews
BUG=462572
NOTRY=true

Review URL: https://codereview.chromium.org/967313003

git-svn-id: svn://svn.chromium.org/blink/trunk@191136 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Remove [TypeChecking=Unrestricted] use in Source/core/
The IDL compiler has been updated to always generate code that rejects
non-finite numbers, so removing [TypeChecking=Unrestricted] does not
change generated code.

BUG=354298

Review URL: https://codereview.chromium.org/973503002

git-svn-id: svn://svn.chromium.org/blink/trunk@191118 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Remove [TypeChecking=Unrestricted] use in Source/modules/
The IDL compiler has been updated to always generate code that rejects
non-finite numbers, so removing [TypeChecking=Unrestricted] does not
change generated code.

BUG=354298

Review URL: https://codereview.chromium.org/963983003

git-svn-id: svn://svn.chromium.org/blink/trunk@191117 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Remove [TypeChecking=Unrestricted] use in Source/core/svg/
The IDL compiler has been updated to always generate code that rejects
non-finite numbers, so removing [TypeChecking=Unrestricted] does not
change generated code.

BUG=354298

Review URL: https://codereview.chromium.org/974453002

git-svn-id: svn://svn.chromium.org/blink/trunk@191115 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
IDL: Implement float/double correctly
Specifically, do not require the [TypeChecking=Unrestricted] extended
attribute for correct behavior.

This renders the [TypeChecking=Unrestricted] extended attribute
ineffective, meaning we can then drop it from actual IDL files without
code generation changes.

BUG=354298

Review URL: https://codereview.chromium.org/970843002

git-svn-id: svn://svn.chromium.org/blink/trunk@191108 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Remove old & unused BatteryManager::canSuspend() implementation.
ActiveDOMObject::canSuspend() support was removed in r159535, follow up
and remove BatteryManager's use of it.

R=haraken

Review URL: https://codereview.chromium.org/967303002

git-svn-id: svn://svn.chromium.org/blink/trunk@191106 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Make ScrollToOptions members unrestricted doubles
They are already unrestricted in practice since the dictionary doesn't
have [TypeChecking=Unrestricted], so this doesn't change behavior.

Firefox also implements them as unrestricted.

BUG=354298

Review URL: https://codereview.chromium.org/970823002

git-svn-id: svn://svn.chromium.org/blink/trunk@191099 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Rewrite fast/multicol/shrink-to-column-height-for-pagination.html as a reftest.
This is a complete rewrite. The test depended on quirks mode, and
crbug.com/460899 made it cumbersome / pointless to keep it as it was.

Just make sure that the vertical-lr paged container doesn't get taller than its
containing block.

BUG=386567
R=andersr@opera.com

Review URL: https://codereview.chromium.org/956553002

git-svn-id: svn://svn.chromium.org/blink/trunk@191097 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Don't pass semi-detached renderers to the flow thread (or anyone else).
Clean up RenderBlock::removeLeftoverAnonymousBlock(), and make sure that it
doesn't pass weird semi-detached renderers to anyone.

Promote the children of the leftover block (like before), then keep the
leftover block right in front of them (this is new; although it actually used
to be exactly there, it used to be semi-detached, confusing anyone who wanted
to traverse the tree), then notify the flow thread (and the grid code, that
doesn't seem to care either way), then manually detach the leftover block (like
before, only that it's a one-liner now) and finally destroy it.

The leftover block used to be partially detached in the sense that it had its
nextSibling reset, but still had its parent and previousSibling left intact.
Missing a nextSibling could make the flow thread code incorrectly believe that
we were removing the last piece of multicol content, and thus trigger a
deletion of a column set. This would in turn trigger an assertion failure when
attempting to insert more content later on, because the flow thread wouldn't
find any suitable column set.

BUG=457461
R=dsinclair@chromium.org,jchaffraix@chromium.org

Review URL: https://codereview.chromium.org/922173002

git-svn-id: svn://svn.chromium.org/blink/trunk@191096 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: define shrink{Inline}VectorBackingInternal inline.
Move the definition of these entry points to the their header
file, increasing inlining opportunities.

R=haraken,tkent
BUG=420515

Review URL: https://codereview.chromium.org/964363002

git-svn-id: svn://svn.chromium.org/blink/trunk@191095 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r191085 (4dfd1fe1c).
TBR=oilpan-reviews
BUG=439247
NOTRY=true

Review URL: https://codereview.chromium.org/964373002

git-svn-id: svn://svn.chromium.org/blink/trunk@191089 bbb929c8-8fbe-4397-9dbb-9b2b20218538
tmoniuszko
Move some feature flags to declare_args() so features can be disabled
BUG=

Review URL: https://codereview.chromium.org/959303002

Cr-Commit-Position: refs/heads/master@{#318668}
sigbjornf
Reduce platform/heap/ wtf includes.
Rely on wtf/Forward.h where possible, reducing CPP's #include count
ever so slightly when processing platform/heap/Handle.h

R=
BUG=420515

Review URL: https://codereview.chromium.org/966243002

git-svn-id: svn://svn.chromium.org/blink/trunk@191082 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Sync the Element interface with the many specs
https://dom.spec.whatwg.org/#interface-element
and many other specs with partial Element interfaces.

Arguments named namespace were not renamed, as it is a C++ keyword.

No FIXMEs were added where the spec says [TreatNullAs=EmptyString] but
we use [TreatNullAs=NullString], as that's a general issue that can be
found simply be searching for "TreatNullAs=NullString".

Likewise, [NewObject] and [SameObject] were not added:
https://code.google.com/p/chromium/issues/detail?id=462913

The only changes to the generated code are due to renamed arguments.

BUG=460722

Review URL: https://codereview.chromium.org/970603002

git-svn-id: svn://svn.chromium.org/blink/trunk@191079 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Document the ClientRect* vs DOMRect* situation
Add a UseCounter for the ClientRectList.item() method. Adding
[MeasureAs=ClientRectListItem] to the existing single line actually
only counts the named getter, but split them in the IDL for clarity.

Remove the ClientRectList FIXMEs that have been there since the
interface was added in 2009: https://trac.webkit.org/changeset/40837

DOMRectList or an array of ClientRect/DOMRect would not throw here, so
there's no reason to ever implement the requirements of the old spec.

BUG=460722

Review URL: https://codereview.chromium.org/964133002

git-svn-id: svn://svn.chromium.org/blink/trunk@191078 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Sync the DOM traversal interfaces with the spec
https://dom.spec.whatwg.org/#traversal

There are no changes to the generated code other than ordering.

BUG=460722

Review URL: https://codereview.chromium.org/966213002

git-svn-id: svn://svn.chromium.org/blink/trunk@191072 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Add a spec link for the Iterator interface
BUG=460722
NOTRY=true

Review URL: https://codereview.chromium.org/966163002

git-svn-id: svn://svn.chromium.org/blink/trunk@191071 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Sync the NodeList interface with the spec
There are no changes to the generated code.

BUG=460722

Review URL: https://codereview.chromium.org/955353004

git-svn-id: svn://svn.chromium.org/blink/trunk@191067 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Add the NonElementParentNode interface
As a side effect, DocumentFragment.getElementById now also has per-world
bindings. This makes the generated code bigger, and probably won't help.

Use [LegacyTreatAsPartialInterface] like the other *Node interfaces.

BUG=462916

Review URL: https://codereview.chromium.org/967753003

git-svn-id: svn://svn.chromium.org/blink/trunk@191066 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
IDL: All interface types are implicitly nullable
Previously, only the subset "wrapper types" were considered implicitly
nullable. The wrapper types are all interface types except some that all
are really also implicitly nullable.

This affects nullable attributes and method arguments of the types

  Dictionary
  EventListener
  EventHandler
  NodeFilter
  SerializedScriptValue

but since there are none currently, there are no code generation changes.

BUG=

Review URL: https://codereview.chromium.org/964163004

git-svn-id: svn://svn.chromium.org/blink/trunk@191065 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Sync the DOMStringMap interface with the spec
https://html.spec.whatwg.org/#the-domstringmap-interface

The spec IDL has [Exposed=(Window,Worker)], but that seems wrong:
https://www.w3.org/Bugs/Public/show_bug.cgi?id=28104

The creator keyword was not added:
https://www.w3.org/Bugs/Public/show_bug.cgi?id=28121

There are no changes to the generated code.

BUG=460722, 462920

Review URL: https://codereview.chromium.org/972493002

git-svn-id: svn://svn.chromium.org/blink/trunk@191064 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
IDL: Support deleter operation with any return type
Web IDL does not require that a deleter operation has boolean as its
return type, it merely defines behavior that is specific to the case that
it has.

Thus, remove our restriction, to avoid rejecting valid IDL declarations
that actual specifications might contain.

BUG=462920

Review URL: https://codereview.chromium.org/968033002

git-svn-id: svn://svn.chromium.org/blink/trunk@191063 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Simplify lifecycle notifiers and observers.
The following changes are made to the implementation of 
lifecycle notifiers and observers:

 - Avoid keeping duplicate hash sets of registered observers.

 - Let the C++ type system handle type safety of the observer
   set, letting go of the notion of an 'observer type' which
   was dynamically checked for.

 - Extend parameterization of LifecycleNotifier<> and
   LifecycleObserver<> to more closely couple the notifier
   and observer pairs. This allows the retirement of the
   ad-hoc function templates {un}observeContext().

 - Devirtualize the add/removeObserver() notifier methods.

R=haraken
BUG=462949

Review URL: https://codereview.chromium.org/968633002

git-svn-id: svn://svn.chromium.org/blink/trunk@191062 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: improve resource-tree-mimetype.html stability.
The http/tests/inspector-enabled/resource-tree/resource-tree-mimetype.html
test enumerates the current set of registered resources, showing their
properties.

With Oilpan enabled, the registered resources might include ones which are
no longer alive, but not yet finalized. So as to ensure a consistent
resource baseline for the test, force a GC before initiating the test.

R=haraken
BUG=462935

Review URL: https://codereview.chromium.org/964173002

git-svn-id: svn://svn.chromium.org/blink/trunk@191061 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Sync the MutationObserver and MutationRecord interfaces with the spec
Making previousSibling and nextSibling nullable does not change the
generated code.

BUG=460722

Review URL: https://codereview.chromium.org/971573002

git-svn-id: svn://svn.chromium.org/blink/trunk@191058 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Rearrange the Element interface to match the many specs
https://dom.spec.whatwg.org/#interface-element
and many other specs with partial Document interfaces.

To make reviewing easier, this commit only changes the order of lines
and adds comments. Actual spec sync will be done separately.

The order of the generated code changes, but there are no actual
changes.

BUG=460722

Review URL: https://codereview.chromium.org/970553002

git-svn-id: svn://svn.chromium.org/blink/trunk@191056 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Sync GlobalEventHandlers and WindowEventHandlers with the spec
https://html.spec.whatwg.org/#event-handlers-on-elements,-document-objects,-and-window-objects

BUG=460722
NOTRY=true

Review URL: https://codereview.chromium.org/972503003

git-svn-id: svn://svn.chromium.org/blink/trunk@191055 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Decorate the Document IDL with spec names
There are so many that having the names is clear text makes it easier to
see at a glance what is what. Not all the URLs are nice and short.

BUG=460722
NOTRY=true

Review URL: https://codereview.chromium.org/971493002

git-svn-id: svn://svn.chromium.org/blink/trunk@191051 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Have FrameFetchContext check for frame detached status more often.
Following r191022, a ResourceFetcher will no longer switch to a null
FetchContext upon it entering a frame-detached state, but continue to
call upon its FrameFetchContext in that state.

The latter wasn't fully prepared for being used in such a frame-less state,
so add the required checks.

R=mkwst@chromium.org
BUG=458222

Review URL: https://codereview.chromium.org/967893002

git-svn-id: svn://svn.chromium.org/blink/trunk@191045 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Add spec links to Fullscreen API IDL
https://fullscreen.spec.whatwg.org/#api

BUG=460722
NOTRY=true

Review URL: https://codereview.chromium.org/971453003

git-svn-id: svn://svn.chromium.org/blink/trunk@191043 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Add [TypeChecking=Interface] to Internals and PrivateScriptTest
BUG=462561

Review URL: https://codereview.chromium.org/966723002

git-svn-id: svn://svn.chromium.org/blink/trunk@191041 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Add [TypeChecking=Unrestricted] to CircularGeofencingRegionInit
This will make the CircularGeofencingRegion constructor throw TypeError
when called with a dictionary containing non-finite numbers.

BUG=354298

Review URL: https://codereview.chromium.org/962793007

git-svn-id: svn://svn.chromium.org/blink/trunk@191020 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Drop unbound ExecutionContext::createLifecycleNotifier() declaration.
R=haraken
BUG=340522

Review URL: https://codereview.chromium.org/958343002

git-svn-id: svn://svn.chromium.org/blink/trunk@191011 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Add [TypeChecking=Unrestricted] to OfflineAudioContext
This affects its constructor's 'sampleRate' argument, such that the
constructor now throws a TypeError if the argument value is non-finite.

BUG=354298

Review URL: https://codereview.chromium.org/963043003

git-svn-id: svn://svn.chromium.org/blink/trunk@191009 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Add [TypeChecking=Unrestricted] to MIDIMessageEventInit
This will cause a TypeError to be thrown if 'receivedTime' is non-finite,
as is required (indirectly, by referencing Web IDL) by the specification.

BUG=354298

Review URL: https://codereview.chromium.org/962163002

git-svn-id: svn://svn.chromium.org/blink/trunk@191007 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Add [TypeChecking=Unrestricted] to InternalDictionary
Also add an unrestricted double member to test both types of doubles.

BUG=354298

Review URL: https://codereview.chromium.org/966643002

git-svn-id: svn://svn.chromium.org/blink/trunk@191003 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Add [TypeChecking=Unrestricted] to {Transition,Wheel}EventInit
This means non-finite values for double members throw TypeError exceptions.
The new behavior matches Firefox.

BUG=354298

Review URL: https://codereview.chromium.org/964783003

git-svn-id: svn://svn.chromium.org/blink/trunk@191002 bbb929c8-8fbe-4397-9dbb-9b2b20218538
bratell
Inspector: Store array of small numbers in 16 bit instead of 64 bit.
Save 1.5 KB by storing small numbers in 16 bit instead of 64 bit. Minor change 
but should be smaller and faster.

         +3: blink::InspectorBackendDispatcher::commandName(blink::InspectorBackendDispatcher::MethodNames) type=t, (was 21 bytes, now 24 bytes)
      -1518: blink::InspectorBackendDispatcher::commandNamesIndex type=r, (was 2024 bytes, now 506 bytes)

R=yurys@chromium.org

Review URL: https://codereview.chromium.org/958893002

git-svn-id: svn://svn.chromium.org/blink/trunk@191000 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Add [TypeChecking=Unrestricted] on Device Orientation interfaces
The only definitions that this actually affects are methods with custom
implementations, so the IDL change is just for show.

Also adjust the custom implementations of these methods to be closer to
normal generated code in handling their float arguments, thereby actually
making them restricted and thus honoring the [TypeChecking=Unrestricted]
flag.

BUG=354298

Review URL: https://codereview.chromium.org/934203002

git-svn-id: svn://svn.chromium.org/blink/trunk@190994 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Detach SpeechRecognitionController upon page detach.
When a page is notified destroyed, it is no longer safe to access
the page's SpeechRecognitionController as its lifetime is that of
the page.

R=haraken
BUG=455857

Review URL: https://codereview.chromium.org/960223002

git-svn-id: svn://svn.chromium.org/blink/trunk@190993 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Stop explicit inheritance if LayoutStyle doesn't change.
Propagation of explicitly inherited properties down the tree is not
necessary when LayoutStyle does not change, so start comparing LayoutStyle
before checking the explicitInheritance flag.

The LayoutStyle comparison should not include the explicitInheritance flag
as that typically results in a propagation diff caused by that flag being
unset on new LayoutStyle instances before any children get their styles
calculated.

The assumption is that it is not relevant in other uses of
LayoutStyle::operator==, either. In particular, also the comparison with
baseRenderStyle in the ASSERT in ActiveAnimations::updateBaseLayoutStyle.

The explicitInheritance flag is also skipped for copyNonInheritedFrom.
The reason is that it's only used for sharing non-inherited properties
between elements which don't have the same children, hence should not
share that flag either.

BUG=435450

Review URL: https://codereview.chromium.org/921843004

git-svn-id: svn://svn.chromium.org/blink/trunk@190990 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Revert "Oilpan: fix build after r190977 (5831a54)."
This reverts commit 765d17d6dfac94a5c34586f8e27df18cd0848a84.

The dependent commit has been reverted in r190983,

  https://codereview.chromium.org/967523002

Follow up and revert this build fix also.

TBR=mkwst@chromium.org,oilpan-reviews@chromium.org
NOTRY=true
BUG=439247

Review URL: https://codereview.chromium.org/959233002

git-svn-id: svn://svn.chromium.org/blink/trunk@190989 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rchlodnicki
Remove include for DevToolsUI class which is no longer used in this file
R=yurys@chromium.org
BUG=

Review URL: https://codereview.chromium.org/933293002

Cr-Commit-Position: refs/heads/master@{#318433}
sigbjornf
Do not reset controls upon removing media element from the DOM.
Upon removal of a media element, arrange for it to be removed from the
document before resetting its media controls. If the controls are
showing, they'll be hidden but not reset. A full reset of these controls
while a DOM removal operation is in progress may trigger nested event
delivery and mutate its attributes in unsupported ways.

R=fs@opera.com,philipj@opera.com
BUG=462046

Review URL: https://codereview.chromium.org/961243002

git-svn-id: svn://svn.chromium.org/blink/trunk@190986 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Sync the Document interfaces with the many specs
https://dom.spec.whatwg.org/#interface-document
https://html.spec.whatwg.org/#the-document-object
and many other specs with partial Document interfaces.

createAttributeNS's second argument was not renamed:
https://www.w3.org/Bugs/Public/show_bug.cgi?id=28109

createEvent's interface argument and many arguments named namespace were
also not renamed, as those are C++ keywords.

The only changes to the generated code are due to renamed arguments.

BUG=460722

Review URL: https://codereview.chromium.org/960923005

git-svn-id: svn://svn.chromium.org/blink/trunk@190984 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Rearrange the Document interfaces to match the many specs
https://dom.spec.whatwg.org/#interface-document
https://html.spec.whatwg.org/#the-document-object
and many other specs with partial Document interfaces.

To make reviewing easier, this commit only changes the order of lines
and adds comments. Actual spec sync will be done separate.

The order of the generated code changes, but there are no actual
changes.

BUG=460722

Review URL: https://codereview.chromium.org/961693004

git-svn-id: svn://svn.chromium.org/blink/trunk@190981 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r190977 (5831a54).
R=timloh
BUG=439247
NOTRY=true

Review URL: https://codereview.chromium.org/962943002

git-svn-id: svn://svn.chromium.org/blink/trunk@190979 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Tweak the TextTrackCue "cue index" management
Change the invalidation function to instead of updating the cached cue
indices, update an index to the first invalid index stored in the list
itself.
Use this "first invalid index" to check if a cached index is valid or
not, and if it isn't then validate all the list's cues cached indices
starting at the stored index.
This means invalidation is faster than before (constant time), and
valid is worst case the same, but with chance of amortization.

BUG=321654

Review URL: https://codereview.chromium.org/956323002

git-svn-id: svn://svn.chromium.org/blink/trunk@190948 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Sync the Node interface with the spec
https://dom.spec.whatwg.org/#interface-node

The only changes to the generated code are code movement and variable
name changes.

Many types were made nullable to match the spec, as doing so did not
cause any changes to the generated code. If [TypeChecking=Interface]
were used, there would have been more differences.

BUG=460722

Review URL: https://codereview.chromium.org/961653004

git-svn-id: svn://svn.chromium.org/blink/trunk@190943 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove the overflowchanged event with a runtime flag
Intent to Remove:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/NZ7RGtrPQsw/DRQmRzSkGNAJ

A full removal touches many files, so keep it behind a flag in case this
needs to be reverted.

The tests are much less prone to conflicts, so in order to avoid
creating a virtual testsuite, simply remove them. They can be restored
if necessary later.

All but one of the removed tests are explictly for some aspect of the
overflowchanged event. The exception is
layout-overflow-not-affected-by-visual-overflow.html which is from the
fix of "RenderBox layout overflow is not correctly computed":
https://code.google.com/p/chromium/issues/detail?id=254002

Unfortunately, it does not appear that the bug has any other observable
effect that can be used. An old version of Chromium with the bug was
tested; the rendered result is identical and overflow:scroll does not
cause any scrollbars to appear. Therefore, the test is removed.

BUG=460822

Review URL: https://codereview.chromium.org/959643002

git-svn-id: svn://svn.chromium.org/blink/trunk@190938 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ed
[svg2] Make 'rx' and 'ry' presentation attributes
The following elements' rx and ry attributes have been made
into presentation attributes:

* rect
* ellipse

Spec:
  https://svgwg.org/svg2-draft/geometry.html#RXProperty
  https://svgwg.org/svg2-draft/geometry.html#RYProperty

BUG=400725

Review URL: https://codereview.chromium.org/955033002

git-svn-id: svn://svn.chromium.org/blink/trunk@190937 bbb929c8-8fbe-4397-9dbb-9b2b20218538
tmoniuszko
Fix dependencies on //components/policy in gn files
BUG=

Review URL: https://codereview.chromium.org/952163002

Cr-Commit-Position: refs/heads/master@{#318246}
philipj
Sync the DOM* geometry interfaces with the spec
http://dev.w3.org/fxtf/geometry/

Note that DOMRect is missing the optional keyword in the spec:
https://www.w3.org/Bugs/Public/show_bug.cgi?id=27706

BUG=460722

Review URL: https://codereview.chromium.org/956203002

git-svn-id: svn://svn.chromium.org/blink/trunk@190930 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Eliminate calls to TextTrackCue::setIsActive outside of CueTimeline
Hoisting the calls to setIsActive and removeDisplayTree out of
TextTrackCueList::updateCueIndex into its single caller
(TextTrack::cueDidChange), it becomes evident that at this point in the
state update, the cue in question should already be both inactive and
have had its "display tree" removed. Hence the pair of calls can be
dropped.
The same logic can also be applied in TextTrack::removeCue where we
have the same operations being performed.
Reorganize the code slightly to get timeline updates at the end of the
cue{Will,Did}Change methods, and document the invariants.

BUG=321654

Review URL: https://codereview.chromium.org/960233002

git-svn-id: svn://svn.chromium.org/blink/trunk@190927 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Move activeCues ownership to TextTrack
Instead of having a list that owns another list (that owns another
list...), move the m_activeCues member from TextTrackCueList to TextTrack.
This is structurally less strange, and makes TextTrackCueList slightly
more self-contained. The code for building the activeCues list remains
(for now.)

BUG=321654

Review URL: https://codereview.chromium.org/958903002

git-svn-id: svn://svn.chromium.org/blink/trunk@190923 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Clean up DictionaryHelperForCore.cpp
- Remove uses of TONATIVE_* and TOSTRING_* macros.

- Remove various unneeded explicit template specializations/instantiations.

BUG=

Review URL: https://codereview.chromium.org/960193002

git-svn-id: svn://svn.chromium.org/blink/trunk@190922 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Replace open-coded binary search in TextTrackCueList::add with upper_bound
TextTrackCueList::add is implemented as a recursive binary search. This
add() method is used both for adding (new) cues to the list, and to update
the position of a cue in the list after mutation of it.
These two use-cases have slightly different requirement, but it still
makes sense to reuse some parts of it.
Split out the binary search into a method of its own - replacing it with
std::upper_bound - and then call this from add() and updateCueIndex() while
open-coding the actual Vector::insert() and index-cache invalidation.
Add some notes about potential future improvements.

BUG=321654

Review URL: https://codereview.chromium.org/955443002

git-svn-id: svn://svn.chromium.org/blink/trunk@190908 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Use Length for baselineShiftValue in SVGLayoutStyle
This replaces the SVGLength used for baselineShiftValue in
SVGLayoutStyle.
The value is stored in zoom-adjusted form, and is then "unzoomed"
by the client. This means that very little needs to be changed
outside of SVG layout code.
Also update the handling of the 'baseline' value to compute it to
'0px' per the current css-inline draft [1]. This simplifies the
animation handling slightly.

[1] http://dev.w3.org/csswg/css-inline/#baseline-shift-property

BUG=461375

Review URL: https://codereview.chromium.org/956553004

git-svn-id: svn://svn.chromium.org/blink/trunk@190903 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Sync the DOMImplementation interface with the spec
https://dom.spec.whatwg.org/#interface-domimplementation

BUG=460722, 238368, 335871, 429536

Review URL: https://codereview.chromium.org/960533003

git-svn-id: svn://svn.chromium.org/blink/trunk@190897 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
IDL: Add test for attribute that "inherits its getter"
BUG=462097

Review URL: https://codereview.chromium.org/962513002

git-svn-id: svn://svn.chromium.org/blink/trunk@190893 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Terminate <object> to fix flaky test.
The question is if the test would still catch the crash, but the initial
commit just says the test is for a crash that is no longer reproducible,
so it is hard to tell. An alternative is to just remove the test.

R=tkent@chromium.org
BUG=328234

Review URL: https://codereview.chromium.org/949763005

git-svn-id: svn://svn.chromium.org/blink/trunk@190882 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Sync the DOMSettableTokenList interface with the spec
https://dom.spec.whatwg.org/#interface-domsettabletokenlist

BUG=460722

Review URL: https://codereview.chromium.org/955093002

git-svn-id: svn://svn.chromium.org/blink/trunk@190873 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r190844 (96d951eb).
TBR=oilpan-reviews
BUG=428290
NOTRY=true

Review URL: https://codereview.chromium.org/946523003

git-svn-id: svn://svn.chromium.org/blink/trunk@190851 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Simplify HTMLMediaElement::textTrackModeChanged
The if-"cascade" that dominates this method does two things:
 * Schedules (adds) cues to the cue timeline
 * Marks tracks originating from HTMLTrackElement as 'configured'.

If these two are separated, the former can be moved to the caller of
textTrackModeChanged (TextTrack::setMode) - and simplified 
significantly.
With this HTMLMediaElement no longer calls CueTimeline::addCues itself.

BUG=321654

Review URL: https://codereview.chromium.org/952493002

git-svn-id: svn://svn.chromium.org/blink/trunk@190848 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ed
Add test for clip-rule and several path element children.
BUG=425113

Review URL: https://codereview.chromium.org/669703002

git-svn-id: svn://svn.chromium.org/blink/trunk@190845 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Add AnimationTimingProperties dictionary
Use in various places:

- As the base of the ComputedTimingProperties dictionary.

- As one possible argument value to the Animation() constructor's third
  parameter.

- As one possible argument value to Element.animate()'s second parameter.

Also remove the custom bindings implementation of Element.animate().

BUG=321462

Review URL: https://codereview.chromium.org/947923002

git-svn-id: svn://svn.chromium.org/blink/trunk@190837 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ed
Move zoom handling for x and y properties to svg.
Compensating for effectiveZoom in svg instead, so that 
x and y are more like other length values in css.

This fixes a bug where incorrect values would be returned
from getComputedStyle, and with transitions on x and y in 
combination with zoom.

BUG=400725

Review URL: https://codereview.chromium.org/947983002

git-svn-id: svn://svn.chromium.org/blink/trunk@190836 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: simplify ContainerNode.removeChildren().
With Oilpan, there is no need to extend the lifetime of elements being
removed -- the plugin container will separately keep its element
reference alive.

R=haraken
BUG=340522

Review URL: https://codereview.chromium.org/956773003

git-svn-id: svn://svn.chromium.org/blink/trunk@190828 bbb929c8-8fbe-4397-9dbb-9b2b20218538
bratell
Rename AsyncCallChainMap.h in core.gypi.
AsyncCallChainMap.h was renamed AsyncOperationMap in
https://codereview.chromium.org/858173002 . This does that rename
in the gypi file as well to avoid warnings from the msvs-ninja
gyp generator.

R=aandrey@chromium.org,yurys@chromium.org

BUG=459058,439376

Review URL: https://codereview.chromium.org/943363002

git-svn-id: svn://svn.chromium.org/blink/trunk@190826 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Improve webaudio/audiocontext-close.html stability.
Scheduling the post-GC testing via a timeout handler runs the risk of the
test completing before the test completes. No need for the GC to be
async here; simplify accordingly to avoid the timing issue.

R=haraken
BUG=461762

Review URL: https://codereview.chromium.org/950343005

git-svn-id: svn://svn.chromium.org/blink/trunk@190825 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Update http/tests/navigation/anchor-basic.html Mac expectations.
Test controller assert failure is labelled a timeout at times.

TBR=pfeldman
BUG=455134
NOTRY=true

Review URL: https://codereview.chromium.org/953443004

git-svn-id: svn://svn.chromium.org/blink/trunk@190823 bbb929c8-8fbe-4397-9dbb-9b2b20218538
bratell
Update gyp/gn files after header moved from webkit to cc/blink.
Followup to https://codereview.chromium.org/890873007 which moves
webkit/common/gpu/context_provider_web_context.h to
cc/blink/context_provider_web_context.h.

R=tfarina@chromium.org,jamesr@chromium.org,piman@chromium.org
BUG=459058,338338

Review URL: https://codereview.chromium.org/954733002

Cr-Commit-Position: refs/heads/master@{#318017}
bratell
Remove header file that doesn't exist from build files.
Followup to https://codereview.chromium.org/920963003 which removed
media/base/scoped_histogram_timer.h.

R=rkaplov@chromium.org,dalecurtis@chromium.org
BUG=459058

Review URL: https://codereview.chromium.org/948423002

Cr-Commit-Position: refs/heads/master@{#318016}
christiank
Add support for compressed GPU memory buffers.
This CL adds support for compressed GPU buffer formats.

BUG=434699

Committed: https://crrev.com/3113db1250a2687c030585f6045f2ef242b98db6
Cr-Commit-Position: refs/heads/master@{#317765}

Review URL: https://codereview.chromium.org/916083002

Cr-Commit-Position: refs/heads/master@{#318004}
jl
IDL: Drop value conversion (V8 -> C++) macros from generated code
Instead of using an ever growing set of per-type-and-situation macros
to perform the conversion from V8 value to C++ value (e.g. for method
arguments and in attribute setters), just generate regular C++ code
that does the same job. In many cases, this leads to roughly the same
amount of code, and is arguable easier to read unless one is very
familiar with all the different macros and their definitions.

Technically, the v8_types.v8_value_to_local_cpp_value() function now
returns a small template context dictionary instead of a "single-
expression" string, and a new template macro is used to generate the
multi-line conversion code using this context.

All now unused macros in V8BindingMacros.h are removed. The remaining
macros are used from custom bindings code, which will be rewritten to
not use them too and thus better match the corresponding generated
code. (There was already a fair amount of mismatch between the two.)

BUG=

Review URL: https://codereview.chromium.org/946973005

git-svn-id: svn://svn.chromium.org/blink/trunk@190816 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Sync the NamedNodeMap interface with the spec
https://dom.spec.whatwg.org/#interface-namednodemap

There are no changes to the generated code other than the order.

The spec uses namespace as the argument name, but that causes the
generated code to not compile, since it is a C++ keyword:
https://www.w3.org/Bugs/Public/show_bug.cgi?id=28093

BUG=460722

Review URL: https://codereview.chromium.org/952863003

git-svn-id: svn://svn.chromium.org/blink/trunk@190801 bbb929c8-8fbe-4397-9dbb-9b2b20218538
bratell
Updated gypi file after skia header moved.
At some time skia/include/ports/SkFontStyle.h moved to skia/include/core
and the gypi file wasn't updated when that skia version was imported.

R=senorblanco@chromium.org
BUG=459058

Review URL: https://codereview.chromium.org/951983003

Cr-Commit-Position: refs/heads/master@{#317845}
sigbjornf
Conditionally propagate top controls update to layer tree view.
Speculative fix for null crash on a deferred closing window that then
gets its top controls state updated (code is only utilized on Android.)

Conditionally check if the layer tree view is available, like elsewhere.

R=haraken
BUG=461322

Review URL: https://codereview.chromium.org/939303006

git-svn-id: svn://svn.chromium.org/blink/trunk@190767 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: improve fast/workers/worker-document-leak.html stability.
Remove (one) fast/workers/ gc() definition, relying instead on the
js-test.js version, which performs the more thorough
GCController.collectAll().

R=haraken
BUG=340522

Review URL: https://codereview.chromium.org/953793002

git-svn-id: svn://svn.chromium.org/blink/trunk@190756 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove unused show/hideTextTrackDisplay()
BUG=448795

Review URL: https://codereview.chromium.org/951253002

git-svn-id: svn://svn.chromium.org/blink/trunk@190733 bbb929c8-8fbe-4397-9dbb-9b2b20218538
bratell
Update gypi in extensions after move and removal of headers.
Fixes warnings in the gyp msvs-ninja generator.

Followup to
https://codereview.chromium.org/892923002 (guest_view_messages.h)
https://codereview.chromium.org/913393003 (extension_view.js)
https://codereview.chromium.org/820513002 (surface_worker.js,
    and surface_view.js)
https://codereview.chromium.org/654043002 (web_view.js,
    web_view_events.js and web_view_experimental.js)

R=fsamuel@chromium.org,kalman@chromium.org,apacible@chromium.org,rockot@chromium.org
BUG=459058,444869,459680,434226

Review URL: https://codereview.chromium.org/952513002

Cr-Commit-Position: refs/heads/master@{#317767}
philipj
Remove stale comment about Node::insertBefore and friends
It was added in 2006 <https://trac.webkit.org/changeset/12568> and was
accurate at the time.

Review URL: https://codereview.chromium.org/939303004

git-svn-id: svn://svn.chromium.org/blink/trunk@190721 bbb929c8-8fbe-4397-9dbb-9b2b20218538
christiank
Add support for compressed GPU memory buffers.
This CL adds support for compressed GPU buffer formats.

BUG=434699

Review URL: https://codereview.chromium.org/916083002

Cr-Commit-Position: refs/heads/master@{#317765}
sigbjornf
Oilpan: fix build after r190700 (99fb464b7).
The container's is already kept alive by a stack reference with Oilpan.

R=haraken
BUG=458776
NOTRY=true

Review URL: https://codereview.chromium.org/955573002

git-svn-id: svn://svn.chromium.org/blink/trunk@190718 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove HTMLMediaElement::hasMediaControls()
It is consistently used as a null check for mediaControls() and is no
more efficient, so keep only mediaControls().

toMediaControls() includes an equivalent null check and
ASSERT_WITH_SECURITY_IMPLICATION.

BUG=448795

Review URL: https://codereview.chromium.org/943333003

git-svn-id: svn://svn.chromium.org/blink/trunk@190711 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Mark Attr.ownerElement as nullable
No change to generated code, as there are no checks to verify that a
non-nullable return type is never null.

BUG=460722

Review URL: https://codereview.chromium.org/950893002

git-svn-id: svn://svn.chromium.org/blink/trunk@190710 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Allow Oilpan heap objects account for their external allocations.
The GC heuristics take into account the amount of objects allocated since
the last GC, in terms of the amount of Oilpan heap bytes allocated.

It does not consider the amount of external memory owned by an
Oilpan object. Allow objects to register such external allocations and
have the GC heuristics consider it -- if the heap isn't otherwise
considered worth GCing but it contains references to a large amount of
external memory, scheduling a GC may lessen the overall memory pressure
for the process.

Along with this, also add support for letting the outside world notify
Oilpan that a GC is now really worth considering. Intended used by other
allocators if they are running into near-OOM conditions.

R=haraken
BUG=456498

Review URL: https://codereview.chromium.org/875503003

git-svn-id: svn://svn.chromium.org/blink/trunk@190702 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Need to invalidate scrollbars in case they get repositioned.
If the owning renderer gets resized, the scrollbar may be repositioned. Don't
rely on other reasons for invalidation (background, borders, child content
getting relaid out, etc.) to accidentally get the area covered by the
scrollbars invalidated, since there may very well be no other reason.

BUG=460434
R=jchaffraix@chromium.org,leviw@chromium.org

Review URL: https://codereview.chromium.org/942963002

git-svn-id: svn://svn.chromium.org/blink/trunk@190681 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Avoid style invalidation for empty sets.
Invalidation sets which are empty stems from selector features only found
in the rightmost compound selector, and can only cause invalidation of
elements for which they are scheduled. When adding these sets, just mark
the element with a LocalStyleChange and do not schedule a style
invalidation for them.

Similarly, mark with a SubtreeStyleChange and clear all scheduled
invalidation sets for an element which gets a wholeSubtreeInvalid set
scheduled.

This fixes two sub-optimal behaviors in the code.

1. We avoid running style invalidation, hence traversing the DOM tree an
   extra time, if we only have local/subtree changes scheduled.
2. We avoid traversing subtrees checking against an empty invalidation set
   that will never match.

Note that we will still have to run the style invalidation step to clear
style invalidation bits on elements if there were invalidation sets
scheduled prior to a SubtreeStyleChange that nuked the entry in the
m_pendingInvalidationMap.

Added missing check for m_customPseudoInvalid in isEmpty and resetting it
in setWholeSubtreeInvalid() was added.

Since rules of type ".x {}" will not lead to a style invalidation pass
anymore, ".x .dummy {}" type rules have been added to the inspector tests
when testing style invalidation tracking.

Review URL: https://codereview.chromium.org/946993002

git-svn-id: svn://svn.chromium.org/blink/trunk@190680 bbb929c8-8fbe-4397-9dbb-9b2b20218538
bratell
Updating gypi after moving FocusType.h.
Source/core/page/FocusType was moved to
public/WebFocusType.h in https://codereview.chromium.org/852083002
This updates the gypi file to reflect that change and to avoid
a warning in the msvs-ninja gyp generator.

Note: there is no gypi file that tracks the files in public/platform.

R=fsamuel@chromium.org,jochen@chromium.org

BUG=448716,147644,459058

Review URL: https://codereview.chromium.org/950833002

git-svn-id: svn://svn.chromium.org/blink/trunk@190679 bbb929c8-8fbe-4397-9dbb-9b2b20218538
bratell
Update gyp files to reflect moved and removed header files in content/
Fixes warnings in the msvs-gyp generator.

This is a followup to
https://codereview.chromium.org/615893003 (gesture_event_type_list.h,
    popup_item_type_list.h, result_codes_list.h and
    top_controls_state_list.h)
https://codereview.chromium.org/861373002 (navigator_connect_service.h and
    navigator_connect_servive_factory.h)
https://codereview.chromium.org/865413002 (layer_tree_build_helper.h)
https://codereview.chromium.org/774573003 (platform_notification_service.h)

R=jam@chromium.org,avi@chromium.org,mek@chromium.org,dtrainor@chromium.org,changwan@chromium.org,peter@chromium.org
BUG=459058,405532,351558,426458,451313,439950

Review URL: https://codereview.chromium.org/952443004

Cr-Commit-Position: refs/heads/master@{#317617}
mostynb
don't mix system and bundled ICU
The ICU 54.1 upgrade added a call to uloc_getDefault() to
base/test/test_suite.cc, but did not add a libicuuc dependency
to the corresponding gyp/gn targets.  This makes it possible to
mix system and bundled ICU headers (and will fail to build if
they differ in version).

BUG=428145

Review URL: https://codereview.chromium.org/943233002

Cr-Commit-Position: refs/heads/master@{#317616}
bratell
Remove dead file MockDiscardablePixelRef.h from gypi file.
Source/platform/graphics/test/MockDiscardablePixelRef.h was removed in
https://codereview.chromium.org/485833005 and this removes the file
from blink_platform.gypi as well to avoid warnings in the msvs-ninja
gyp generator.

BUG=459058
R=senorblanco@chromium.org,hclam@chromium.org

Review URL: https://codereview.chromium.org/952443003

git-svn-id: svn://svn.chromium.org/blink/trunk@190671 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Remove HTMLMediaElement::textTrackKindChanged
This method only operates on the TextTrack that it gets as an argument, so
the code can be moved to the caller without changing behavior. The
HTMLMediaElement will still be notified via the mode-change (if one takes
place.)

BUG=321654

Review URL: https://codereview.chromium.org/924273004

git-svn-id: svn://svn.chromium.org/blink/trunk@190667 bbb929c8-8fbe-4397-9dbb-9b2b20218538
bratell
Correct paths in gypi files in components.
Followup to
https://codereview.chromium.org/658383003 (constrained_window)
https://codereview.chromium.org/808773005 (component_updater and
    update_client)

This fixes warnings in gyp's msvs-ninja generator.

R=blundell@chromium.org,oshima@chromium.org,sorin@chromium.org
BUG=459058,410499

Review URL: https://codereview.chromium.org/952543002

Cr-Commit-Position: refs/heads/master@{#317589}
bratell
Update gyp file to reflect removed PartialPrivateScriptTest.h
Source\core\testing\PartialPrivateScriptTest.h was removed in
https://codereview.chromium.org/519703002 and this removed the file
from the gypi file as well. This avoids warnings in the
msvs-ninja gyp generator.

R=haraken@chromium.org,jl@opera.com

BUG=341031,459058

Review URL: https://codereview.chromium.org/925043004

git-svn-id: svn://svn.chromium.org/blink/trunk@190663 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Push cue timeline management out of LoadableTextTrack
When a LoadableTextTrack receives cues from the loader, it adds them to
the cue list and notifies the CueTimeline. This is the only place where
this kind of TextTrack state is directly handled by subclasses of
TextTrack. Moving this to TextTrack we can "lock down" state - cue list
and timeline - some more, and have updates due to list-mutations in a
single place (there's currently still updates in HTMLMediaElement though.)
This also makes LoadableTextTrack look more like a provider of cues.
Transport of cues needs to be updated to use a wider type. Also make use
of Vector::swap in VTTParser while changing the signatures.

BUG=321654

Review URL: https://codereview.chromium.org/941973005

git-svn-id: svn://svn.chromium.org/blink/trunk@190657 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Show a vertical scrollbar (when needed) for overflow:-webkit-paged-y.
We were already showing a horizontal scrollbar for -webkit-paged-x. For
-webkit-paged-y, on the other hand, it only worked when it was the viewport
that was paginated, but not when specified on a regular block.

The CSS parser currently deals with the overflow shorthand in such a way that
it's the overflow-y property that gets the -webkit-paged-foo value (while
overflow-x becomes auto). Digression: While one could say that's not quite
right when it comes to horizontal writing modes, handling shorthands based on
writing mode would be nasty...

Skipping 2 of the new tests for the old / current multicol implementation,
since they fail there. All tests pass in the new implementation.

BUG=460024
R=dsinclair@chromium.org,jchaffraix@chromium.org

Review URL: https://codereview.chromium.org/940913002

git-svn-id: svn://svn.chromium.org/blink/trunk@190656 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Update a cue's insertion order when reinserting it with addCue()
TextTrack.addCue is specified to always remove the cue from any list it
currently resides in, but the implementation would only do that if it
was currently in a different track's list.
Also update spec. prose snippets and merge the two exception-conditions
in the removeCue-implementation. The "!m_cues || !m_cues->remove(cue)"
part should never be true unless state has been corrupted, and the spec.
only says to throw NotFoundError in any case.

BUG=460476

Review URL: https://codereview.chromium.org/944823003

git-svn-id: svn://svn.chromium.org/blink/trunk@190655 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Remove ScriptStreamingMode.h from Source/bindings/core/v8/v8.gypi
The file itself was removed in r189473.

Review URL: https://codereview.chromium.org/946373002

git-svn-id: svn://svn.chromium.org/blink/trunk@190654 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Prevent GCs when constructing GC mixin objects.
R=haraken
BUG=420515

Review URL: https://codereview.chromium.org/946163003

git-svn-id: svn://svn.chromium.org/blink/trunk@190650 bbb929c8-8fbe-4397-9dbb-9b2b20218538
christiank
Remove unused function WebContentsDelegate::DidNavigateToPendingEntry.
DidNavigateToPendingEntry is no longer used and can be removed.

BUG=

Review URL: https://codereview.chromium.org/936373002

Cr-Commit-Position: refs/heads/master@{#317574}
philipj
Sync the DOMTokenList interface with the spec
https://dom.spec.whatwg.org/#interface-domtokenlist

BUG=460722

Review URL: https://codereview.chromium.org/947833002

git-svn-id: svn://svn.chromium.org/blink/trunk@190649 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove unused MediaControlElementType enum values
MediaStatusDisplay and MediaTextTrackDisplay, that is.

BUG=448795

Review URL: https://codereview.chromium.org/946243003

git-svn-id: svn://svn.chromium.org/blink/trunk@190644 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Replace [TreatReturnedNullStringAs=Null] with nullable return type
There are no changes to the generated code.

One instance of TreatReturnedNullStringAs=Null remains for
Node.textContent, where removing it does change the generated code
because TreatUndefinedAs=NullString is also involved.

BUG=460722

Review URL: https://codereview.chromium.org/950763002

git-svn-id: svn://svn.chromium.org/blink/trunk@190643 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Make Geolocation internal test methods more resilient.
Have the window.internals Geolocation test methods typecheck its arguments,
throwing TypeError if passed invalid Document arguments.

Additionally, have the methods gracefully handle detached documents.

R=tkent
BUG=460550

Review URL: https://codereview.chromium.org/925953003

git-svn-id: svn://svn.chromium.org/blink/trunk@190642 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Support [TypeChecking] on dependent/partial interfaces.
Have the [TypeChecking] extended attribute on a partial interface
distribute down to its methods and attributes. This avoids having the
interface that it extends to declare the [TypeChecking] behavior that
the partial interface methods&attributes require.

The attribute's value is appended to any [TypeChecking] attribute
values already present on the partial interface members.

R=haraken,jl@opera.com,bashi
BUG=460550

Review URL: https://codereview.chromium.org/938403007

git-svn-id: svn://svn.chromium.org/blink/trunk@190639 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Sync the DocumentType interface with the spec
https://dom.spec.whatwg.org/#interface-documenttype

BUG=460722

Review URL: https://codereview.chromium.org/943253002

git-svn-id: svn://svn.chromium.org/blink/trunk@190631 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
List CDATASection/DOMError/DOMStringList as removed in DOM
BUG=460722, 437205, 460725, 460726

Review URL: https://codereview.chromium.org/942303002

git-svn-id: svn://svn.chromium.org/blink/trunk@190626 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Sync CharacterData and related interfaces with the spec
https://dom.spec.whatwg.org/#interface-characterdata
https://dom.spec.whatwg.org/#interface-comment
https://dom.spec.whatwg.org/#interface-processinginstruction
https://dom.spec.whatwg.org/#interface-text

This replaces |length| with |count| in a few places. The implementation
already uses |count| as the argument name.

BUG=460722

Review URL: https://codereview.chromium.org/946823002

git-svn-id: svn://svn.chromium.org/blink/trunk@190625 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: improve handling of ASan contiguous container annotations.
Follow up r190347 and support the retirement of contiguous container
annotations for 'non-inline' heap vector backing stores.

In order to handle the tracing of heap vector backing stores identified
conservatively via the stack or other roots without overflowing such
annotations, the tracing of these will implicitly widen the annotation
to apply to the entire backing store allocation.

R=haraken,inferno
BUG=420515

Review URL: https://codereview.chromium.org/941073002

git-svn-id: svn://svn.chromium.org/blink/trunk@190624 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: remove dated FIXME.
Layout object is no longer on the heap, so comment no longer applies.

R=haraken
BUG=398342
NOTRY=true

Review URL: https://codereview.chromium.org/941923003

git-svn-id: svn://svn.chromium.org/blink/trunk@190623 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Sync the Attr interface with the spec
https://dom.spec.whatwg.org/#interface-attr

BUG=460722

Review URL: https://codereview.chromium.org/942283002

git-svn-id: svn://svn.chromium.org/blink/trunk@190621 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r190610 (214ee03e).
TBR=oilpan-reviews
BUG=333143
NOTRY=true

Review URL: https://codereview.chromium.org/945233002

git-svn-id: svn://svn.chromium.org/blink/trunk@190617 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jiangj
Add icui18n dependency to bookmarks
bookmark_model.cc uses icu::Collator directly so it should have
direct dependency to icui18n, otherwise there will be a linking
issue on Linux for component builds and configuration_policy==0,
policy_component won't link because of the missing icui8n dependency.
It's a followup of CL 938003002.

Review URL: https://codereview.chromium.org/947443004

Cr-Commit-Position: refs/heads/master@{#317426}
mstensho
Remove dump-render-tree/PNG paged overflow tests from fast/overflow/
There are already enough reftests for such things in fast/pagination/ to ensure
coverage, with the exception of column-gap tests, but support for column-gap on
paged containers should be removed anyway; see crbug.com/460106

R=andersr@opera.com

Review URL: https://codereview.chromium.org/938093002

git-svn-id: svn://svn.chromium.org/blink/trunk@190596 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Add [TypeChecking=Interface] to the TextTrack interface
Affects addCue and removeCue (no longer accepts any thing else as null.)

Review URL: https://codereview.chromium.org/946583002

git-svn-id: svn://svn.chromium.org/blink/trunk@190585 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Hoist cue "deactivation" out of TextTrackCueList::remove
Hoist the calls to setIsActive and removeDisplayTree into the callers.
This brings us closer to avoiding side-effects in fairly low-level code.
In TextTrackCueList::updateCueIndex open-code the remove()-call and
eliminate the redundant call to contains(). Also eliminate contains()
itself because it no longer has any uses.

BUG=321654

Review URL: https://codereview.chromium.org/941983003

git-svn-id: svn://svn.chromium.org/blink/trunk@190574 bbb929c8-8fbe-4397-9dbb-9b2b20218538
marcing
Set unregistered handles to NULL in BatteryStatusObserver::Stop
BatteryStatusObserver::Stop can be called twice from
BatteryStatusService::Shutdown, so power_handle_ and batter_change_handle_
should be set to NULL on the first call, otherwise the second call
will pass invalid handles to UnregisterNotification.

Review URL: https://codereview.chromium.org/924193006

Cr-Commit-Position: refs/heads/master@{#317321}
sigbjornf
Oilpan: prefer ENABLE(OILPAN).
R=kouhei

Review URL: https://codereview.chromium.org/942813002

git-svn-id: svn://svn.chromium.org/blink/trunk@190565 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Start moving tree-boundary-crossing rules to ScopedStyleResolver.
This is a step towards getting StyleResolver and the document-wide
TreeBoundaryCrossingRules removed.

Store tree-boundary-crossing rules on ScopedStyleResolver instead of
having a map between scope and tree-boundary-crossing rules in the
TreeBoundaryCrossingRules object.

What's left in TreeBoundaryCrossingRules is now a list of scopes which
contains tree-boundary-crossing rules. When we find an efficient way to
limit the scopes considered when resolving style for a given element, we
can get rid of TreeBoundaryCrossingRules completely, I think.

Adding @font-face and @keyframe rules is also moved into
ScopedStyleResolver and StyleResolver::processScopedRules can be removed.

BUG=401359

Review URL: https://codereview.chromium.org/931143002

git-svn-id: svn://svn.chromium.org/blink/trunk@190549 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Remove TextTrackCue::notifyRegionWhenRemovingDisplayTree
This method is only called in CueTimeline::removeCue, and in there it's
only used to reset the m_notifyRegion flag in VTTCue temporarily while
calling removeDisplayTree. Remove notifyRegionWhenRemovingDisplayTree
in favor of passing a flag to removeDisplayTree.
In order to achieve this though we need to hoist the submerged call
to removeDisplayTree from TextTrackCue::setIsActive. This in turn makes
it clear that removeDisplayTree was called twice in the relevant
context.

BUG=321654,322434

Review URL: https://codereview.chromium.org/939193002

git-svn-id: svn://svn.chromium.org/blink/trunk@190547 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Avoid shadowing local |event| in CueTimeline::updateActiveCues
Dispatching to the track element would declare an |event| in its scope
that would shadow an |event| in the parent scope.
Avoid this by moving the event-creation-for-a-target to a small helper
function and then use that for all scheduling of events in this method.

BUG=321654

Review URL: https://codereview.chromium.org/935423002

git-svn-id: svn://svn.chromium.org/blink/trunk@190543 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Preserve required MS x64 call stack alignment when flushing registers.
The Microsoft x64 calling convention also requires a 16-byte stack
alignment on invocation of "call"; adjust pushAllRegisters stack usage
accordingly.

( From patch contributed by ilya.berdichevsky )

R=haraken
BUG=446479

Review URL: https://codereview.chromium.org/941763002

git-svn-id: svn://svn.chromium.org/blink/trunk@190539 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jiangj
bookmarks component should depend on base_i18n
bookmark_index.cc, bookmark_model.cc and bookmark_utils.cc all uses
functions from base_i18n.

Review URL: https://codereview.chromium.org/938003002

Cr-Commit-Position: refs/heads/master@{#317096}
bratell
Avoid large inlined automatic methods in IndexedDB code.
The chromium base policy is to not inline code but since automatically
generated code and templates easily become inlined it can happen
anyway. This explicitly outlines destructors, copy constructors and
assignment operators in the IndexedDB code for a win of
11 KB of x64 machine code. Most of it (maybe 8 KB) from IndexedDBKey.

clang x64 numbers:
Total change: -11795 bytes
==========================
  42 added, totalling +3270 bytes across 13 sources
  25 removed, totalling -5883 bytes across 14 sources
  9 grown, for a net change of +1556 bytes (7936 bytes before, 9492 bytes after) across 6 sources
  60 shrunk, for a net change of -10738 bytes (54277 bytes before, 43539 bytes after) across 17 sources

BUG=

Review URL: https://codereview.chromium.org/933823002

Cr-Commit-Position: refs/heads/master@{#317090}
mstensho
Add a more evil version of fast/multicol/table-cell-content-change.html
It's not really that evil, but still too much for the old / current multicol
implementation to handle, because of an imperfect column balancing algorithm
there.

BUG=352052
R=andersr@opera.com

Review URL: https://codereview.chromium.org/940873003

git-svn-id: svn://svn.chromium.org/blink/trunk@190485 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
[New Multicolumn] Handle flow thread overflow correctly in flipped writing modes.
LayoutFlowThread::fragmentsBoundingBox() works on physical rectangles. Document
this fact and make sure that the callers do use physical rectangles, instead of
having the block progression coordinate flipped in vertical-rl and
horizontal-bt writing modes.

BUG=457185
R=dsinclair@chromium.org,jchaffraix@chromium.org

Review URL: https://codereview.chromium.org/933043005

git-svn-id: svn://svn.chromium.org/blink/trunk@190482 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Gracefully handle screen.orientation access over unsupported frames.
WebLocalFrame-hosted LocalFrames install screen orientation support;
WebPagePopup-hosted ones reasonably don't. The window of the latter
kind are accessible in non-production builds, so correctly handle
any attempted access to screen.orientation for these.

R=haraken,mlamouri
BUG=459284

Review URL: https://codereview.chromium.org/943483003

git-svn-id: svn://svn.chromium.org/blink/trunk@190479 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Add TypeChecking=Unrestricted to Web Animation APIs
This CL enables type-checking of IDL floating point values on interfaces:

  AnimationPlayer,
  AnimationTimeline and
  Timing

and the dictionaries:
    
  AnimationPlayerEventInit,
  ComputedTimingProperties and
  WebKitAnimationEventInit

Per AnimationTiming{,ReadOnly} in the current draft specification, make
Timing.duration and Timing.iterations 'unrestricted double', while keeping
other attributes as "restricted".

BUG=335350, 354298

Review URL: https://codereview.chromium.org/939623002

git-svn-id: svn://svn.chromium.org/blink/trunk@190474 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jiangj
Properly ifdef sync code in password_manager
Fix one misplaced header include and use PASSWORD_MANAGER_ENABLE_SYNC
macro to properly guard the other place of sync usage to fix a linking
issue when PASSWORD_MANAGER_ENABLE_SYNC is disabled.

Review URL: https://codereview.chromium.org/943533002

Cr-Commit-Position: refs/heads/master@{#317043}
eirik
Fix some virtual vs override issues in PolicyServiceStub
Review URL: https://codereview.chromium.org/935333004

Cr-Commit-Position: refs/heads/master@{#317040}
jiangj
Do not use hardcoded identifier in password manager user authorization
password_manager_util_mac uses hardcoded "com.google.Chrome", since rest of the
code is pretty generic we would like to use this file directly in Opera, however
we want to use something like com.operasoftware.Opera, since that information is
can already be retrieved from [base::mac::MainBundle() bundleIdentifier] we can
just use it and append ".show-passwords".

BUG=447344

Review URL: https://codereview.chromium.org/817333002

Cr-Commit-Position: refs/heads/master@{#317037}
fs
Drop unused includes from SVGLayoutStyle.h
After pushing most of the ExceptionState-usage out of SVGLength, the
construction of SVGLength's no longer need to include
ExceptionStatePlaceholder.h

CSSValueList.h also isn't needed here, so propagate that to where it is.

Review URL: https://codereview.chromium.org/933333003

git-svn-id: svn://svn.chromium.org/blink/trunk@190467 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
IDL: Support default values for dictionary members of union types
Fix in three parts:

1) For each union member, add a static "fromThatType(ThatType value)"
   function, that constructs and returns a union type container object.

2) Add IdlUnionType.literal_cpp_value() that returns an C++ expression
   using a static function (added in 1) that matches the literal value.

3) Use idl_type.literal_cpp_value(literal_value) in v8_dictionary.py
   instead of str(literal_value), thus using the union type override
   (added in 2) for union type members.

BUG=240176, 321462

Review URL: https://codereview.chromium.org/937773002

git-svn-id: svn://svn.chromium.org/blink/trunk@190464 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
fast/scroll-behavior/overflow-scroll-animates.html is gone.
So remove all references to it from TestExpectations.

NOTRY=true
TBR=ccameron@chromium.org

Review URL: https://codereview.chromium.org/931623003

git-svn-id: svn://svn.chromium.org/blink/trunk@190454 bbb929c8-8fbe-4397-9dbb-9b2b20218538
bratell
Handle shared memory symbols better in the binarysize tool.
The linker can let two symbols share the same memory space and then
it is wrong to count that memory space twice. Better to let each symbol
contribute with a proportional part of that symbol.

This only affects the explain_binary_size_delta program. The graphical
treeview will still use the full symbol size since it's valuable
information in that context.

BUG=

Review URL: https://codereview.chromium.org/397593007

Cr-Commit-Position: refs/heads/master@{#316844}
fs
Simplify SVGLengthContext::valueForLength
The floatValueForLength helper handles the Percent type, so no need to
special-case that.
Only resolve the viewport if there's a chance that it'll be used.
Mark as const.

Review URL: https://codereview.chromium.org/933313003

git-svn-id: svn://svn.chromium.org/blink/trunk@190431 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Rewrite fast/multicol/table-vertical-align.html as a reftest.
R=andersr@opera.com
BUG=386567

Review URL: https://codereview.chromium.org/929293002

git-svn-id: svn://svn.chromium.org/blink/trunk@190420 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Rewrite fast/multicol/table-margin-collapse.html as a reftest.
R=andersr@opera.com
BUG=386567

Review URL: https://codereview.chromium.org/928413003

git-svn-id: svn://svn.chromium.org/blink/trunk@190413 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ed
Add UseCounter for SVGGraphicsElement.getTransformToElement
Asked for in SVGWG meeting:
http://www.w3.org/Graphics/SVG/WG/track/actions/3725

Review URL: https://codereview.chromium.org/930523002

git-svn-id: svn://svn.chromium.org/blink/trunk@190412 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Un-Skip three tests in fast/multicol/vertical-rl/ for region-based multicol.
They just work.

R=andersr@opera.com
BUG=386567

Review URL: https://codereview.chromium.org/931813003

git-svn-id: svn://svn.chromium.org/blink/trunk@190410 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Add [TypeChecking=Unrestricted] on DevToolsHost interface
The only definition that this actually affects is a method with a custom
implementation, so the IDL change is just for show.

Also adjust the custom implementation of this method to be closer to
normal generated code in handling its float arguments, thereby actually
making them restricted and thus honoring the [TypeChecking=Unrestricted]
flag.

BUG=354298

Review URL: https://codereview.chromium.org/939613002

git-svn-id: svn://svn.chromium.org/blink/trunk@190405 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Add [TypeChecking=Unrestricted] to Web Audio interfaces
This changes behavior when non-finite floating point values are assigned
to attributes or passed as arguments to methods, by throwing TypeError
exceptions. The old behavior was to throw InvalidStateError exceptions
in some cases, as required by the current spec, and to not throw anything
in other cases.

Since value checks are now done by the bindings layer, some checks can
be removed from or simplified in the Web Audio implementation.

The new behavior is required by the WebIDL spec and matches Firefox. There
is an (at the time of writing) open Web Audio bug to align it with WebIDL:

  https://github.com/WebAudio/web-audio-api/issues/385

BUG=354298

Review URL: https://codereview.chromium.org/927333004

git-svn-id: svn://svn.chromium.org/blink/trunk@190397 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Add TypeChecking=Unrestricted to Element and Window interfaces
Affects

  Element.scrollLeft/Top and
  Element/Window.scroll{,By,To}.

Matches CSSOM View, but no change in behavior or generated code.

BUG=354298

Review URL: https://codereview.chromium.org/936503003

git-svn-id: svn://svn.chromium.org/blink/trunk@190381 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Add TypeChecking=Unrestricted to Document
Only affects createTouch(...). No changes to generated code.

BUG=354298

Review URL: https://codereview.chromium.org/935583003

git-svn-id: svn://svn.chromium.org/blink/trunk@190380 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Use IDL union for Timing.duration
Replace the named setter/getter hack with a proper union attribute. This
fixes the behavior when assigning a DOMString that can be interpreted as
a number, so adjust (fix) test.

BUG=430337, 335350

Review URL: https://codereview.chromium.org/929273002

git-svn-id: svn://svn.chromium.org/blink/trunk@190376 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Add TypeChecking=Unrestricted to SVGElements where applicable
Affects the following methods:

  SVGAnimationElement.beginElementAt(float offset)
  SVGAnimationElement.endElementAt(float offset)
  SVGFEDropShadowElement.setStdDeviation(float ..., float ...)
  SVGFEGaussianBlurElement.setStdDeviation(float ..., float ...)

The new behavior matches Gecko.

Adjust the test svg/custom/elementTimeControl-nan-crash.html to handle the
exception and make it call dumpAsText earlier.

BUG=354298, 311246

Review URL: https://codereview.chromium.org/931583003

git-svn-id: svn://svn.chromium.org/blink/trunk@190359 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Use TypeChecking=Unrestricted on Internal* interfaces
These interfaces should generally not be used for testing the types of
IDL edge-cases that non-finite numbers imply, so make all float/double
parameters 'restricted'.

BUG=354298

Review URL: https://codereview.chromium.org/930933002

git-svn-id: svn://svn.chromium.org/blink/trunk@190358 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Move and rename RenderQuote and RenderWordBreak.
RenderQuote -> LayoutQuote
RenderWordBreak -> LayoutWordBreak

BUG=450612
TBR=dsinclair@chromium.org

Review URL: https://codereview.chromium.org/934853002

git-svn-id: svn://svn.chromium.org/blink/trunk@190344 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Add TypeChecking=Unrestricted to Speech API interfaces
Affects:

  SpeechSynthesisUtterance.{volume,rate,pitch}
  SpeechGrammarList.addFrom*(..., optional float weight)
  SpeechGrammar.weight

BUG=354298

Review URL: https://codereview.chromium.org/933523004

git-svn-id: svn://svn.chromium.org/blink/trunk@190335 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Move and rename RenderBR to LayoutBR.
BUG=450612
TBR=dsinclair@chromium.org

Review URL: https://codereview.chromium.org/931633003

git-svn-id: svn://svn.chromium.org/blink/trunk@190326 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: move the GradientStop value object off the heap.
Heap allocating collections of the GradientStop part object,
as introduced in r183472, is not really merited. The value
object has no traceable fields and the collections of them
have a stack lifetime.

R=haraken
BUG=340522

Review URL: https://codereview.chromium.org/931153002

git-svn-id: svn://svn.chromium.org/blink/trunk@190322 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Add TypeChecking=Unrestricted to DataView
This may be mostly for show, but it at the very least documents behavior
and intent.
Also drop comment referring to JSC since that no longer applies.

BUG=354298

Review URL: https://codereview.chromium.org/927323002

git-svn-id: svn://svn.chromium.org/blink/trunk@190313 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Move and rename RenderFrame and RenderFrameSet.
RenderFrame -> LayoutFrame
RenderFrameSet -> LayoutFrameSet

BUG=450612
TBR=dsinclair@chromium.org,jochen@chromium.org

Review URL: https://codereview.chromium.org/929223003

git-svn-id: svn://svn.chromium.org/blink/trunk@190311 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Correct DRT expectations after rename to LayoutHTMLCanvas.
The auto-rebaseline https://codereview.chromium.org/934663002 somehow
ended up using the old name RenderHTMLCanvas in *some* of the DRT
expectations.

TBR=pdr@chromium.org
BUG=459085,458898

Review URL: https://codereview.chromium.org/933813002

git-svn-id: svn://svn.chromium.org/blink/trunk@190308 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Move and rename RenderEmbeddedObject and RenderIFrame.
RenderEmbeddedObject -> LayoutEmbeddedObject
RenderIFrame -> LayoutIFrame

Also return the correct name from LayoutIFrame::renderName().
Used to be RenderPartObject.

BUG=450612
TBR=dsinclair@chromium.org

Review URL: https://codereview.chromium.org/930183002

git-svn-id: svn://svn.chromium.org/blink/trunk@190304 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Apply TypeChecking=Unrestricted to SVG{Number,Length,Transform,Angle}
Matches Gecko.

BUG=354298,311246

Review URL: https://codereview.chromium.org/930053002

git-svn-id: svn://svn.chromium.org/blink/trunk@190303 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Add TypeChecking=Unrestricted to the MIDIOutput interface
BUG=354298

Review URL: https://codereview.chromium.org/927123002

git-svn-id: svn://svn.chromium.org/blink/trunk@190302 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Call NodeFilter.acceptNode() with correct this value
Per WebIDL, a callback interface's operation should be called with
object that implements the interface as this, unless the provided object
itself is used as the function to call, in which case it should be called
with this=undefined (by default, allowing for overridden by the algorithm
that makes the call.)

The code calling NodeFilter.acceptNode() always used the context's global
object as this. Note that when this=undefined and the function called is
not compiled in strict mode, the actual this value seen by the function
will still be the global object.

BUG=419548

Review URL: https://codereview.chromium.org/932633002

git-svn-id: svn://svn.chromium.org/blink/trunk@190299 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Move text track active list management to CueTimeline
This CL introduces a new class CueTimeline and moves the code used
for managing the list of active cues, the interval tree and other
state used when rendering cues from HTMLMediaElement to it.
For the most part this is code movement. The exception is that
CueTimeline::updateActiveCues check for the presence of
a WebMediaPlayer rather than a MediaPlayer when computing the new
list of active cues.
Methods/data are rename to remove [Tt]extTrack where appropriate.
Some adjustments are done to visibility/exposure of data on
HTMLMediaElement to allow the state to be queried when needed.

BUG=321654

Review URL: https://codereview.chromium.org/913133003

git-svn-id: svn://svn.chromium.org/blink/trunk@190298 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ed
Make use of new method for setting lengths in presentation style.
BUG=

Review URL: https://codereview.chromium.org/933663002

git-svn-id: svn://svn.chromium.org/blink/trunk@190297 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r190292.
Reapply the build fix from r190127, not incorporated by the
refactoring in r190292.

TBR=oilpan-reviews
BUG=452383
NOTRY=true

Review URL: https://codereview.chromium.org/931033003

git-svn-id: svn://svn.chromium.org/blink/trunk@190294 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Move and rename RenderPart to LayoutPart.
Also make LayoutPart::renderName() pure virtual.
Everyone overrides it anyway (except in the unit test,
which was easy enough to fix).

BUG=450612
TBR=dsinclair@chromium.org,jochen@chromium.org,dmazzoni@chromium.org

Review URL: https://codereview.chromium.org/931003002

git-svn-id: svn://svn.chromium.org/blink/trunk@190282 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Move and rename RenderReplaced and RenderHTMLCanvas to Layout{Replaced,HTMLCanvas}.
Also make LayoutReplaced::renderName() pure virtual.
Everyone overrides it anyway.

BUG=450612
TBR=dsinclair@chromium.org,dmazzoni@chromium.org

Review URL: https://codereview.chromium.org/930833003

git-svn-id: svn://svn.chromium.org/blink/trunk@190276 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: unbreak WebGL context lost tests following r190259.
TBR=oilpan-reviews
BUG=451602
NOTRY=true

Review URL: https://codereview.chromium.org/929003004

git-svn-id: svn://svn.chromium.org/blink/trunk@190273 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Add TypeChecking=Unrestricted to SVG{Matrix,Rect,Point}
Convert all float/double attributes/arguments into unrestricted such in
order to match the corresponding DOM* type from the Geometry spec. - since
this is what SVG2 will be replacing these types with.

BUG=354298,311246

Review URL: https://codereview.chromium.org/927113002

git-svn-id: svn://svn.chromium.org/blink/trunk@190264 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
IDL: Don't lose nullable flag when "preprocessing" type
The preprocessing converts any enumeration type into IdlType('DOMString'),
including nullable enumeration types, which is wrong. It should convert an
nullable enumeration type into IdlNullableType(IdlType('DOMString')).

This change affects the code generation for the following methods and
attributes:

  object? WebGLRenderingContextBase.getExtension()
  VendorIDSource? BluetoothDevice.vendorIDSource [can return null]
  RTCSdpType? RTCSessionDescription.type [can be set to and return null]

BUG=451602

Review URL: https://codereview.chromium.org/928233002

git-svn-id: svn://svn.chromium.org/blink/trunk@190259 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Add TypeChecking=Unrestricted to the WebKitCSSMatrix interface
No changes to generated code.

BUG=354298

Review URL: https://codereview.chromium.org/927023003

git-svn-id: svn://svn.chromium.org/blink/trunk@190257 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Add tests for SVGPathElement.get{PathSeg,Point}AtLength wrt non-finiteness
BUG=311246

Review URL: https://codereview.chromium.org/927073002

git-svn-id: svn://svn.chromium.org/blink/trunk@190252 bbb929c8-8fbe-4397-9dbb-9b2b20218538
andersr
Don't allocate Strings in FontDescription().
Creation of the 'locale' String in the FontDescription constructor accounts
for 14% of the time spent in StyleResolver::styleForElement in the test-
case html5-full-render.html.

Changes in this patch:

 * Let locale default-initialize, and instead produce "en" on demand.
 * Use AtomicString instead of String. The locale is already stored on
   LayoutStyle as an AtomicString, so we might as well use that.

R=eae@chromium.org
BUG=438069

Review URL: https://codereview.chromium.org/924903002

git-svn-id: svn://svn.chromium.org/blink/trunk@190246 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Make FrameDestructionObserver::m_frame a private.
Restrict visibility over FrameDestructionObserver, notably turning m_frame
into a private. This makes it slightly easier to replace
FrameDestructionObserver with something LifecycleObserver-derived instead.

Also includes some incidental core/plugins/ code tidyups.

R=haraken

Review URL: https://codereview.chromium.org/928033002

git-svn-id: svn://svn.chromium.org/blink/trunk@190230 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: leave out TreeScope::dispose().
Leave out base dispose() method from TreeScope's vtable when Oilpan is
enabled; unused.

R=haraken
BUG=340522

Review URL: https://codereview.chromium.org/926913002

git-svn-id: svn://svn.chromium.org/blink/trunk@190191 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Gracefully handle nested frame detaches.
If a frame detach triggered a load cancellation that resulted in another
detach, the initiating detach operation wasn't quite prepared.

Address by checking for the completion of a frame detach after
detachment of the loader-specific operations (FrameLoader.)

R=haraken
BUG=452253

Review URL: https://codereview.chromium.org/923363002

git-svn-id: svn://svn.chromium.org/blink/trunk@190184 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ed
[svg2] Make 'x' and 'y' presentation attributes
The following elements' x and y attributes have been made
into presentation attributes:

* foreignObject
* image
* mask
* pattern
* rect
* svg
* use

The cursor, filter, all the filter primitive elements, text,
tspan and textPath elements have been excluded for now.

This is a partial merge of Dirk Schulze's WebKit patch
http://trac.webkit.org/changeset/171591.

This patch avoids reparsing the attribute values when they
are added to the presentation style, which was one of the
leading reasons for the slowness seen in bug 369942.

BUG=400725

Review URL: https://codereview.chromium.org/896773002

git-svn-id: svn://svn.chromium.org/blink/trunk@190180 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Add TypeChecking=Unrestricted to SVGPathSeg interfaces and "constructors"
"constructors" are the SVGPathElement.createSVGPathSeg* functions.
These methods have low usage, and this matches Geckos behavior.

BUG=354298,311246

Review URL: https://codereview.chromium.org/925873005

git-svn-id: svn://svn.chromium.org/blink/trunk@190173 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Revert of Insert an anonymous inline-table when inserting a table part under an inline. (patchset #3 id:40001 of https://codereview.chromium.org/895953003/)
Reason for revert:

Caused bug 458184, and more. I'll reland a new CL for this as soon as I figure
out how to do so without breaking stuff.

I think what needs to be fixed is to add some logic in RenderInline::addChild()
or addChildBlahblah(), to drill down to the actual parent of |beforeChild|, if
specified. Looks like anonymous inline-level boxes is a rather unknown concept
in the engine.

Also reverting the rebaselining that followed.

Original issue's description:
> Insert an anonymous inline-table when inserting a table part under an inline.
>
> The spec says that if the parent of the table part is an inline, we must wrap
> it inside an inline-table instead of a table.
>
> Apart from giving correct rendering, this change also helps avoid establishing
> (incorrect) inline continuations in some cases.
>
> BUG=327832, 452591, 53693, 2032
>
> Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=189941

TBR=leviw@chromium.org,jchaffraix@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=327832, 452591, 53693, 2032

Review URL: https://codereview.chromium.org/927653002

git-svn-id: svn://svn.chromium.org/blink/trunk@190163 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Revert "Oilpan: Add more asserts to Heap::collectGarbage"
This reverts commit c030706815f2d55e9f04ffdef39854059f7b5448.

Reason for revert: broke heap unittests,

 http://build.chromium.org/p/chromium.webkit/builders/WebKit%20Linux%20Oilpan%20%28dbg%29/builds/9631/steps/blink_heap_unittests/logs/HeapTest.LazySweepingLargeObjectPages

R=haraken
BUG=420515
NOTRY=true

Review URL: https://codereview.chromium.org/927513003

git-svn-id: svn://svn.chromium.org/blink/trunk@190148 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Move rendering/RenderImage* to layout/LayoutImage*
BUG=450612
TBR=dsinclair@chromium.org

Review URL: https://codereview.chromium.org/923953002

git-svn-id: svn://svn.chromium.org/blink/trunk@190144 bbb929c8-8fbe-4397-9dbb-9b2b20218538
joleksy
[Mac] Allow vibrancy & transparency on WebContentsView
In order to make a view vibrant we need to:
1. Place the view inside NSVisualEffectView
2. Return YES from allowsVibrancy

In order to make it possible to use WebContentsViewCocoa in vibrant view hierarchy, we need to implement allowsVibrancy.

From NSView documentation for allowsVibrancy:
"AppKit checks this property when the view is incorporated into a view hierarchy that uses vibrancy."

This means that only returning YES from allowsVibrancy will have no effect on the way view is rendered, we are safe to just return YES here.

Note: returning YES from isOpaque causes problems with vibrancy, that is why a setter is needed on RenderWidgetHostViewCocoa.

Review URL: https://codereview.chromium.org/869563003

Cr-Commit-Position: refs/heads/master@{#316210}
jl
Move Iterable.h and Maplike.h to bindings/core/v8/
BUG=432683

Review URL: https://codereview.chromium.org/926563002

git-svn-id: svn://svn.chromium.org/blink/trunk@190141 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: avoid access to to-be-swept ImageLoader object.
If the ImageLoader update microtask holds onto an ImageLoader object
that's slated to be swept out, do not invoke its update method. Doing so
might in turn risk accessing some of its already swept&finalized
references.

Also tidy up WeakFactory field ordering for ImageLoader::Task.

R=haraken,kouhei
BUG=420515

Review URL: https://codereview.chromium.org/923443004

git-svn-id: svn://svn.chromium.org/blink/trunk@190140 bbb929c8-8fbe-4397-9dbb-9b2b20218538
bratell
Trigger hardware accelerated canvas GC more aggressively.
A hardware accelerated canvas indirectly owns a number of GPU resources
and if they become too numerous we see drastic slowdowns. At the very
least we should let the GC know about the cost of an HTMLCanvasElement
so that it can correctly schedule garbage collects.

This makes test timeouts caused by buildup of HTMLCanvasElements in
canvas tests slightly less likely.

BUG=450699
R=jochen@chromium.org,junov@chromium.org

Review URL: https://codereview.chromium.org/910613003

git-svn-id: svn://svn.chromium.org/blink/trunk@190135 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r190118.
TBR=oilpan-reviews
BUG=452383
NOTRY=true

Review URL: https://codereview.chromium.org/919363002

git-svn-id: svn://svn.chromium.org/blink/trunk@190127 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Add Maplike<> utility mixin class for implementing maplike interfaces
This utility class inherits PairIterable<> and currently implements has()
and get() based on a single virtual getMapEntry() function that a sub-class
needs to implement. It takes care of the slight complication that get()
should return undefined if the requested key is not in the map, which is
somewhat impractical to implement (requires constructing a ScriptValue to
return.)

Update the maplike implementations MIDIPortMap and MediaKeyStatusMap to
inherit Maplike<> instead of its base-class PairIterable<>, and remove
their has()/get() implementations.

BUG=432683

Review URL: https://codereview.chromium.org/920713002

git-svn-id: svn://svn.chromium.org/blink/trunk@190113 bbb929c8-8fbe-4397-9dbb-9b2b20218538
landell
Add missing include file to Database.cpp
Review URL: https://codereview.chromium.org/918103003

git-svn-id: svn://svn.chromium.org/blink/trunk@190099 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Rename WATCHLIST definition 'rendering' to 'layout', and add Source/core/layout
BUG=450612

TBR=jchaffraix@chromium.org

Review URL: https://codereview.chromium.org/921933003

git-svn-id: svn://svn.chromium.org/blink/trunk@190090 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jiangj
Add missing ppapi_cpp_objects dependency to pdf
https://codereview.chromium.org/799643004/ links pdf to
ppapi_internal_module, it should link to ppapi_cpp_objects as well.

That CL broke disable_nacl==1 builds due to the missing dependency.

Review URL: https://codereview.chromium.org/920853002

Cr-Commit-Position: refs/heads/master@{#316112}
mstensho
Rewrite fast/multicol/shadow-breaking.html as a check-layout test.
The old / current multicol implementation had imperfect column balancing in the
old test, so writing a reftest would be tricky, but anyway: it's not obvious
that our current behavior (both implementations) where we include the shadows
in the columns, rather than letting them overflow, is correct (as a matter of
fact, it's most likely wrong). So let's just test what really needs to work:
that a shadow doesn't incorrectly push the next line down.

BUG=386567
R=andersr@opera.com

Review URL: https://codereview.chromium.org/910313003

git-svn-id: svn://svn.chromium.org/blink/trunk@190085 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Fold up the SVGLengthContext::convertValueFrom* helpers
There are three with similar-looking names, and they are all a single
line each. Fold up where it improves readability, and make the last one
static.
Having folded up convertValueFromUserUnitsToPercentage() we get an
expression that looks like: value * 100 / dimension... * 100; where the
factors (100) obviously cancel out one another. Looking at the single
call-site (SVGLength::setValue) which can actual pass a percentage, it
does an explicit adjustment too. Move that adjustment into the
SVGLengthContext method and drop the two '* 100' - yielding a more
obvious conversion (and less operations to execute).

Review URL: https://codereview.chromium.org/897313004

git-svn-id: svn://svn.chromium.org/blink/trunk@190078 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Use SVGLength-references in the SVGLengthContext API
Convert all the PassRefPtrWillBeRawPtr<SVGLength>-typed arguments to
const SVGLength&. This avoids unnecessary ref-count churn (the caller will
always own a reference anyway). As a side-effect footprint is reduced by
~2k. (resolveRectangle<T> can now be properly inlined and other methods
shrink a bit.)

Review URL: https://codereview.chromium.org/921823002

git-svn-id: svn://svn.chromium.org/blink/trunk@190070 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
:visited invalidation for remaining text-related properties.
Following up https://codereview.chromium.org/900443006

All text-related CSS properties which may have different :visited style
needs to be checked when deciding if we need a repaint.

Also added a missing check for window.testRunner in the testcase for color.

R=wangxianzhu@chromium.org
BUG=439812

Review URL: https://codereview.chromium.org/917973002

git-svn-id: svn://svn.chromium.org/blink/trunk@190066 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
include vector header
Drive-by fixup for https://codereview.chromium.org/799633007

BUG=368298

Review URL: https://codereview.chromium.org/889603008

Cr-Commit-Position: refs/heads/master@{#315994}
fs
Fold VTTCue::createCueRenderingTree into VTTCue::updateDisplayTree
updateDisplayTree is the only caller of the former, and this split doesn't
really help much at the moment.

BUG=321654

Review URL: https://codereview.chromium.org/923563002

git-svn-id: svn://svn.chromium.org/blink/trunk@190061 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Remove MediaControls::textTracksChanged
Use MediaControls::refreshClosedCaptionsButtonVisibility() directly
instead.

BUG=321654

Review URL: https://codereview.chromium.org/923563003

git-svn-id: svn://svn.chromium.org/blink/trunk@190060 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
IDL: Support iterable<>/maplike<>/setlike<> referencing typedefs
The types referenced by iterable<>, maplike<> and setlike<> definitions
were not subject to typedef resolution, leading to incorrect code
generation.

In the process, slightly generalize the typedef resolution mechanism to
support objects referencing more than one type, as iterable<> and
maplike<> definitions do.

BUG=432683

Review URL: https://codereview.chromium.org/924443002

git-svn-id: svn://svn.chromium.org/blink/trunk@190052 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix zeroed page allocation assert.
Loop must and should use block start.

R=haraken
BUG=420515

Review URL: https://codereview.chromium.org/922613002

git-svn-id: svn://svn.chromium.org/blink/trunk@190049 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Emit debug info on failed deletion of temp file.
To help diagnose the source of the Windows test flakiness for
http/tests/local/fileapi/file-last-modified-after-delete.html, add
some console logging.

R=kinuko
BUG=283723

Review URL: https://codereview.chromium.org/919973002

git-svn-id: svn://svn.chromium.org/blink/trunk@190046 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Make MediaControls::m_wasLastEventTouch a local variable
Made possible by "Ensure media control goes to transparent(hide) after
seek by touch": https://codereview.chromium.org/892963003

BUG=454304
R=william.xie@intel.com, fs@opera.com

Review URL: https://codereview.chromium.org/917043003

git-svn-id: svn://svn.chromium.org/blink/trunk@190039 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Only need to re-evaluate MQ on resize.
We did this on every layout, which should be unnecessary.

R=esprehn@chromium.org
BUG=450384
TEST=fast/media/media-query-list-listener
TEST=fast/css/media-query-dynamic.html

Review URL: https://codereview.chromium.org/888503003

git-svn-id: svn://svn.chromium.org/blink/trunk@190034 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: allow StoppingOtherThreads GC state transition.
If collectGarbage() fails to park all threads, the GCState is
reset from StoppingOtherThreads back to its previous state.

If collectAllGarbage() is what brings about that GC, then
collectGarbage()'s incoming GCState will either be GCScheduledForTesting
or NoGCScheduled. setGCState()'s asserts lacked permission for
a StoppingOtherThreads => NoGCScheduled transition.

R=haraken
BUG=420515

Review URL: https://codereview.chromium.org/916373002

git-svn-id: svn://svn.chromium.org/blink/trunk@190033 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
BatteryManager.getBattery(): gracefully bail on context-detached use.
Semi-blind fix for fuzzer-generated crash on accessing a BatteryManager
lacking an execution context.

Added a non-reproducing test to verify detached use, along with reducing
test duplication for similar tests.

R=jochen
BUG=457010

Review URL: https://codereview.chromium.org/915033002

git-svn-id: svn://svn.chromium.org/blink/trunk@190031 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
:visited invalidation for background/border/outline.
Following up https://codereview.chromium.org/900443006

Repaint backgrounds, borders, and outlines when their :visited colors
change.

R=wangxianzhu@chromium.org
BUG=439812

Review URL: https://codereview.chromium.org/915213002

git-svn-id: svn://svn.chromium.org/blink/trunk@190027 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove the hspace/vspace attributes on table
Intent to Remove:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/1ZjuiWEj-Ww/NHFbIT6UB5kJ

Leave the deprecation message in place for some time as it may help Web
developers diagnose any regressions they see due to this change.

There are many remaining tests for <table align=center>, for example:
LayoutTests/fast/table/035.html
LayoutTests/tables/mozilla/marvin/tables_align_center.html

BUG=277080

Review URL: https://codereview.chromium.org/690993003

git-svn-id: svn://svn.chromium.org/blink/trunk@190025 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Re-add markForPaginationRelayoutIfNeeded() for all table children.
This piece of code got removed in https://codereview.chromium.org/196533012 ,
assumedly because some merge conflict wasn't resolved correctly.

Now we can re-enable fast/multicol/table-cell-content-change.html for
region-based multicol.

BUG=348064
R=leviw@chromium.org

Review URL: https://codereview.chromium.org/918703002

git-svn-id: svn://svn.chromium.org/blink/trunk@189998 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Gracefully handle a disconnected popup menu client on disposing open popup.
If the client of a PopupMenu disconnects itself before destructing a
currently open popup menu (and its page), handle the fact that the client
is not reachable for notifications.

R=keishi,haraken
BUG=457383

Review URL: https://codereview.chromium.org/920433002

git-svn-id: svn://svn.chromium.org/blink/trunk@189983 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Move automatic text track selection code to AutomaticTrackSelection helper
Move the body of
HTMLMediaElement::honorUserPreferencesForAutomaticTextTrackSelection and
support functions to a helper class (AutomaticTrackSelection).
A straight-forward code movement with the only difference being that the
helper uses the a configuration object set up from HTMLMediaElement state.

Also moves HTMLMediaElement::markCaptionAndSubtitleTracksAsUnconfigured
closer to it user.

BUG=321654

Review URL: https://codereview.chromium.org/868113005

git-svn-id: svn://svn.chromium.org/blink/trunk@189971 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Initialize all MouseEvent members in all constructors
In the "Improve detection of touch events when hiding media controls"
change <https://codereview.chromium.org/453493002>, m_syntheticEventType
was initialized only in one constructor.

BUG=401177, 445305
R=igsolla@chromium.org, rbyers@chromium.org

Review URL: https://codereview.chromium.org/918553002

git-svn-id: svn://svn.chromium.org/blink/trunk@189968 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
[New Multicolumn] Preparatory work for nested multicol support.
Introducing the class MultiColumnRow. A RenderMultiColumnSet will have one
or more of those. For now, only one row is supported. Moved a lot of code
from RenderMultiColumnSet into MultiColumnRow.

Additionally, since it would just be just cumbersome and waseful to store the
flow thread rectangle in RenderRegion (or RenderMultiColumnSet, for that
matter) now, create a rectangle on the fly when requested.

No behavioral changes are intended.

R=jchaffraix@chromium.org
BUG=447718

Review URL: https://codereview.chromium.org/883293004

git-svn-id: svn://svn.chromium.org/blink/trunk@189966 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r189959.
TBR=oilpan-reviews
BUGS=456624
NOTRY=true

Review URL: https://codereview.chromium.org/901503003

git-svn-id: svn://svn.chromium.org/blink/trunk@189964 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Make DOMParser create documents with a context document set
Store a (weak) reference to the current context's document in DOMParser
objects when created, and use this in parseFromString() when creating
the parsed document.

This matches how parsed documents are created by XMLHttpRequest.

BUG=456624

Review URL: https://codereview.chromium.org/919473004

git-svn-id: svn://svn.chromium.org/blink/trunk@189959 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Don't install private script class without a context document
In HTMLMarqueeElement's constructor, don't try to install the private
script class if there is no context document. Doing so is doesn't work,
and will crash (safely).

BUG=456624

Review URL: https://codereview.chromium.org/918433004

git-svn-id: svn://svn.chromium.org/blink/trunk@189958 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Hoist checks for 'disabled' tracks out of textTrackAddCue{,s}
In most cases the mode has already been checked by calling code, so the
check is redundant.
This is done in preparation of factoring the text track rendering code
out of HTMLMediaElement.

BUG=321654

Review URL: https://codereview.chromium.org/910843002

git-svn-id: svn://svn.chromium.org/blink/trunk@189944 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Insert an anonymous inline-table when inserting a table part under an inline.
The spec says that if the parent of the table part is an inline, we must wrap
it inside an inline-table instead of a table.

Apart from giving correct rendering, this change also helps avoid establishing
(incorrect) inline continuations in some cases.

BUG=327832,452591,53693,2032

Review URL: https://codereview.chromium.org/895953003

git-svn-id: svn://svn.chromium.org/blink/trunk@189941 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Check visited color for visual diff.
The color which is actually used for painting needs to be checked when
figuring out if we need to do a paint invalidation. We are checking both
the color for :link and :visited so that the visited state is not exposed
through repaint timing.

This is a problem for other colors as well. If this approach is OK'ed,
I'll go ahead and fix the other ones.

BUG=439812

Review URL: https://codereview.chromium.org/900443006

git-svn-id: svn://svn.chromium.org/blink/trunk@189918 bbb929c8-8fbe-4397-9dbb-9b2b20218538
andersr
Let StyleResolver figure out differences between UA style and resolved style.
We currently pass a CachedUAStyle out of StyleResolver and let LayoutTheme
figure out the background/border differences between UA style, and the
fully resolved style. This is not ideal, because it requires the diffing
to take place in a specific way, making it hard to make changes to how
the diff is produced.

This patch passes an object UAStyleChange to LayoutTheme, pre-filled with
the result of the diff.

R=timloh@chromium.org

Review URL: https://codereview.chromium.org/895383002

git-svn-id: svn://svn.chromium.org/blink/trunk@189912 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Issue FrameDestructionObserver::frameDestroyed() notification on detach.
Send this notification during detach instead of waiting until finalization,
which will typically proceed shortly afterwards (non-Oilpan.) The
supplements of the LocalFrame are cleared at the same time so as to
prevent FrameDestructionObservers that are also supplements from being
used in their detached state.

Doing so makes the observable lifetimes for FrameDestructionObserver's
frame() identical, with and without Oilpan. Not having GC/finalization
of frames be observable to scripts is preferable.

For LocalDOMWindow, a FrameDestructionObserver, its set of registered
DOMWindowProperty objects are also detached on frameDestroyed(),
clearing their frame references at the same time.

R=haraken,dcheng
BUG=446452

Review URL: https://codereview.chromium.org/881683003

git-svn-id: svn://svn.chromium.org/blink/trunk@189906 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Adjust ScreenOrientation unit test to handle changed detachment timing.
The observer notification of frame detachment is being changed via
http://crrev.com/881683003. Adjust a ScreenOrientationBrowserTest
test to also expect this new behavior.

R=mlamouri
BUG=446452

Review URL: https://codereview.chromium.org/909043002

Cr-Commit-Position: refs/heads/master@{#315564}
sigbjornf
Upgrade Blink to milliseconds-based last modified filetimes, part 7.
Remove WebFileInfo::modificationTimeMS, it is unused.

This completes the transition of WebFileInfo::modificationTime to be
milliseconds-based, and is the last patch in this series:

1: [blink] add WebFileInfo::modificationTimeMS [ https://codereview.chromium.org/873723004/ ]
2: [chromium] fill in modificationTimeMS [ https://codereview.chromium.org/884413002/ ] 
3: [blink] make use of modificationTimeMS [ https://codereview.chromium.org/884393002/ ]
4: [chromium] set modificationTime to something msec-based [ https://codereview.chromium.org/862203003/ ]
5: [blink] switch to modificationTime [ https://codereview.chromium.org/882343002/ ]
6: [chromium] stop setting modificationTimeMS [ https://codereview.chromium.org/890523002/ ]
7: [blink] *this one* [ https://codereview.chromium.org/869613005/ ]

R=mkwst
BUG=451747

Review URL: https://codereview.chromium.org/869613005

git-svn-id: svn://svn.chromium.org/blink/trunk@189901 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Upgrade Blink to milliseconds-based last modified filetimes, part 6.
Have content::FileInfoToWebFileInfo() no longer fill in
WebFileInfo::modificationTimeMS; it is now unused by Blink.

Once landed, this lets Blink remove the WebFileInfo field entirely.

This is part 6 in the following patch series,

1: [blink] add WebFileInfo::modificationTimeMS [ https://codereview.chromium.org/873723004/ ]
2: [chromium] fill in modificationTimeMS [ https://codereview.chromium.org/884413002/ ]
3: [blink] make use of modificationTimeMS [ https://codereview.chromium.org/884393002/ ]
4: [chromium] set modificationTime to something msec-based [ https://codereview.chromium.org/862203003/ ]
5: [blink] switch to modificationTime [ https://codereview.chromium.org/882343002/ ]
6: [chromium] *this one* [ https://codereview.chromium.org/890523002/ ]
7: [blink] remove modificationTimeMS [ https://codereview.chromium.org/869613005/ ]

R=jochen
BUG=451747

Review URL: https://codereview.chromium.org/890523002

Cr-Commit-Position: refs/heads/master@{#315545}
ohrn
Absolute path fixes for gn.
To avoid collisions object files and other build ouput is now prefixed
with ABS_PATH and the full path of the input file.
E.g. /some/path/foo.cc maps to //out/obj/ABS_PATH/some/path/foo.o

In addition there are several fixes for absolute paths on Windows:
The drive letter colon is skipped when parsing labels.
Transform C:\ to /C:\ where needed.

BUG=445454
NOPRESUBMIT=true

Review URL: https://codereview.chromium.org/857163002

Cr-Commit-Position: refs/heads/master@{#315531}
sigbjornf
Make WebGL2 objects Oilpan compatible.
Follow up r189868 by rounding out its Oilpan support.

R=haraken
BUG=295792

Review URL: https://codereview.chromium.org/913603003

git-svn-id: svn://svn.chromium.org/blink/trunk@189881 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
IDL: Auto-declare remaining methods implied by maplike<>/setlike<>
For maplike<K, V>, declare these:

  boolean has(K key);
  any get(K key);

  // read-write only:
  void clear();
  boolean delete(K key);
  X set(K key, V value); // returns self

For setlike<V>, declare these:

  boolean has(V value);

  // read-write only:
  X add(V value); // returns self
  void clear();
  boolean delete(V value);

In interface declarations that contains explicit declarations of methods
with these names already, those existing declarations override the auto-
declared ones. This is the case for all existing uses of maplike<> and
setlike<> in Blink, so this CL does not add any new methods in practice.

To avoid naming conflicts in a uniform way, also add the suffix
"ForBinding" to all auto-declared methods' names on the C++ side, via
the [ImplementedAs=...] extended attribute.

BUG=432683

Review URL: https://codereview.chromium.org/911433003

git-svn-id: svn://svn.chromium.org/blink/trunk@189880 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rchlodnicki
Add missing include header
Needed for the Profile::FromBrowserContext call. Happens to work due to
some other includes that pull in profile.h header.

BUG=

Review URL: https://codereview.chromium.org/910743003

Cr-Commit-Position: refs/heads/master@{#315523}
philipj
Make document.location unforgeable
https://html.spec.whatwg.org/#document
https://heycam.github.io/webidl/#Unforgeable

In document-special-properties.html, an <iframe name="location"> would
previously shadow document.location but now does not. This brings us in
line with IE11. Firefox Nightly does the same, but seemingly only
because it doesn't fall back to named elements at all.

BUG=444015

Review URL: https://codereview.chromium.org/884213006

git-svn-id: svn://svn.chromium.org/blink/trunk@189862 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Revert of Issue FrameDestructionObserver::frameDestroyed() notification on detach. (patchset #5 id:80001 of https://codereview.chromium.org/881683003/)
Reason for revert:
Linux ChromiumOS Tests (dbg) bot is timing out on ScreenOrientationBrowserTest.CrashTest_UseAfterDetach,

 http://build.chromium.org/p/chromium.webkit/builders/Linux%20ChromiumOS%20Tests%20%28dbg%29%281%29/builds/6186

Can't reproduce locally, but will revert & look into it tomorrow.

Original issue's description:
> Issue FrameDestructionObserver::frameDestroyed() notification on detach.
> 
> Send this notification during detach instead of waiting until finalization,
> which will typically proceed shortly afterwards (non-Oilpan.) The
> supplements of the LocalFrame are cleared at the same time so as to
> prevent FrameDestructionObservers that are also supplements from being
> used in their detached state.
> 
> Doing so makes the observable lifetimes for FrameDestructionObserver's
> frame() identical, with and without Oilpan. Not having GC/finalization
> of frames be observable to scripts is preferable.
> 
> For LocalDOMWindow, a FrameDestructionObserver, its set of registered
> DOMWindowProperty objects are also detached on frameDestroyed(),
> clearing their frame references at the same time.
> 
> R=haraken,dcheng
> BUG=446452
> 
> Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=189837

TBR=dcheng@chromium.org,haraken@chromium.org,japhet@chromium.org,oilpan-reviews@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=446452

Review URL: https://codereview.chromium.org/908043002

git-svn-id: svn://svn.chromium.org/blink/trunk@189845 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Upgrade Blink to milliseconds-based last modified filetimes, part 5.
Switch Blink to use a milliseconds-based WebFileInfo::modificationTime
field instead, leaving the temporary field modificationTimeMS as unused
until the embedder has stopped expecting it (see next patch in the series.)

With the WebFileInfo switch back to modificationTime, follow up
FileMetadata and change its modification time field back to
"modificationTime"; it now/still being milliseconds-based.

This patch is the fifth one in the following series,

1: [blink] add WebFileInfo::modificationTimeMS [ https://codereview.chromium.org/873723004/ ]
2: [chromium] fill in modificationTimeMS [ https://codereview.chromium.org/884413002/ ] 
3: [blink] make use of modificationTimeMS [ https://codereview.chromium.org/884393002/ ]
4: [chromium] set modificationTime to something msec-based [ https://codereview.chromium.org/862203003/ ]
5: [blink] *this one* [ https://codereview.chromium.org/882343002/ ]
6: [chromium] stop setting modificationTimeMS [ https://codereview.chromium.org/890523002/ ]
7: [blink] remove modificationTimeMS [ https://codereview.chromium.org/869613005/ ]

R=mkwst
BUG=451747

Review URL: https://codereview.chromium.org/882343002

git-svn-id: svn://svn.chromium.org/blink/trunk@189838 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Issue FrameDestructionObserver::frameDestroyed() notification on detach.
Send this notification during detach instead of waiting until finalization,
which will typically proceed shortly afterwards (non-Oilpan.) The
supplements of the LocalFrame are cleared at the same time so as to
prevent FrameDestructionObservers that are also supplements from being
used in their detached state.

Doing so makes the observable lifetimes for FrameDestructionObserver's
frame() identical, with and without Oilpan. Not having GC/finalization
of frames be observable to scripts is preferable.

For LocalDOMWindow, a FrameDestructionObserver, its set of registered
DOMWindowProperty objects are also detached on frameDestroyed(),
clearing their frame references at the same time.

R=haraken,dcheng
BUG=446452

Review URL: https://codereview.chromium.org/881683003

git-svn-id: svn://svn.chromium.org/blink/trunk@189837 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Move AbstractInlineTextBox to line/ sub-directory.
R=dsinclair@chromium.org,dmazzoni@chromium.org

Review URL: https://codereview.chromium.org/910573002

git-svn-id: svn://svn.chromium.org/blink/trunk@189827 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ohrn
Update JNI generator for javap version 1.8.
In javap 1.7 the signature line was prefixed with 'Signature: ', which in javap 1.8 has changed to 'descriptor: '.

This CL adds support for the new format, and adds a test to ensure that all parsers still work correctly.

Review URL: https://codereview.chromium.org/872843004

Cr-Commit-Position: refs/heads/master@{#315329}
sigbjornf
Upgrade Blink to milliseconds-based last modified filetimes, part 4.
Have content::FileInfoToWebFileInfo() set the temporarily Blink-unused
field WebFileInfo::modificationTime to something milliseconds-based

Once landed, this is to allow Blink to switch to no longer using
WebFileInfo::modificationTimeMS, but modificationTime only (again.)

This is the fourth patch in the following series,

1: [blink] add WebFileInfo::modificationTimeMS [ https://codereview.chromium.org/873723004/ ]
2: [chromium] fill in modificationTimeMS [ https://codereview.chromium.org/884413002/ ]
3: [blink] make use of modificationTimeMS [ https://codereview.chromium.org/884393002/ ]
4: [chromium] *this one* [ https://codereview.chromium.org/862203003/ ]
5: [blink] switch to using modificationTime instead of *MS [ https://codereview.chromium.org/882343002/ ]
6: [chromium] stop setting modificationTimeMS [ https://codereview.chromium.org/890523002/ ]
7: [blink] remove modificationTimeMS [ https://codereview.chromium.org/869613005/ ]

R=jochen
BUG=451747

Review URL: https://codereview.chromium.org/862203003

Cr-Commit-Position: refs/heads/master@{#315322}
sigbjornf
Restrict floats over SVGSVGElement to finite values.
Add [TypeChecking=Unrestricted] to this interface, constraining the
setter for "currentScale" and setCurrentTime() to work over finite
floats.

This aligns behavior with Gecko.

R=fs@opera.com
BUG=

Review URL: https://codereview.chromium.org/910713002

git-svn-id: svn://svn.chromium.org/blink/trunk@189812 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
IDL: Auto-declare implied methods only if not otherwise declared
An interface with an iterable<>, maplike<> or setlike<> declaration
should according to WebIDL have a number of additional methods, some
of which we already auto-declare.

Adjust this auto-declaration so that it's disabled if the interface
has an explicitly declared method with the same name already. This
allows an interface to override some or all of the implied methods,
and for instance declare them with different extended attributes.

BUG=432683

Review URL: https://codereview.chromium.org/894693005

git-svn-id: svn://svn.chromium.org/blink/trunk@189805 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Rewrite fast/multicol/overflow-unsplittable.html as a reftest.
BUG=386567
R=andersr@opera.com

Review URL: https://codereview.chromium.org/898963002

git-svn-id: svn://svn.chromium.org/blink/trunk@189794 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Reduce code duplication across sendBeacon() overloads.
Rework the construction of the Beacon requests across the various supported
payload types, avoiding duplication of type-independent boilerplate code.

On linux64-release, reduces code size from 30k to 15k.

R=mkwst
BUG=

Review URL: https://codereview.chromium.org/864163004

git-svn-id: svn://svn.chromium.org/blink/trunk@189790 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Rewrite fast/multicol/positive-leading-expected.html as a reftest.
R=andersr@opera.com
BUG=386567

Review URL: https://codereview.chromium.org/885143003

git-svn-id: svn://svn.chromium.org/blink/trunk@189786 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Handle rejected promises better for workers.
Rework how the rejected promises that v8 reports are processed in
a worker context, attaching the queue containing them to
WorkerScriptController, which is then drained by the worker thread's
task observer.

Along with that, make the individual rejected promises Oilpan friendly.

R=haraken
BUG=420515

Review URL: https://codereview.chromium.org/897523002

git-svn-id: svn://svn.chromium.org/blink/trunk@189785 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Rewrite fast/multicol/overflow-across-columns.html as a reftest.
Removed fast/multicol/overflow-across-columns-percent-height.html , since it
was pretty useless. A percentage max-height inside something auto height is
going to resolve to 'none'.

BUG=386567
R=andersr@opera.com

Review URL: https://codereview.chromium.org/897023003

git-svn-id: svn://svn.chromium.org/blink/trunk@189783 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Re-attach renderer for progress/meter when author shadow is allowed.
If the author shadow dom is added to progress/meter after the UA shadow dom
renderers have been created, the UA shadow dom renderers will stick. Fixed
by doing a lazyReattachIfAttached for the progress/meter host which were
already done for input elements, for instance.

Fixes flaky tests for progress/meter.

R=tkent@chromium.org
BUG=432129

Review URL: https://codereview.chromium.org/880573007

git-svn-id: svn://svn.chromium.org/blink/trunk@189764 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Upgrade Blink to milliseconds-based last modified filetimes, part 3.
With WebFileInfo now recording modification time in milliseconds via
modificationTimeMS, switch FileMetadata over to using it and keep a
milliseconds-based modification time field also. Also have the fileapi's
File object's snapshot times be milliseconds-based.

To make it clearer what units the modification time values are over,
append a MS suffix. This is temporary until the conversion is complete.

This patch is the third one in the following series,

1: [blink] add WebFileInfo::modificationTimeMS [ https://codereview.chromium.org/873723004/ ]
2: [chromium] fill in modificationTimeMS [ https://codereview.chromium.org/884413002/ ] 
3: [blink] *this one* [ https://codereview.chromium.org/884393002/ ]
4: [chromium] set modificationTime to something msec-based [ https://codereview.chromium.org/862203003/ ]
5: [blink] switch to using modificationTime instead of *MS [ https://codereview.chromium.org/882343002/ ]
6: [chromium] stop setting modificationTimeMS [ https://codereview.chromium.org/890523002/ ]
7: [blink] remove modificationTimeMS [ https://codereview.chromium.org/869613005/ ]

R=mkwst,jsbell
BUG=451747

Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=189475

Review URL: https://codereview.chromium.org/884393002

git-svn-id: svn://svn.chromium.org/blink/trunk@189755 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
[New Multicolumn] Render transformed layers into multiple fragments.
When composited, a layer is transformed on the graphics side, so the best thing
we can do is to carry on and just paint in all columns (without applying the
transform on our own). collectLayerFragments() used to refuse to collect a
fragment for each column involved if the layer was transformed. This is only
correct when not compositing, because then we apply the transform in software
for each column.

Note that the end result won't always be correct for transformed composited
layers. Column gap clipping may be wrong, since the gaps get transformed along
with the layer (also a problem prior to this CL). Furthermore, each fragment
should ideally be transformed separately, in order to use a different origin
for each fragment. But at least we won't lose all content outside the first
fragment, like we used to.

Most of the tests are based on work by andersr@opera.com.

BUG=359877
R=chrishtr@chromium.org

Review URL: https://codereview.chromium.org/801053005

git-svn-id: svn://svn.chromium.org/blink/trunk@189754 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Fix inconsistent LengthMode definition for 'textLength'
The 'textLength' attribute on SVGTextContentElement was defined as
LengthModeOther, while the lengthModeForAnimatedLengthAttribute table
defined as LengthModeWidth. Use the latter in both cases instead.

BUG=455737

Review URL: https://codereview.chromium.org/899293002

git-svn-id: svn://svn.chromium.org/blink/trunk@189707 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
De-ExceptionState-ify SVGLengthContext
The 1.1 specification does not define if exceptions should be thrown
when font-size/x-height/viewport cannot be determined (and hence
relative units not properly evaluated).
UAs don't really agree here and throw/don't throw in different cases.
The gist of this CL is that most of the uses of SVGLengthContext and
SVGLength::value() will not be throwing exceptions at all, so move that
part of the functionality to the callers that might care
(ie SVGLengthTearOff). This in essence checks for the primary failure
modes up front and then throws without calling into SVGLengthContext
at all. Some fidelity in exception messages is sacrificed, and cases
which shouldn't be considered errors (like zero font-size) no longer
cause exceptions to be thrown.

Reduces binary-size by ~15k (only a smaller part of that in
SVGLengthContext itself).

Review URL: https://codereview.chromium.org/901193002

git-svn-id: svn://svn.chromium.org/blink/trunk@189659 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Additional rebaselines for crbug.com/452967
NOTRY=true
TBR=apavlov@chromium.org,dominik.rottsches@intel.com
BUG=452967

Review URL: https://codereview.chromium.org/905783002

git-svn-id: svn://svn.chromium.org/blink/trunk@189655 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r189646 (28249fcb).
TBR=oilpan-reviews
BUG=455674
NOTRY=true

Review URL: https://codereview.chromium.org/904053002

git-svn-id: svn://svn.chromium.org/blink/trunk@189650 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Revert of Fix inconsistent LengthMode definition for 'textLength' (patchset #2 id:20001 of https://codereview.chromium.org/899293002/)
Reason for revert:
May need some rebaselines of

svg/batik/text/textPosition2.svg
svg/batik/text/xmlSpace.svg

Original issue's description:
> Fix inconsistent LengthMode definition for 'textLength'
> 
> The 'textLength' attribute on SVGTextContentElement was defined as
> LengthModeOther, while the lengthModeForAnimatedLengthAttribute table
> defined as LengthModeWidth. Use the latter in both cases instead.
> 
> BUG=455737
> 
> Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=189637

TBR=ed@opera.com,rhodovan.u-szeged@partner.samsung.com,kouhei@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=455737

Review URL: https://codereview.chromium.org/904043002

git-svn-id: svn://svn.chromium.org/blink/trunk@189649 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ed
Tweak test in preparation for fixing bug 400725.
Since rect.x will be made into a presentation attribute,
pick another element and attribute for this test.

BUG=
TBR=fs@opera.com

Review URL: https://codereview.chromium.org/890123003

git-svn-id: svn://svn.chromium.org/blink/trunk@189647 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ed
Deprecate SVGSVGElement.forceRedraw, suspendRedraw, unsuspendRedraw[All]
BUG=

Review URL: https://codereview.chromium.org/901623002

git-svn-id: svn://svn.chromium.org/blink/trunk@189639 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Fix inconsistent LengthMode definition for 'textLength'
The 'textLength' attribute on SVGTextContentElement was defined as
LengthModeOther, while the lengthModeForAnimatedLengthAttribute table
defined as LengthModeWidth. Use the latter in both cases instead.

BUG=455737

Review URL: https://codereview.chromium.org/899293002

git-svn-id: svn://svn.chromium.org/blink/trunk@189637 bbb929c8-8fbe-4397-9dbb-9b2b20218538
andersr
Clamp 'zoom' in CSSToLengthConversionData.
It's possible to reach a state of zoom=0 with compound application of a
small zoom value. (See testcase). We should therefore handle this situation
instead of asserting.

BUG=450606
R=timloh@chromium.org

Review URL: https://codereview.chromium.org/871913003

git-svn-id: svn://svn.chromium.org/blink/trunk@189635 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rogerj
eglWaitSyncKHR is part of the EGL_KHR_wait_sync extension
The eglWaitSyncKHR function should only be expected to exist if the
EGL_KHR_wait_sync extension is supported. The code prior to this patch
triggered a DCHECK if only the EGL_KHR_fence_sync extension was available.

BUG=None

Review URL: https://codereview.chromium.org/900233003

Cr-Commit-Position: refs/heads/master@{#314878}
bratell
Use the supplied memory for YUV decoding.
As some kind of optimization the yuv decoder replaced some pointers
to point to decoder-internal memory when an API user asked for
yuv data. That often worked, but failed if the data needed to
outlive the decoder. It was also a violation of the API contract.

This replaces that with a buffer copy. It will be slower but will avoid
random bitmap errors that also happened randomly on cq try bots.

This is a stopgap solution while a better solution is designed, coded and
tested.

BUG=455235
R=sugoi@chromium.org,dongseong.hwang@intel.com

Review URL: https://codereview.chromium.org/901573004

Cr-Commit-Position: refs/heads/master@{#314865}
jl
Add use counters for missing arguments to window.{move,resize}{To,By}
In preparation of making the arguments non-optional, per spec, add counters
to determine how much impact this would have.

BUG=453421

Review URL: https://codereview.chromium.org/900203002

git-svn-id: svn://svn.chromium.org/blink/trunk@189559 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Turn WorkerLoaderProxy into a threadsafe, ref-counted object.
To avoid relying on the loader client bridge's WorkerLoaderProxy reference
remaining valid until all uses of that bridge object have been finalized,
turn the WorkerLoaderProxy object into a threadsafe, ref-counted object.

Along with that, make the WorkerLoaderProxy implementation more flexible,
allowing the "backend" that actually proxies calls between the worker
and the main thread context to be detached when it is destructed.
This to allow it to be finalized before the WorkerLoaderProxy
instance can be. WorkerLoaderProxyProvider defines that "backend"
interface.

R=kinuko,haraken
BUG=451344

Review URL: https://codereview.chromium.org/887463003

git-svn-id: svn://svn.chromium.org/blink/trunk@189549 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Refactor LengthMode handling in SVGLengthContext
The switch that selects the correct "dimension" factor to scale with is
repeated three times. Refactor the code so that we get the factor from a
helper function instead.

Review URL: https://codereview.chromium.org/902593002

git-svn-id: svn://svn.chromium.org/blink/trunk@189523 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jimmym
Make it possible to debug Release builds on rooted phones
https://codereview.chromium.org/884993003 broke gdb debugging
on Release buils. This commit makes sure it works to debug
Debug and Release (only on rooted device) builds.

BUG=453379

Review URL: https://codereview.chromium.org/891743003

Cr-Commit-Position: refs/heads/master@{#314567}
sigbjornf
Add trace method for NoopUnderlyingSource GC mixin.
Following http://crbug.com/444565, the GC plugin insists on there being
a trace() defined for declared mixin classes. Add such for
NoopUnderlyingSource.

R=haraken
BUG=446121

Review URL: https://codereview.chromium.org/896993002

git-svn-id: svn://svn.chromium.org/blink/trunk@189507 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r189490 (a22afce3).
TBR=oilpan-reviews
BUG=450448
NOTRY=true

Review URL: https://codereview.chromium.org/901633002

git-svn-id: svn://svn.chromium.org/blink/trunk@189500 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: move RenderObjects off heap.
Have the RenderObject hierarchy no longer be Oilpan heap allocated,
keeping its objects allocated via PartitionAlloc when Oilpan is
enabled also.

No separate & conditional code path is provided for "backwards
compatibility" of re-enabling Oilpan for these objects.

R=haraken,tkent
BUG=398342

Review URL: https://codereview.chromium.org/869323003

git-svn-id: svn://svn.chromium.org/blink/trunk@189496 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Revert of Upgrade Blink to milliseconds-based last modified filetimes, part 3. (patchset #4 id:60001 of https://codereview.chromium.org/884393002/)
Reason for revert:
Two linux32 failures coming through,

http://test-results.appspot.com/dashboards/flakiness_dashboard.html#master=ChromiumWebkit&tests=http/tests/local/fileapi/file-last-modified.html,storage/indexeddb/structured-clone.html

Original issue's description:
> Upgrade Blink to milliseconds-based last modified filetimes, part 3.
> 
> With WebFileInfo now recording modification time in milliseconds via
> modificationTimeMS, switch FileMetadata over to using it and keep a
> milliseconds-based modification time field also. Also have the fileapi's
> File object's snapshot times be milliseconds-based.
> 
> To make it clearer what units the modification time values are over,
> append a MS suffix. This is temporary until the conversion is complete.
> 
> This patch is the third one in the following series,
> 
> 1: [blink] add WebFileInfo::modificationTimeMS [ https://codereview.chromium.org/873723004/ ]
> 2: [chromium] fill in modificationTimeMS [ https://codereview.chromium.org/884413002/ ] 
> 3: [blink] *this one* [ https://codereview.chromium.org/884393002/ ]
> 4: [chromium] set modificationTime to something msec-based [ https://codereview.chromium.org/862203003/ ]
> 5: [blink] switch to using modificationTime instead of *MS [ https://codereview.chromium.org/882343002/ ]
> 6: [chromium] stop setting modificationTimeMS [ https://codereview.chromium.org/890523002/ ]
> 7: [blink] remove modificationTimeMS [ https://codereview.chromium.org/869613005/ ]
> 
> R=mkwst,jsbell
> BUG=451747
> 
> Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=189475

TBR=mkwst@chromium.org,jsbell@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=451747

Review URL: https://codereview.chromium.org/900773003

git-svn-id: svn://svn.chromium.org/blink/trunk@189494 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r189174 (61f2a59).
TBR=oilpan-reviews
BUG=455095
NOTRY=true

Review URL: https://codereview.chromium.org/895163005

git-svn-id: svn://svn.chromium.org/blink/trunk@189493 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Make exception throwing more robust in V8 out-of-stack situations
If V8 throws an exception when Blink tries to create an exception to
throw, return V8's exception instead of undefined, since it makes sense
in that case to propagate V8's exception.

BUG=454607

Review URL: https://codereview.chromium.org/871403007

git-svn-id: svn://svn.chromium.org/blink/trunk@189489 bbb929c8-8fbe-4397-9dbb-9b2b20218538
andersr
Remove FontDescriptionChangeScope, and let FontBuilder partially apply values.
FontBuilder is now so simple that we don't need a scoped object to keep track
of changes to the FontDescription.

This patch adds a PropertySetFlag for each property on FontBuilder/FontDescription,
such that we only write the touched values to the output FontDescription.
Hence, the FontDescription we base the output FontDescription on is provided at the
time of FontBuilder::createFont, rather than during FontBuilder construction.

This has the benefit of callers not having to update FontBuilder's FontDescription
whenever the FontDescription of the output RenderStyle changes, as we currently
have to do in e.g. StyleResolverState::setStyle.

Notes:

 * Calculating the specified size from a keyword size has been delayed to
   createFont, since it depends on the font family.
 * Re-calculating the specified size from a keyword is no longer necessary
   in setFamilyDescription.
 * The parent style is no longer passed to the FontBuilder, because the parent
   FontDescription is effectively available through the current RenderStyle at
   the time of createFont.
 * Removed unused FontBuilder::inheritFrom.
 * Changed FontBuilder::checkForOrientationChange (now updateOrientation),
   to always update the flags. Not doing so just adds extra comparisons,
   even before this patch.

R=dglazkov@chromium.org

Review URL: https://codereview.chromium.org/715633006

git-svn-id: svn://svn.chromium.org/blink/trunk@189488 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Revert "Revert of Revert of Issue FrameDestructionObserver::frameDestroyed() notification on detach. (patchset #1 id:1 of https://codereview.chromium.org/896103002/)"
This reverts commit b66d223c1aca5ca01eb08d93dc1f5687584cd147.

This CL is suspect wrt the ChromeOS test failure as outlined in

  https://codereview.chromium.org/890243003/#msg6

reverting to ensure that that issue is taken care of; see
https://code.google.com/p/chromium/issues/detail?id=455161

TBR=noel@chromium.org
BUG=446452
NOTRY=true

Review URL: https://codereview.chromium.org/896523004

git-svn-id: svn://svn.chromium.org/blink/trunk@189478 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Upgrade Blink to milliseconds-based last modified filetimes, part 3.
With WebFileInfo now recording modification time in milliseconds via
modificationTimeMS, switch FileMetadata over to using it and keep a
milliseconds-based modification time field also. Also have the fileapi's
File object's snapshot times be milliseconds-based.

To make it clearer what units the modification time values are over,
append a MS suffix. This is temporary until the conversion is complete.

This patch is the third one in the following series,

1: [blink] add WebFileInfo::modificationTimeMS [ https://codereview.chromium.org/873723004/ ]
2: [chromium] fill in modificationTimeMS [ https://codereview.chromium.org/884413002/ ] 
3: [blink] *this one* [ https://codereview.chromium.org/884393002/ ]
4: [chromium] set modificationTime to something msec-based [ https://codereview.chromium.org/862203003/ ]
5: [blink] switch to using modificationTime instead of *MS [ https://codereview.chromium.org/882343002/ ]
6: [chromium] stop setting modificationTimeMS [ https://codereview.chromium.org/890523002/ ]
7: [blink] remove modificationTimeMS [ https://codereview.chromium.org/869613005/ ]

R=mkwst,jsbell
BUG=451747

Review URL: https://codereview.chromium.org/884393002

git-svn-id: svn://svn.chromium.org/blink/trunk@189475 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Mark http/tests/navigation/anchor-basic.html as failing (Mac.)
TBR=noel@chromium.org,japhet@chromium.org
BUG=455134
NOTRY=true

Review URL: https://codereview.chromium.org/895913005

git-svn-id: svn://svn.chromium.org/blink/trunk@189466 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Issue FrameDestructionObserver::frameDestroyed() notification on detach.
Send this notification during detach instead of waiting until finalization,
which will typically proceed shortly afterwards (non-Oilpan.)

Doing so provides identical lifetimes for FrameDestructionObserver's
frame reference, with and without Oilpan. Making GC/finalization of frames
not be externally observable is preferable overall.

R=haraken,dcheng
BUG=446452

Review URL: https://codereview.chromium.org/881683003

git-svn-id: svn://svn.chromium.org/blink/trunk@189443 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ed
Add a regression test for feTurbulence seeds that generate zero vectors.
Originally from https://bugs.webkit.org/show_bug.cgi?id=140812, by
Nikos Andronikos.

BUG=453960

Review URL: https://codereview.chromium.org/882173004

git-svn-id: svn://svn.chromium.org/blink/trunk@189438 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove the WEBCORE_NAVIGATOR_* defines
This is motivated by navigator.vendor, which Opera and multiple other
Chromium-based browsers have tweaked using this mechanism instead of
treating it like the long-frozen navigator.appName "Netscape".

There are cases of site compat issues caused by this, in a library
called UDM: http://www.udm4.com/demos/horizontal-relative-left.php

The "Intent to Implement and Ship: navigator.vendor as the empty string"
did not get the support required to align with Firefox and IE, so
freezing it in time as "Google Inc." is the second best thing.

It's unlikely that any of the other defines have been used.

History and discussion:
https://code.google.com/p/chromium/issues/detail?id=276813
https://www.w3.org/Bugs/Public/show_bug.cgi?id=27786
https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/QrgyulnqvmE

BUG=276813, 454291

Review URL: https://codereview.chromium.org/896463002

git-svn-id: svn://svn.chromium.org/blink/trunk@189436 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
IDL: Support [Unforgeable] on interface definitions
An interface having [Unforgeable] should have the same effect as if every
non-static attribute or method had [Unforgeable].

BUG=444015

Review URL: https://codereview.chromium.org/900533003

git-svn-id: svn://svn.chromium.org/blink/trunk@189411 bbb929c8-8fbe-4397-9dbb-9b2b20218538
kolczyk
Fix for font files being mmaped multiple times (Fontconfig).
Before this change, when there were a lot of font fallbacks happening on
the web site, the fallback font was mmaped multiple times, reaching up to
200 times in the TC url: http://jsfiddle.net/p5pe81vs/, leading to OOMs
and crashes for renderer process.

This happens after the change introduced in
https://codereview.chromium.org/307243002

This CL keeps track of the mmaps for each font ID to avoid any further
unnecessary IPC requests and mmaps for future requests of the same font
ID that would result in new FD.

BUG=430021

NOPRESUBMIT=true
brettw indicates this use of ScopedAllowIO is acceptable.
Previous code eluded IO checks, this change makes the IO use find-able.

Committed: https://crrev.com/78db5e535ef48c596223fe272572e5679fbb44fd
Cr-Commit-Position: refs/heads/master@{#313102}

Review URL: https://codereview.chromium.org/697383002

Cr-Commit-Position: refs/heads/master@{#314314}
andersr
Split property priority functions out of StyleResolver.
This makes it easier to access the priority from other (future)
files which shouldn't depend on StyleResolver.

R=timloh@chromium.org

Review URL: https://codereview.chromium.org/892643002

git-svn-id: svn://svn.chromium.org/blink/trunk@189408 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: declare and define various inspector class dtors out-of-line.
The DECLARE_EMPTY_DESTRUCTOR_WILL_BE_REMOVED() macro is intended used
for class types deriving from the non-finalizing GarbageCollected base
class; a convenience macro when declaring the class using transition types.

Using the macro for GarbageCollectedFinalized classes as a way to let
the compiler synthesize an inlinable destructor, is not recommended and
is preferably avoided.

Remove DECLARE_EMPTY_DESTRUCTR_WILL_BE_REMOVED() uses of the latter kind.

R=haraken
BUG=420515

Review URL: https://codereview.chromium.org/896603002

git-svn-id: svn://svn.chromium.org/blink/trunk@189393 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Upgrade Blink to milliseconds-based last modified filetimes, part 2.
With WebFileInfo::modificationTimeMS now available, have
content::FileInfoToWebFileInfo() set it accordingly and alongside
modificationTime.

1: [blink] add WebFileInfo::modificationTimeMS [ https://codereview.chromium.org/873723004/ ]
2: [chromium] *this one* [ https://codereview.chromium.org/884413002/ ]
3: [blink] make use of modificationTimeMS [ https://codereview.chromium.org/884393002/ ]
4: [chromium] set modificationTime to something msec-based [ https://codereview.chromium.org/862203003/ ]
5: [blink] switch to using modificationTime instead of *MS [ https://codereview.chromium.org/882343002/ ]
6: [chromium] stop setting modificationTimeMS [ https://codereview.chromium.org/890523002/ ]
7: [blink] remove modificationTimeMS [ https://codereview.chromium.org/869613005/ ]

R=kinuko,jam
BUG=451747

Review URL: https://codereview.chromium.org/884413002

Cr-Commit-Position: refs/heads/master@{#314214}
sigbjornf
Ensure that performance.memory is updated on first access.
A platform's implementation of monotonicallyIncreasingTime() is only
required to be non-decreasing over time. Hence when checking if memory
usage info should be updated for the first time, do not assume the
function returns a value that will trigger the initial update.

R=haraken
BUG=454380

Review URL: https://codereview.chromium.org/893803003

git-svn-id: svn://svn.chromium.org/blink/trunk@189339 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Keep SVGImage alive across its animation timer callback.
An SVGImage runs the risk of being finalized while its animation
callback is running. Add the required protection.

The premature finalization is only a possibility with Oilpan enabled;
see code comment.

R=haraken,fs@opera.com
BUG=340522

Review URL: https://codereview.chromium.org/891263003

git-svn-id: svn://svn.chromium.org/blink/trunk@189338 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Deflaked fast/animation/last-child-assert.html
The source of the flake was that the resulting background-color was not
always white during the transition. I was able to turn it into a text
based test and confirmed that the test still triggers the assert with the
initial fix reverted.

R=mstensho@opera.com
BUG=453899

Review URL: https://codereview.chromium.org/890393002

git-svn-id: svn://svn.chromium.org/blink/trunk@189336 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mmaliszkiewicz
Send NPAPI focus messages when web contents is blurred or focused
Adobe Flash requires NPP focus event to switch system input events listening.
If this event is not sent, Flash plugin malfunctions and acts as a global system
keylogger (bypassing the browser).

BUG=442670

Review URL: https://codereview.chromium.org/809523003

git-svn-id: svn://svn.chromium.org/blink/trunk@189331 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Use style invalidation for :-webkit-any-link.
We did not use an invalidation set for the PseudoAnyLink, and we didn't do
a SubtreeStyleChange on link changes either, so when no :link or :visited
selectors were present, the link style was not updated when the href was
changed.

Start using an invalidation set and updatePseudoState for PseudoAnyLink.

R=esprehn@chromium.org
BUG=453314

Review URL: https://codereview.chromium.org/889803003

git-svn-id: svn://svn.chromium.org/blink/trunk@189327 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix webkit unit tests after r189319 (df44f48).
R=haraken
BUG=358832

Review URL: https://codereview.chromium.org/895543002

git-svn-id: svn://svn.chromium.org/blink/trunk@189324 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r189304 (6a1bbc3).
TBR=oilpan-reviews
BUG=346582
NOTRY=true

Review URL: https://codereview.chromium.org/889183002

git-svn-id: svn://svn.chromium.org/blink/trunk@189307 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Extend PlatformSpeechSynthesizerMock with an utterance queue.
Clusterfuzz repeatedly runs up against a known limitation of this mock
implementation of PlatformSpeechSynthesizer, that of not being able
to handle the addition of new utterances while one is underway.

Lift the limitation and keep a queue.

R=dmazzoni,haraken
BUG=450142

Review URL: https://codereview.chromium.org/884973003

git-svn-id: svn://svn.chromium.org/blink/trunk@189298 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Add UseCounters for the reflected SVGElement.xml* attributes
Erik Dahlström <ed@opera.com> is going to propose dropping these:
https://www.w3.org/Graphics/SVG/WG/wiki/Proposals/dropxmlattributes

BUG=341854
NOTRY=true

Review URL: https://codereview.chromium.org/889533004

git-svn-id: svn://svn.chromium.org/blink/trunk@189278 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Mark fast/text/descent-clip-in-scaled-page.html as flaky on Linux
BUG=231921
TBR=jochen@chromium.org
NOTRY=true

Review URL: https://codereview.chromium.org/885383002

git-svn-id: svn://svn.chromium.org/blink/trunk@189273 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Clean up some random includes in core/svg/ and core/rendering/svg/
Mostly dropping unused headers. Use a more specific include in
SVGGradientElement.cpp.

Review URL: https://codereview.chromium.org/888863002

git-svn-id: svn://svn.chromium.org/blink/trunk@189266 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r189261.
TBR=oilpan-reviews
BUG=159306
NOTRY=true

Review URL: https://codereview.chromium.org/888893002

git-svn-id: svn://svn.chromium.org/blink/trunk@189265 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Add UseCounters for the use of xml:lang in SVG
Apart from the reflect SVGElement.xmllang, this is the only place in
Blink where xml:lang has an observable effect. Count usage to help
determine what, if anything, should be done with xml:lang. Discussed in
https://code.google.com/p/chromium/issues/detail?id=341854#c7

Note that else-branch where anything other than "preserve" is handled
does not seem per spec: http://www.w3.org/TR/xml11/#sec-white-space

BUG=341854

Review URL: https://codereview.chromium.org/890863003

git-svn-id: svn://svn.chromium.org/blink/trunk@189263 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Don't collect 'other tracks' in HTMLMediaElement::configureTextTracks
After having processed 'subtitles', 'captions', 'descriptions' and
'chapters' tracks, there's only 'metadata' tracks left (no more kinds are
currently defined). This means that the 'otherTracks' set will always be
empty. Remove it an add an assert.

Also take the opportunity to rename the various methods involved to match
the match the names of the spec. algorithms they implement.

 configureTextTracks -> honorUserPreferencesForAutomaticTextTrackSelection
 configureTextTrackGroup -> performAutomaticTextTrackSelection
 configureMetadataTextTrackGroup -> enableDefaultMetadataTextTracks

Review URL: https://codereview.chromium.org/891733002

git-svn-id: svn://svn.chromium.org/blink/trunk@189262 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Make sure a container size is always set for SVG images in <svg:image>
If a referenced image had the same dimensions as the referencing <image>,
a container size would not be set. This could cause the wrong scaling (etc)
to be applied if there existed another reference to the same image resource
that ended up applying a different scale-factor.
To ensure that a container size is set in this case, determine if the
referenced image has a container size set or not by checking if what
the "base" image (as returned by ImageResource::image()) differs from the
RenderObject-specific image (as returned by
ImageResource::imageForRenderer)

BUG=453169

Review URL: https://codereview.chromium.org/889613002

git-svn-id: svn://svn.chromium.org/blink/trunk@189241 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Remove Oilpan-specific clearing of DOMWindow during document detach.
Keep the observable lifetime of this object equal to what it is non-Oilpan.

R=haraken
BUG=420515

Review URL: https://codereview.chromium.org/883393002

git-svn-id: svn://svn.chromium.org/blink/trunk@189240 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Upgrade Blink to milliseconds-based last modified filetimes, part 1.
This is the initial change towards switching Blink and Chromium to
work over milliseconds-based WebFileInfo modification times.

It adds a temporary millisecond-based extra field to WebFileInfo
recording time in milliseconds, alongside the current seconds-based
one.

This is the first patch in the following Blink+Chromium series:

1: [blink] *this one* [ https://codereview.chromium.org/873723004/ ]
2: [chromium] fill in modificationTimeMS [ https://codereview.chromium.org/884413002/ ] 
3: [blink] make use of modificationTimeMS [ https://codereview.chromium.org/884393002/ ]
4: [chromium] set modificationTime to something msec-based [ https://codereview.chromium.org/862203003/ ]
5: [blink] switch to using modificationTime instead of *MS [ https://codereview.chromium.org/882343002/ ]
6: [chromium] stop setting modificationTimeMS [ https://codereview.chromium.org/890523002/ ]
7: [blink] remove modificationTimeMS [ https://codereview.chromium.org/869613005/ ]

R=mkwst,kinuko
BUG=451747

Review URL: https://codereview.chromium.org/873723004

git-svn-id: svn://svn.chromium.org/blink/trunk@189238 bbb929c8-8fbe-4397-9dbb-9b2b20218538
haavardm
Set the quiet shutdown flag.
Currently |SSL_shutdown| is only called to avoid that the
session is marked as unresumable. Without the quiet flag the
close notify message is generated without being sent on the
network.

BUG=None

Review URL: https://codereview.chromium.org/885083002

Cr-Commit-Position: refs/heads/master@{#313887}
mstensho
Fix crash when establishing an inline continuation inside a block continuation.
When attempting to add a child into a block continuation C
(RenderBlock::addChildToContinuation()), and there's a beforeChild
specified, we used to jump directly to the parent of beforeChild, and
insert it there (by calling addChildIgnoringContinuation() on
beforeChild->parent()). Normal behavior (when block continuations
aren't involved) would be to analyze the renderers in the ancestry
chain between beforeChild and C. This way we perform necessary
adjustments to the tree, such as inserting additional anonymous table
part objects. However, this wasn't done when block continuations were
involved.

What really caused the crash in this case was that there's no override
for addChildIgnoringContinuation() in LayoutTable, so it'd just use
the one in RenderBlock, and that way we'd never get to
LayoutTable::addChild(), which is exactly where we make sure that
children aren't inserted at invalid places (like putting a
RenderInline as a direct child of LayoutTable).

The solution is to find the nearest RenderBlockFlow ancestor of
beforeChild and try to insert it there, and additionally add an
addChildIgnoringContinuation() override in LayoutTable for good
measure (since it's dangerous to use the one in
RenderBlock).

Note that block continuations are only used in the old / current
multicol code, and even then only if there's a spanner that's not a
direct child of a multicol container. Support for block continuations
can be removed when the old multicol code is removed.

BUG=451059

Review URL: https://codereview.chromium.org/880113002

git-svn-id: svn://svn.chromium.org/blink/trunk@189206 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Dispose of MIDIAccessInitializer on contextDestroyed() notification.
If a contextDestroyed() notification is issued, dispose of the
MIDIAccessInitializer then. With Oilpan enabled, this can be the last
opportunity to dispose via the ExecutionContext, as the weak reference
to the context may well have been cleared by the time the prefinalizer
runs.

R=haraken
BUG=420515

Review URL: https://codereview.chromium.org/864943003

git-svn-id: svn://svn.chromium.org/blink/trunk@189204 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jimmym
Make gdb debugging on un-rooted devices work for Android 5.x.
Android 5.x does not allow running the gdb executable in
/data/local/tmp. For gdb to be executable by the package
it need to be located in /data/data/{PACKAGE-NAME} which is
allowed to run the exucutable.

BUG=453379

Review URL: https://codereview.chromium.org/884993003

Cr-Commit-Position: refs/heads/master@{#313737}
fs
Use the CSS writing-mode rather than the one from VTTCue
The DOM element created for a cue box has the writing-mode property
applied. This means that the computed style will trivially map to the
VTTCue value. Also use the logical* (setLogical*) methods from RenderBox
to cut down a bit on the manual handling of the writing mode boilerplate.
This makes RenderVTTCue (SnapToLinesLayouter) look more in line with other
layout code wrt writing-mode.
This eliminates the m_cueWritingDirection state from SnapToLinesLayouter.

BUG=301580

Review URL: https://codereview.chromium.org/882343003

git-svn-id: svn://svn.chromium.org/blink/trunk@189193 bbb929c8-8fbe-4397-9dbb-9b2b20218538
bratell
Mark big generated tests as Slow so that they don't timeout.
The html5lib testsuite has some large tests that need more than a few
seconds to run. This patch marks all of these as [ Slow ] to avoid
random timeouts.

BUG=453312

Review URL: https://codereview.chromium.org/858153005

git-svn-id: svn://svn.chromium.org/blink/trunk@189192 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Implement automatic text track selection for 'metadata' tracks
Previously 'metadata' tracks were being configured using the "perform
automatic text track selection" algorithm from the the spec, while it
should only have applied step 4 of the "honor user preferences for
automatic text track selection" algorithm.

BUG=251254

Review URL: https://codereview.chromium.org/882993002

git-svn-id: svn://svn.chromium.org/blink/trunk@189185 bbb929c8-8fbe-4397-9dbb-9b2b20218538
bratell
Revert "Give a canvas/video test more time."
The cause of the timeouts wasn't just that the
virtual/gpu/fast/canvas/yuv-video-on-accelerated-canvas.html test
was slow because it still timeout in try bots, just taking longer
to do so.

This reverts commit 60fdfab472ffa17fad5f12a9f389ccf85094e9f3.

BUG=450699
R=junov@chromium.org

Review URL: https://codereview.chromium.org/885603002

git-svn-id: svn://svn.chromium.org/blink/trunk@189176 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r189148.
Rephrase FilterDisplayItem constructor to avoid unnecessary heap allocation
of the FilterOperations part object.

R=haraken

Review URL: https://codereview.chromium.org/880203006

git-svn-id: svn://svn.chromium.org/blink/trunk@189173 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Use IntRect instead of FloatRect for window positions and sizes
Effectively, a window's position and size was narrowed to an integer
rectangle (WebRect) anyway in Blink's public API (WebWidgetClient) so
the floating point processing in the middle made no sense.

Review URL: https://codereview.chromium.org/879913003

git-svn-id: svn://svn.chromium.org/blink/trunk@189165 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: restrict implicit RawPtr<U> conversions; U must be T-convertible.
Make RawPtr<U> only be convertible to a RawPtr<T> iff U is type convertible
to T. This restricts the range of implicit conversions available, avoiding
extts ambiguities. It makes RawPtr symmetric with PassRefPtr in this
regard.

This fixes Oilpan compilation following r189188.

TBR=oilpan-reviews
BUG=450662
NOTRY=true

Review URL: https://codereview.chromium.org/864753005

git-svn-id: svn://svn.chromium.org/blink/trunk@189132 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Refactor RenderVTTCue/SnapToLinesLayouter
Simplify RenderVTTCue::findFirstLineBox, and have it return the flow box
instead of using an out parameter.

Stop mutating the 'switched' bool in the helper methods, getting the
logic more out "in the open" (in the step loop). For the same reason
remove the switchDirection method to expose the interaction with the
'switched' flag.

Split SnapToLinesLayouter::initializeLayoutParameters into one part that
determines the 'step' and one that computes the initial position
adjustment. Move the first part into SnapToLinesLayouter::layout, and
the second into the new method
SnapToLinesLayouter::computeInitialPositionAdjustment.

Generalize moveBoxesByStep to moveBoxesBy and use it for computing the
default/initial position as well. Hoist the call for the latter into
SnapToLinesLayouter::layout and rename placeBoxInDefaultPosition to
initializeFallbackPositioningState.

BUG=301580

Review URL: https://codereview.chromium.org/882023003

git-svn-id: svn://svn.chromium.org/blink/trunk@189128 bbb929c8-8fbe-4397-9dbb-9b2b20218538
bratell
Stabilize transition testcase.
Roughly 1% of the times transitions/svg-visited-link-transitions.html
runs it will set the "active" class before a previous layout. When that
happens there won't be any style to animate so the elements reach the
final step immediately.

Fixed by forcing a layout pass before setting the "active" style.

BUG=450497

Review URL: https://codereview.chromium.org/876343002

git-svn-id: svn://svn.chromium.org/blink/trunk@189106 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: merge MIDIAccessInitializer's prefinalizers.
As the prefinalizer handling does not support having multiple prefinalizers
per object, combine the MIDIAccessInitializer + LifecycleObserver
prefinalizers methods into one, and arrange for it to be the prefinalizer
for MIDIAccessInitializer.

In the event this manual prefinalizer re-combination turns out to be a
common pattern and workaround, we will revisit the restriction of allowing
only one prefinalizer registration per object.

R=haraken,kouhei
BUG=420515

Review URL: https://codereview.chromium.org/873573005

git-svn-id: svn://svn.chromium.org/blink/trunk@189103 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
IDL: Add forEach() method to iterable<>/maplike<>/setlike<> interfaces
Also add an implementation of forEach() in the Iterable<> helper class,
so that current interfaces get the new method for free.

BUG=432683

Review URL: https://codereview.chromium.org/807263007

git-svn-id: svn://svn.chromium.org/blink/trunk@189102 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Make canPlayType()'s keySystem argument depend on PrefixedEncryptedMedia
The argument is no longer marked as optional, as that would make it
ambiguous with the single-argument canPlayType().

BUG=452098

Review URL: https://codereview.chromium.org/876863006

git-svn-id: svn://svn.chromium.org/blink/trunk@189099 bbb929c8-8fbe-4397-9dbb-9b2b20218538
kolczyk
Send notification when render process has failed to launch.
Before this patch, information about renderer that crashed
at startup (i.e. failed to start) was not forwarded to WebContents, etc...

BUG=452812

Review URL: https://codereview.chromium.org/879533006

Cr-Commit-Position: refs/heads/master@{#313461}
sigbjornf
Oilpan: tidy up prefinalizer declarations and a registration.
Use transition macro WILL_BE_USING_PRE_FINALIZER() where possible, and
add a missing prefinalizer registration for MIDIAccessInitializer.

R=haraken
BUG=420515

Review URL: https://codereview.chromium.org/885483002

git-svn-id: svn://svn.chromium.org/blink/trunk@189094 bbb929c8-8fbe-4397-9dbb-9b2b20218538
bratell
Update test expectations for SVG tests on Win XP.
Some test expectation files for Windows XP were not updated
after fixing bug 438282.

BUG=438282

Review URL: https://codereview.chromium.org/880983003

git-svn-id: svn://svn.chromium.org/blink/trunk@189044 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
[New Multicolumn] Intrinsic/preferred logical width calculation for spanners.
Need to skip multicol adjustment of preferred widths when it comes to spanners.
Their preferred widths should not be multiplied by the number of columns.
Conversely, when encountering column-span:all renderers somewhere inside flow
threads, for preferred width calculation, skip them, since they're not column
content.

When a multicol container asks a child spanner placeholder about its preferred
logical width, relay to the actual column-span:all renderer.

BUG=347325
R=jchaffraix@chromium.org

Review URL: https://codereview.chromium.org/879483002

git-svn-id: svn://svn.chromium.org/blink/trunk@189030 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Move ImageDataConstructor to stable.
R=jochen
BUG=338804

Review URL: https://codereview.chromium.org/864353002

git-svn-id: svn://svn.chromium.org/blink/trunk@189029 bbb929c8-8fbe-4397-9dbb-9b2b20218538
bratell
Give a canvas/video test more time.
We have seen the yuv-video-on-accelerated-canvas.html test timeout
and since it's not obviously fast, maybe it is just a case of too
slow bot. Trying to give it more time hoping that will solve
the problem.

BUG=450699

Review URL: https://codereview.chromium.org/872383002

git-svn-id: svn://svn.chromium.org/blink/trunk@189018 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Rename and turn fast/multicol/span/clone-summary.html into a reftest.
The name "clone-summary" wasn't exactly great for the new multicol
implementation, since nothing gets cloned there. Still a useful test, though,
since SUMMARY is always a block (even if attempted displayed as table-row) and
there's a spanner cutting right through it.

BUG=386567
R=andersr@opera.com

Review URL: https://codereview.chromium.org/871473002

git-svn-id: svn://svn.chromium.org/blink/trunk@189017 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Rewrote fast/multicol/span/anonymous-style-inheritance.html to a check-layout test.
Also renamed it. The only useful thing this did test, taking existing tests into
consideration, was to make sure that margins on a multicol don't collapse with those
of a spanner.

BUG=386567
R=andersr@opera.com

Review URL: https://codereview.chromium.org/864333002

git-svn-id: svn://svn.chromium.org/blink/trunk@189016 bbb929c8-8fbe-4397-9dbb-9b2b20218538
bratell
Replace marquee in test to make it deterministic.
Marquees cause visible state changes in the layout tree both because
they trigger extra layers and because the scroll offset is not well known.

Most often the LayoutTest framework captures marquees after the
shadow <div> has been created but before the layout engine has
reacted to the transformation commands and animation. But not always.

This groups the marquee tests in TestExpectations (they should be treated
as the same problem) and replaces one marquee with an equally good generic
element.

BUG=439478

Review URL: https://codereview.chromium.org/879603002

git-svn-id: svn://svn.chromium.org/blink/trunk@189015 bbb929c8-8fbe-4397-9dbb-9b2b20218538
peterp
Remove the default format from ResourcePool.
Let each client store the format locally instead.

BUG=434699

Review URL: https://codereview.chromium.org/860813002

Cr-Commit-Position: refs/heads/master@{#313247}
fs
Move WebVTT snap-to-lines layout code to a helper class
Move the bulk of the cue (post "box generation") layout code to a new
helper SnapToLinesLayouter.
This eliminates transient state from RenderVTTCue, and should make is
easier to cache additional values (like the containing block and it's
bounding box for example.) It could eventually also help breaking the
dependency with the physical VTT cue structure, and make it possible to
move the layout to the cue container.
The code that tries to adjust for margin/border/padding is split out into
a method.

No functional changes intended.

BUG=301580

Review URL: https://codereview.chromium.org/873483003

git-svn-id: svn://svn.chromium.org/blink/trunk@189004 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
WebVTT: Updated handling of non-line-snapped cue positioning
Remove the last piece of code in VTTCue::calculateDisplayParameters() from
an older spec. version.

BUG=301580

Review URL: https://codereview.chromium.org/871843007

git-svn-id: svn://svn.chromium.org/blink/trunk@189002 bbb929c8-8fbe-4397-9dbb-9b2b20218538
kolczyk
Fix for font files being mmaped multiple times (Fontconfig).
Before this change, when there were a lot of font fallbacks happening on
the web site, the fallback font was mmaped multiple times, reaching up to
200 times in the TC url: http://jsfiddle.net/p5pe81vs/, leading to OOMs
and crashes for renderer process.

This happens after the change introduced in
https://codereview.chromium.org/307243002

This CL keeps track of the mmaps for each font ID to avoid any further
unnecessary IPC requests and mmaps for future requests of the same font
ID that would result in new FD.

BUG=430021

NOPRESUBMIT=true
brettw indicates this use of ScopedAllowIO is acceptable.
Previous code eluded IO checks, this change makes the IO use find-able.

Review URL: https://codereview.chromium.org/697383002

Cr-Commit-Position: refs/heads/master@{#313102}
ed
[svg] Reset the initial view properly in SVGImage.
When a single svg is used several times on a page with different
fragment identifiers, then we need to ensure that the initial view
is reset properly if we switch from having a fragment to not having
one.

BUG=442226

Review URL: https://codereview.chromium.org/813133004

git-svn-id: svn://svn.chromium.org/blink/trunk@188967 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Fix gamepad/page-visibility.html flakiness.
If the running of the individual tests took longer, we ran the risk
of having a bail-out timer fire and report foul; in debug builds
typically. Not a failure condition to be slow(er) here.

Remove that bail-out timer; should the delivery of gamepad events somehow
not be complete, just let the test time out & report failure that way.

R=haraken
BUG=386846

Review URL: https://codereview.chromium.org/872373002

git-svn-id: svn://svn.chromium.org/blink/trunk@188950 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: dispose ServiceWorker (and registration) objects earlier.
It is unsafe to keep a ServiceWorker registered with the embedder once
it has been determined to be unreachable by the garbage collector, but
not yet finalized, as it cannot be assumed to be in a valid state beyond
that point.

Hence, we detach and unregister the object during a pre-finalization step.

The same lifetime issue applies to ServiceWorkerRegistration, so extend
the same treatment to it also.

R=haraken
BUG=451692

Review URL: https://codereview.chromium.org/874003002

git-svn-id: svn://svn.chromium.org/blink/trunk@188949 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: disable stack depth assert with ASan enabled.
The assert to catch out needlessly deep GC marking recursion assumes a
lower per-stack frame overhead than what ASan-compiled code provides.

Hence, disable this stack depth assert when ASan is enabled so as to avoid
triggering it against much lower stack depths.

R=haraken
BUG=420515

Review URL: https://codereview.chromium.org/875773002

git-svn-id: svn://svn.chromium.org/blink/trunk@188947 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Add stack direction heap unit test.
Verify that stack usage grows in the expected direction.

R=haraken
BUG=420515

Review URL: https://codereview.chromium.org/876603002

git-svn-id: svn://svn.chromium.org/blink/trunk@188946 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Make WebThreadedDataReceiver wrap a Blink-managed object instead.
Separate the embedder view of a 'threaded data receiver' and the Blink
implementation, including where it is allocated and managed, by having
WebThreadedDataReceiver use a WebPrivatePtr<> to wrap the Blink object.

In order to support this, WebPrivatePtr<> can now wrap an Oilpan
GC mixin object also.

TBR=jochen,tkent
BUG=398076

Review URL: https://codereview.chromium.org/863113004

git-svn-id: svn://svn.chromium.org/blink/trunk@188941 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
VTTCue: Refactor display parameter handling
Move VTTCue::m_display* into a separate struct (VTTDisplayParameters) and
let VTTCue::calculateDisplayParameters return said struct.
The returned struct is then passed to VTTCueBox for application.
Also drop VTTCue::m_computedLinePosition.
Also move the call to createVTTNodeTree out of calculateDisplayParameters
to allow marking the latter const.
The method VTTCue::getPositionCoordinates is folded into
calculateDisplayParameters.
Additional mark some methods const (calculateComputedLinePosition,
settingName), and drop the 'videoSize' argument from
TextTrackCue::updateDisplay (and callees) since it isn't used ATM.

BUG=301580

Review URL: https://codereview.chromium.org/869623002

git-svn-id: svn://svn.chromium.org/blink/trunk@188939 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Never (re)start NavigatorGamepad platform event updating once detached.
Extend r187811 to always apply; notifications (event listener additions
or page visibility) may in boundary cases also be delivered once we
are in a frame-detached state. Do not (re)start platform event updating
in that case, as the follow-on sampling depends on being in a non-detached
state.

This is (flakily) invariant on Oilpan being enabled, or not.

R=haraken
BUG=357071

Review URL: https://codereview.chromium.org/868023003

git-svn-id: svn://svn.chromium.org/blink/trunk@188893 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
VTTCue: Remove dead exception throwing code in setLine/setPosition
After https://codereview.chromium.org/860353002, these checks should be
handled by the generated bindings code.

TEST=media/track/opera/interfaces/VTTCue/{line,position}.html

Review URL: https://codereview.chromium.org/869173002

git-svn-id: svn://svn.chromium.org/blink/trunk@188884 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
[New Multicolumn] Support dynamic insertion and removal of multicol content.
Special attention is required when a dynamic change requires a column spanner
placeholder to be inserted. When a spanner is inserted, we need to create a
placeholder. If the spanner was inserted in the middle of regular column
content, it means that there's a column set there that we need to split, so
that we get one column row before the spanner and one column row after. We may
also have to create an additional column set when inserting column set, e.g.
when it's inserted between adjacent spanners.

Removal of spanners was already being handled properly (in terms of merging any
surrounding column sets). But removing superfluous column sets when column
content is removed wasn't taken care of until this CL.

Also had to fix how spanner placeholders are torn down, as we cannot notify the
flow thread both in RenderBox and RenderObject, when a spanner is removed. If
we first did it in RenderBox, the spanner placeholder would be destroyed at
that time. This would mean that when we finally got to
RenderObject::removeFromRenderFlowThreadRecursive(), the ex-spanner would
notify the thread again for the same renderer (which is bad in any regard), and
this time the flow thread would think that we're removing actual column content
(since there's no longer a placeholder associated with it). The unit test
MultiColumnTreeModifyingTest.InsertSpannerAndRemove would assert without this
change, as we wouldn't be able to find a column set to remove (since there is
none in that case, since the multicol container only contains a sole spanner).

Added a bunch of layout and unit tests. The unit tests need to modify the
render tree on their own, so we need to tell the document that this needs to be
allowed.

BUG=347325
R=jchaffraix@chromium.org

Review URL: https://codereview.chromium.org/869583002

git-svn-id: svn://svn.chromium.org/blink/trunk@188883 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: Tidily dispose of FetchManager loader objects.
R=haraken
BUG=451344

Review URL: https://codereview.chromium.org/872703002

git-svn-id: svn://svn.chromium.org/blink/trunk@188878 bbb929c8-8fbe-4397-9dbb-9b2b20218538
bratell
Fix problems with flakes in SVG LayoutTests by reordering arithmetic.
This operation gives 4.99999952: float(25 + 200 * double(1.f*(-10.0f/100.f)))
This operation gives 5.00000000: float(25 + 200 * float(1.f*(-10.0f/100.f)))

Why 4.99999952 appear only sometimes, and only on Windows, is
not fully known. A suspect is that it's related to the 32-bit ABI which
requires use of x87 for passing floats. That combined with various
inlining decisions and context switches could possibly affect the final
value in a way that makes it seem random.

The fix in this patch is to reorder some operations. Using the example
above it will be changed to:

  float(25 + (200 * 1.f * -10.f) / 100.f)

By delaying the dangerous division, every intermediate value will
be representable by a float with no errors.

This won't solve all floating point errors but it will solve the one that causes
the most common CQ flakes.

BUG=438282

Review URL: https://codereview.chromium.org/861213003

git-svn-id: svn://svn.chromium.org/blink/trunk@188871 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Revert of Re-re-enable the activation behavior of media elements (click to play/pause) (patchset #2 id:20001 of https://codereview.chromium.org/829393004/)
Reason for revert:
On Android:
1. The entire video is now clickable, leading more often to ambigous
   touches and zooming.
2. When the controls are not visible, touching the video will both pause
   the video and show the controls, where they would previously only
   show the controls.

Original issue's description:
> Re-re-enable the activation behavior of media elements (click to play/pause)
> 
> The previous attempt broke the overlay play button:
> https://codereview.chromium.org/830183005/#msg15
> 
> Drop the changes to MediaControlOverlayPlayButtonElement and add a test.
> 
> BUG=354746
> 
> Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=188233

TBR=fs@opera.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=354746

Review URL: https://codereview.chromium.org/867063003

git-svn-id: svn://svn.chromium.org/blink/trunk@188869 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Remove Heap::IsPowerOf2().
A now-unused helper.

R=haraken
BUG=420515

Review URL: https://codereview.chromium.org/869923002

git-svn-id: svn://svn.chromium.org/blink/trunk@188866 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r188805, part 2.
TBR=oilpan-reviews
BUG=451288
NOTRY=true

Review URL: https://codereview.chromium.org/871873002

git-svn-id: svn://svn.chromium.org/blink/trunk@188865 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r188851.
Move FetchManager::Loader to the heap as ContextLifecycleObserver are
now GC mixins.

R=haraken
BUG=451288
NOTRY=true

Review URL: https://codereview.chromium.org/869903002

git-svn-id: svn://svn.chromium.org/blink/trunk@188864 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Fix ImageData constructor infelicity.
Correctly handle the optional third argument for the overload

 ImageData(Uint8ClampedArray d, unsigned long w, optional unsigned long h)

It should not throw if not supplied, but should throw if supplied and zero.

Also, delegate the object interface typecheck to generated bindings code.

R=junov
BUG=338804

Review URL: https://codereview.chromium.org/871563003

git-svn-id: svn://svn.chromium.org/blink/trunk@188847 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Update spec. step numbering in RenderVTTCue
Update spec steps from a later draft. No code-changes except for the
rounding added in steps 6-7 and, moving the containingBlock() call in
initializeLayoutParameters() and renaming of m_defaultPosition to
m_specifiedPosition and some variable-scoping changes in
repositionCueSnapToLinesSet.

BUG=301580

Review URL: https://codereview.chromium.org/862933004

git-svn-id: svn://svn.chromium.org/blink/trunk@188823 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Drop redundant null checks in SVGListPropertyTearOffHelper
All interfaces that use this code has [TypeChecking=Interface] so the
generated code will do type checking and throw exceptions on invalid
arguments. The error handling code removed here could thus never trigger.

This patch depends on these fixes for indexed setter type checking:
  https://codereview.chromium.org/862403002/
  https://codereview.chromium.org/871443002/

Review URL: https://codereview.chromium.org/827373003

git-svn-id: svn://svn.chromium.org/blink/trunk@188821 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
WebVTT: Update cue alignment to a later spec. version
This implements the updated spec. behavior by removing the dependency
on the (resolved) direction when determining the alignment.

BUG=449521

Review URL: https://codereview.chromium.org/851333003

git-svn-id: svn://svn.chromium.org/blink/trunk@188817 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Make ScriptStreamer and dependents Oilpan friendly.
As ScriptStreamer has a reference to a GCed ScriptResource, turn
ScriptStreamer into a GCed object also. Transitively, ScriptSourceCode
and other objects that refer to those need to be moved to the
Oilpan heap also.

R=haraken
BUG=340515

Review URL: https://codereview.chromium.org/847803002

git-svn-id: svn://svn.chromium.org/blink/trunk@188816 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
WebVTT: Support fractional percentage values for position/line/size
This updates the WebVTT (cue settings) parser to accept fractional
percentage values for the 'position', 'line' and 'size' settings -
per the current spec draft.
Also updates spec steps and rewraps some comments.

BUG=364697

Review URL: https://codereview.chromium.org/864043002

git-svn-id: svn://svn.chromium.org/blink/trunk@188814 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
IDL: Further improve indexed/named property setter type checking
Fix the type check for indexed property setters to only accept null and
undefined if the setter's argument is declared nullable. The argument to
a setter should behave the same as a method argument.

Also change the type check to be slightly more efficient by checking if
the value returned by toImplWithTypeCheck() is null rather than calling
hasInstance() separately, which is known to be somewhat costly.

Also support [TypeChecking=Interface] in the generated code for named
property setters. Previously, no type check was generated even if the
setter was declared to have one. (This affects no current setters.)

Review URL: https://codereview.chromium.org/871443002

git-svn-id: svn://svn.chromium.org/blink/trunk@188813 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: remove too strong start-of-heap-object assert.
Remove the assert checking if willObjectBeLazilySwept()'s argument is a
valid reference to the start of a heap object payload. That's too strong
a requirement as the argument might be a mixin pointing some way into
the payload.

Any adjustment needed to get to the object header is taken care of by
isHeapObjectAlive(), which will also check the sanity of the object's
header. Hence, remove the check from willObjectBeLazilySwept().

TBR=oilpan-reviews,haraken
BUG=448392
NOTRY=true

Review URL: https://codereview.chromium.org/867623002

git-svn-id: svn://svn.chromium.org/blink/trunk@188812 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
[New Multicolumn] Add RenderMultiColumnFlowThread::findSetRendering().
This is a preparatory patch for proper handling of dynamic insertion and
removal of elements inside multicol containers.

This new method will be needed when dynamically inserting spanners into the
middle of column content, since we will then need to split a column set in two
(and we need to figure out exactly which set to split). All of that will be
dealt with in a separate CL. For now, only call this method from some unit
tests, so see that it works.

BUG=347325
R=jchaffraix@chromium.org

Review URL: https://codereview.chromium.org/856383002

git-svn-id: svn://svn.chromium.org/blink/trunk@188810 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
IDL: Add keys()/values()/entries() to maplike<>/setlike<> interfaces
Consequently, drop the explicit declaration of them from MIDIInputMap.idl
and MIDIOutputMap.idl.

Also simplify MIDIPortMap<>'s implementation by inheriting PairIterable<>.

BUG=432683

Review URL: https://codereview.chromium.org/862633002

git-svn-id: svn://svn.chromium.org/blink/trunk@188809 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
IDL: Support [TypeChecking=Interface] correctly on indexed setters
Normally, [TypeChecking=Interface] can be set either on an interface as
a whole, affecting all its definitions (attributes and methods), or on
individual definitions. But for indexed setter definitions

  setter ElementType (unsigned long index, ElementType value);

it had to be set explicitly for the setter definition; setting it only on
the interface as a whole did not work.

This change affects the following interfaces with indexed setters:

  SVGLengthList
  SVGNumberList
  SVGPathSegList
  SVGPointList
  SVGTransformList

Review URL: https://codereview.chromium.org/862403002

git-svn-id: svn://svn.chromium.org/blink/trunk@188807 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: expose near-finalized predicate as Heap::willObjectBeLazilySwept()
Provide an inverted, and more focused version of the previous
isFinalizedObjectAlive() predicate. willObjectBeLazilySwept() returns true
iff an object reference has been slated for finalization by sweeping,
but hasn't been yet.

R=haraken
BUG=448392

Review URL: https://codereview.chromium.org/858363005

git-svn-id: svn://svn.chromium.org/blink/trunk@188804 bbb929c8-8fbe-4397-9dbb-9b2b20218538
christiank
Update GPU memory buffers to use StrideInBytes internally.
Tile texture compression will add support for GPU memory buffer formats
that use less than a byte per pixel.

This CL prepares GPU buffers for this by using a new function
StrideInBytes instead of relying on bytes per pixel calculations when
calculating the number of bytes needed to store a certain number of pixels.

BUG=434699

Committed: https://crrev.com/53e678c7962e12efe4bca3b58c9efbf755b86798
Cr-Commit-Position: refs/heads/master@{#311862}

Review URL: https://codereview.chromium.org/806653006

Cr-Commit-Position: refs/heads/master@{#312595}
philipj
Add a comment about counter availability in M41 branch
NOTRY=true

Review URL: https://codereview.chromium.org/846913004

git-svn-id: svn://svn.chromium.org/blink/trunk@188799 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
IDL: Add toRestricted{Float,Double}() helpers to V8Binding.h
These implement conversion from V8 value to a float/double C++ that throws
a TypeError if the numeric value is NaN or infinite. This is how the IDL
types 'float' and 'double' should behave according to WebIDL, but in Blink
they currently only do if an interface/method/attribute has the extended
attribute [TypeChecking=Unrestricted].

This CL changes two observable things:

1) The error message changes from being specific to the method argument
   being converted ("double parameter N is non-finite"), to being generic
   ("The provided double value is non-finite").

2) 'float'/'double' members in union types go from being always
   unrestricted to always being restricted, which is correct per
   specification.

Since [TypeChecking=Unrestricted] wasn't supported either for dictionary
members or union type members, it was previously impossible to get the
correct behavior for these type conversions. An unrestricted conversion
for a union member can be achieved by declaring the member as 'unrestricted
float' or 'unrestricted double', also per specification. A restricted
conversion for a dictionary member can now be achieved by adding
[TypeChecking=Unrestricted] on the dictionary as a whole or on the member.

BUG=354298,450252

Review URL: https://codereview.chromium.org/860353002

git-svn-id: svn://svn.chromium.org/blink/trunk@188797 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Make ThrottleController an ExecutionContext supplement.
Simplify the FileReader's throttle controller's supplement assocation,
turning it into a supplement of ExecutionContext only.

R=haraken,nhiroki,kinuko
BUG=340515

Review URL: https://codereview.chromium.org/858743002

git-svn-id: svn://svn.chromium.org/blink/trunk@188795 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Cheaper thread-safe atomic initialization of static references.
Introduce AtomicallyInitializedStaticReference(Type, name, initializer)
for creating static singletons in a thread-safe manner. Reduce overhead
compared to the previous AtomicallyInitializedStatic() by adding a
double-checked locking scheme around the initialization.

Adopt its use across Blink.

R=jochen,kinuko,haraken,jyasskin
BUG=447370

Review URL: https://codereview.chromium.org/794223003

git-svn-id: svn://svn.chromium.org/blink/trunk@188774 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r188764.
TBR=oilpan-reviews
BUG=428286
NOTRY=true

Review URL: https://codereview.chromium.org/860423003

git-svn-id: svn://svn.chromium.org/blink/trunk@188771 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r188755.
TBR=oilpan-reviews
BUG=348919
NOTRY=true

Review URL: https://codereview.chromium.org/815223006

git-svn-id: svn://svn.chromium.org/blink/trunk@188769 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
WebVTT: Support 'auto' text position
This changes the behavior of the VTTCue.position attribute to match the
current spec. draft. It also changes the default of the same value when
parsed from a VTT file or created via the VTTCue constructor.

A number of tests where updated to reflect the new behavior (50 -> 'auto').

BUG=448000

Review URL: https://codereview.chromium.org/851933003

git-svn-id: svn://svn.chromium.org/blink/trunk@188753 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
VTTCue: Get rid of undefinedSize
Let the initial value be NaN instead. (It's only used as a sentinel for an
assertion, so any invalid/out-of-range value will do.)

Review URL: https://codereview.chromium.org/809553006

git-svn-id: svn://svn.chromium.org/blink/trunk@188749 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ljagielski
autofill: bumped pickle version of FormFieldData
Binary format was changed with
https://codereview.chromium.org/734983006.

BUG=450162

Review URL: https://codereview.chromium.org/800543009

Cr-Commit-Position: refs/heads/master@{#312388}
bratell
Fix unnecessary output of decimals in SVG tests.
If a number was slightly below an integer such as 4.99999952 it would
be printed as "5.00" instead of the expected "5".

R=jchaffraix@chromium.org, fs@opera.com

Review URL: https://codereview.chromium.org/863873003

git-svn-id: svn://svn.chromium.org/blink/trunk@188742 bbb929c8-8fbe-4397-9dbb-9b2b20218538
tsniatowski
Make android jinja wrapper work on utf-8 templates
Jinja2 defaults to utf-8 for templates... unless the template is loaded
using env.from_string. Since we process manifest xml files which are
declared utf-8, the wrapper should treat them as utf-8 properly.

BUG=

Review URL: https://codereview.chromium.org/816813003

Cr-Commit-Position: refs/heads/master@{#312352}
sigbjornf
Oilpan: fix build after r188733.
TBR=oilpan-reviews
BUG=439376
NOTRY=true

Review URL: https://codereview.chromium.org/863953002

git-svn-id: svn://svn.chromium.org/blink/trunk@188739 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Don't match empty style rules.
If a style rule has no declarations, skip selector matching unless we are
matching for the inspector which expects empty rules to be included.

The render tree dump for the first-letter-first-line-hover.html test did
include a [color=#008000] for the first-letter renderer with this change.
Most likely because this change avoids a hover recalc since not trying to
match p:hover causes the hover flag not to be set on P. And that the
render tree is different after doing a recalc on the first-letter, for
some reason.

Instead of rebasing the result, I made it a ref-test.

R=esprehn@chromium.org
BUG=448610

Review URL: https://codereview.chromium.org/829393005

git-svn-id: svn://svn.chromium.org/blink/trunk@188731 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
VTTCue: Support 'auto' for line
Since the setter is no longer limitting the value to [0, 100] we need to
store an additional flag for the 'auto' value.
Minor updates to VTTCue::calculateComputedLinePosition to match updated
spec. (this is now where the line value is checked against the above
range.)

BUG=448000

Review URL: https://codereview.chromium.org/850363005

git-svn-id: svn://svn.chromium.org/blink/trunk@188723 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
[New Multicolumn] Support for block direction margins on spanners.
Block direction margins need to be copied from the column-span:all element
to its placeholder, since it's the placeholder that gets laid out and
positioned among other placeholders and column sets within the multicol
container.

Also prevent margin-collapsing through column sets, since that suddenly
matters.

Note that inline direction margins were already working. Some of the
tests in this CL also test those.

BUG=347325
R=jchaffraix@chromium.org

Review URL: https://codereview.chromium.org/855413002

git-svn-id: svn://svn.chromium.org/blink/trunk@188696 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Initialize GC mixin bases only when leftmost vtable has been initialized.
For GC mixin constructors that allocate on the Oilpan heap, extra care
is required. It is unsafe to fully construct these until the vptr for the
leftmost object that implement/provide the mixin has been initialized.

Should a (conservative) GC kick in while in that mixin's constructor, the
object reference to the object instance will be located through stack
scanning, but it will not as-yet have its trace method set up. The result
is failure to trace the object being constructed (including its mixin
base).

R=haraken
BUG=420515

Review URL: https://codereview.chromium.org/860063002

git-svn-id: svn://svn.chromium.org/blink/trunk@188695 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Expose the GamepadButton interface object
https://dvcs.w3.org/hg/gamepad/raw-file/default/gamepad.html#gamepadbutton-interface

IE and Firefox already expose this interface object.

Review URL: https://codereview.chromium.org/859503004

git-svn-id: svn://svn.chromium.org/blink/trunk@188694 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
replace COMPILE_ASSERT with static_assert in net/
BUG=442514
TBR=abarth

Review URL: https://codereview.chromium.org/826973002

Cr-Commit-Position: refs/heads/master@{#312238}
bratell
Fix WebCore -> blink changes in VS debugger visualizers.
Visual Studio type visualizers need to be updated to reflect
that blink uses the blink namespace instead of WebCore now. Otherwise
you won't get the readable view of LayoutUnit/LayoutPoint/LayoutRect.

R=zturner@chromium.org
BUG=

Review URL: https://codereview.chromium.org/829093003

Cr-Commit-Position: refs/heads/master@{#312224}
mstensho
[New Multicolumn] Handle overflow inside spanners correctly.
BUG=347325
R=jchaffraix@chromium.org

Review URL: https://codereview.chromium.org/803213004

git-svn-id: svn://svn.chromium.org/blink/trunk@188681 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Add some more tests for column-span:all.
BUG=347325
R=jchaffraix@chromium.org

Review URL: https://codereview.chromium.org/840953006

git-svn-id: svn://svn.chromium.org/blink/trunk@188664 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
VTTCue: Make position/line/size double attributes
Changing the IDL types of the attribute to match the specification.
Convert all internal storage associated with the attributes into floats
(from integers).
Add a test (vtt-cue-float-precision.html) to show that the storing as
single precision is intentional.

BUG=448000

Review URL: https://codereview.chromium.org/857823003

git-svn-id: svn://svn.chromium.org/blink/trunk@188663 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Expose the Crypto and SubtleCrypto interface objects
Per spec Crypto, CryptoKey and SubtleCrypto are all exposed:
https://dvcs.w3.org/hg/webcrypto-api/raw-file/tip/spec/Overview.html#crypto-interface
https://dvcs.w3.org/hg/webcrypto-api/raw-file/tip/spec/Overview.html#cryptokey-interface
https://dvcs.w3.org/hg/webcrypto-api/raw-file/tip/spec/Overview.html#subtlecrypto-interface

Firefox Nightly already exposes all three, while IE11 exposes
Crypto and SubtleCrypto.

BUG=450064

Review URL: https://codereview.chromium.org/859733002

git-svn-id: svn://svn.chromium.org/blink/trunk@188653 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Re-enable the webexposed tests (supressed for aborted V8 classes roll)
Classes were unshipped.

These are the CLs responsible for the changed test expectations:
https://codereview.chromium.org/799403007
https://codereview.chromium.org/806993002
https://codereview.chromium.org/809613008
https://codereview.chromium.org/841333002
https://codereview.chromium.org/845633002
https://codereview.chromium.org/848673002

Original issue's description:
> Prepare for V8 roll enabling classes.
>
> TBR=machenbach@chromium.org,arv@chromium.org
> BUG=chromium:442340
> NOTRY=true
>
> Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=187153

BUG=chromium:442340

Review URL: https://codereview.chromium.org/813043004

git-svn-id: svn://svn.chromium.org/blink/trunk@188647 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix platform unit tests after r188630.
TBR=oilpan-reviews
BUG=340522
NOTRY=true

Review URL: https://codereview.chromium.org/857853002

git-svn-id: svn://svn.chromium.org/blink/trunk@188646 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Use TextTrackKind enum in HTMLMediaElement.addTextTrack IDL signature
With https://codereview.chromium.org/831483004 is becomes possible to use
the TextTrackKind enum defined in TextTrack.idl without redefining it.
Do that, and also update the spec. steps in HTMLMediaElement::addTextTrack
to match a later version. Move the call to setReadinessState() since it
does not cause any side-effects, but add a comment about a potential issue
with the current order of setup.
Also add default values to the optional arguments and drop the unneeded
forwarders. This also means that undefined will now be properly handled
for these arguments.
Update tests to reflect the new exception thrown as well as the behavior
with undefined.

Review URL: https://codereview.chromium.org/790633003

git-svn-id: svn://svn.chromium.org/blink/trunk@188644 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Added test for issue 450002.
getComputedStyle for ::first-letter does not return the correct values
when inherited from ::first-line after a :hover recalc. This CL just adds
a test for the issue with a fail in the expected result.

R=jchaffraix@chromium.org
BUG=450002

Review URL: https://codereview.chromium.org/858863002

git-svn-id: svn://svn.chromium.org/blink/trunk@188638 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Drop (empty) virtual destructor from Iterable<> class
It's not needed, and needlessly taints garbage collected sub-classes such
that they need to be marked as "finalized".

BUG=432683

Review URL: https://codereview.chromium.org/848953003

git-svn-id: svn://svn.chromium.org/blink/trunk@188636 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
VTTCue: Convert uses of std::pair<float, float> to FloatPoint
This is more in line with other code, and also semantically better (since
this is a point after all.) std::pair<double, double> is used in a few
places, but always converted from a float-pair, so convert those too.

BUG=448000

Review URL: https://codereview.chromium.org/859763004

git-svn-id: svn://svn.chromium.org/blink/trunk@188629 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
VTTCue: Add TypeChecking=Unrestricted
Enables proper checking of the startTime and endTime parameters to the
constructor.
Fix one test (media/track/track-cue-negative-timestamp.html) which
previously tested the wrong thing, and drop one subtest of
media/track/track-add-remove-cue.html since it's pretty useless.

BUG=448000

Review URL: https://codereview.chromium.org/854863002

git-svn-id: svn://svn.chromium.org/blink/trunk@188621 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
[New Multicolumn] Layout support for column-span:all.
There are still issues with block direction margins specified on
spanners and on content adjacent to them. Will take care of that in a
follow-up CL. Similarly for overflow.

Also no support for dynamically inserting and removing spanners
yet. Another follow-up CL can be expected for that.

Added some layout tests. Removed
fast/multicol/newmulticol/direct-child-column-span-all.html .
Although it could detect crashes, it was useless rendering-wise, since
the test and the ref were identical. fast/multicol/span/sole-spanner.html
should be a satisfactory replacement.

BUG=347325
R=jchaffraix@chromium.org

Review URL: https://codereview.chromium.org/792803002

git-svn-id: svn://svn.chromium.org/blink/trunk@188619 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Percentage heights can be resolved against any parent if writing mode is orthogonal.
It doesn't matter then if the height of the containing block is auto, since
we're going to resolve the percentage height against a *width* anyway. Check
for containing block writing mode orthogonality earlier. It used to be omitted
for render flow threads (we'd just skip unconditionally), and we want to be
able to resolve against the column width.

This makes fast/multicol/fixed-column-percent-logical-height-orthogonal-writing-mode.html
pass in the new multicol implementation.

BUG=386567
R=jchaffraix@chromium.org

Review URL: https://codereview.chromium.org/846483002

git-svn-id: svn://svn.chromium.org/blink/trunk@188612 bbb929c8-8fbe-4397-9dbb-9b2b20218538
peterp
Support different formats in the same resource pool.
This allows us to use different formats for tiles with opaque or translucent content for better memory savings or quality.

BUG=434699

Review URL: https://codereview.chromium.org/817133006

Cr-Commit-Position: refs/heads/master@{#312090}
jl
IDL: Add missing type-check for callback function arguments
Internally, callback function arguments are represented as ScriptValue
and can thus support any value, but the bindings layer should throw
a TypeError if the value isn't a function object.

Review URL: https://codereview.chromium.org/810563007

git-svn-id: svn://svn.chromium.org/blink/trunk@188611 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Simplify HTMLImageElement::canStartSelection()
It originally always return true, and got its current behavior as part
of "Shadow DOM for img element" which was reverted:
http://trac.webkit.org/changeset/122824
http://trac.webkit.org/changeset/125397
http://trac.webkit.org/changeset/140097

What is left looks odd in isolation, so revert it for now.

Review URL: https://codereview.chromium.org/858533002

git-svn-id: svn://svn.chromium.org/blink/trunk@188603 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r188594.
TBR=oilpan-reviews
BUG=442632
NOTRY=true

Review URL: https://codereview.chromium.org/826363003

git-svn-id: svn://svn.chromium.org/blink/trunk@188599 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Do not fire timers for finalizing objects.
If a lazy sweep is in progress and a timer fires, do check that
the underlying object is still alive before invoking its method.

R=haraken
BUG=448392

Review URL: https://codereview.chromium.org/850063002

git-svn-id: svn://svn.chromium.org/blink/trunk@188577 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Sync the DOMParser interface with spec
https://dvcs.w3.org/hg/innerhtml/raw-file/tip/index.html#the-domparser-interface

Review URL: https://codereview.chromium.org/855023002

git-svn-id: svn://svn.chromium.org/blink/trunk@188568 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
[New Multicolumn] Clip correctly if the "root" layer is inside the multicol container.
When the "root" layer is inside the multicol container, don't get lost and
make the clip rectangle relative to the RenderView. It needs to be relative
to the "root" layer. When compositing, the "root" layer could be the very
same as the layer being painted.

BUG=359877
R=chrishtr@chromium.org

Review URL: https://codereview.chromium.org/848163002

git-svn-id: svn://svn.chromium.org/blink/trunk@188552 bbb929c8-8fbe-4397-9dbb-9b2b20218538
bratell
Render string sequences of more than 64k characters.
InlineBox can only handle sequences of text that fits in an
unsigned short and while that is normally not a problem,
it can be a problem for someone trying to upload a long
chunk of data in an <input> field. <input> uses normal
text layout to render the text so it gets the same limitations
as document text.

The symptoms of this overflow is typically missing text.

This fixes the problem by splitting BidiRun objects that would
have referred to too-long sequences of characters into multiple
BidiRun objects.

BUG=155241,448424,448425

Review URL: https://codereview.chromium.org/853903002

git-svn-id: svn://svn.chromium.org/blink/trunk@188548 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
VTTCue: Simplify computation of direction-aware text position
Add a helper resolveCueAlignment to resolve 'start' and 'end' to the
corresponding "visual" value, and also compute the visual text position
once.

BUG=448000

Review URL: https://codereview.chromium.org/852233002

git-svn-id: svn://svn.chromium.org/blink/trunk@188545 bbb929c8-8fbe-4397-9dbb-9b2b20218538
christiank
Update GPU memory buffers to use StrideInBytes internally.
Tile texture compression will add support for GPU memory buffer formats
that use less than a byte per pixel.

This CL prepares GPU buffers for this by using a new function
StrideInBytes instead of relying on bytes per pixel calculations when
calculating the number of bytes needed to store a certain number of pixels.

BUG=434699

Review URL: https://codereview.chromium.org/806653006

Cr-Commit-Position: refs/heads/master@{#311862}
mstensho
Convert fast/multicol/single-line into a reftest.
Based on work by andersr.

Removed column-rule and column-gap to make the ref simple.

Also removed related (but useless) test in newmulticol/.

Added &nbsp; in front of some text to avoid irrelevant minor differences. The
font (or font engine) used in Linux appears to have (or cause) a tiny negative
left bearing for the "N" glyph, so it will overflow the box by half a pixel or
even less. The difference between multicol and non-multicol is that multicol
rendering always sets a clip rectangle for each column, while non-multicol
doesn't do this. In fact, non-multicol rendering won't even set a clip
rectangle if you specify overflow:hidden - unless we actually detect that
there's content that would overflow (if the calculated bounding box isn't fully
contained by the padding box). In this case, from the rendering code's point of
view, we're only painting simple text inside the bounds of the content box, so
it won't realize that there's a tiny amount of overflow caused by the font.

BUG=386567
R=andersr@opera.com

Review URL: https://codereview.chromium.org/825593003

git-svn-id: svn://svn.chromium.org/blink/trunk@188523 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Rename HTMLMediaElement::createMediaControls to ensureMediaControls
With https://codereview.chromium.org/828413005/,
HTMLMediaElement::createMediaControls will always return true, so change
the return type to void and the name to ensureMediaControls.

BUG=448795

Review URL: https://codereview.chromium.org/854833002

git-svn-id: svn://svn.chromium.org/blink/trunk@188506 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Make RenderObject::resolveColor(const RenderStyle*, int) static.
It doesn't need anything from RenderObject.

R=eae@chromium.org

Review URL: https://codereview.chromium.org/856523002

git-svn-id: svn://svn.chromium.org/blink/trunk@188491 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
[Slimming paint] [New Multicolumn] Repaint column rules when they change.
And DON'T paint them when they don't change, or we'll get an assertion failure.

Column rules are painted by an anonymous RenderMultiColumnSet, while
-webkit-column-rule is specified on the parent multicol, so some extra work is
required to properly invalidate the column set(s).

BUG=449118
R=chrishtr@chromium.org

Review URL: https://codereview.chromium.org/834653003

git-svn-id: svn://svn.chromium.org/blink/trunk@188489 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Remove unused includes of platform/graphics/media/MediaPlayer.h
All of the these files either don't reference MediaPlayer anymore, or have
had uses replaced with uses of WebMediaPlayer instead.
Also update some comments that was referring to MediaPlayer, and remove
some other includes that was obviously not used.

BUG=350571

Review URL: https://codereview.chromium.org/851073003

git-svn-id: svn://svn.chromium.org/blink/trunk@188478 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
VTTCue: Don't compare m_displayPosition against undefinedPosition
VTTCue::m_displayPosition is a std::pair<float, float>, and not explicitly
initialized. There's no reason to assume it'll take on the value
undefinedPosition, and always setting the computed value should not hurt.

BUG=448000

Review URL: https://codereview.chromium.org/853933002

git-svn-id: svn://svn.chromium.org/blink/trunk@188471 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Revert 187544 "Remove unnecessary sync style recalc for fullscreen."
BUG=448721

> Remove unnecessary sync style recalc for fullscreen.
> 
> There is no code nearby that depends on an up-to-date render tree. The
> render tree will now be updated as part of WillBeginMainFrame. I've not
> been able to construct a test case that can hook into the code between
> the removed call and the new place since the webkitfullscreenchange event
> code is called after WillBeginMainFrame.
> 
> R=jchaffraix@chromium.org
> TEST=fullscreen/
> TEST=media/
> 
> Review URL: https://codereview.chromium.org/816953002

TBR=rune@opera.com

Review URL: https://codereview.chromium.org/837923005

git-svn-id: svn://svn.chromium.org/blink/trunk@188466 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Support :hover/:active in quirks when leftmost in compound.
SelectorChecker checked if there was a simple selector to the left of
:hover/:active. Added check for simple selector to the right too.

The relevant spec is [1].

[1] https://quirks.spec.whatwg.org/#the-:active-and-:hover-quirk

BUG=448325,448049

Review URL: https://codereview.chromium.org/848853004

git-svn-id: svn://svn.chromium.org/blink/trunk@188465 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Stop pretending MediaControls::initializeControls() will fail
Failure here would mean programmer error, so ASSERT_NO_EXCEPTION seems
enough.

BUG=448795

Review URL: https://codereview.chromium.org/828413005

git-svn-id: svn://svn.chromium.org/blink/trunk@188464 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Remove MediaPlayer::invalidTime()
Remove MediaPlayer::invalidTime() (literal -1.0) replacing it with a NaN,
which is similar to how HTMLMediaElement::m_duration is handled.
Also remove MediaFragmentURIParser::invalidTimeValue() since it is unused.

BUG=350571

Review URL: https://codereview.chromium.org/850943002

git-svn-id: svn://svn.chromium.org/blink/trunk@188460 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
[New Multicolumn] Margins incorrectly accounted for before forced breaks.
The spec basically says that margins should be ignored at column boundaries,
although it's explicitly ambiguous about what should happen to top margins
after a forced break. This CL is solely about margins before a break, though,
and they should all be set to 0, so that contents that follow start at the top
of the next column, instead of leaving one column blank and skipping to the
next one after that.

BUG=448366
R=jchaffraix@chromium.org,leviw@chromium.org

Review URL: https://codereview.chromium.org/850703002

git-svn-id: svn://svn.chromium.org/blink/trunk@188456 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
IDL: Support extended attributes on iterable<>, maplike<> and setlike<>
Such extended attributes are copied over to and affect the methods that
are automatically added by those definitions, e.g. keys() and values().

BUG=432683

Review URL: https://codereview.chromium.org/792903004

git-svn-id: svn://svn.chromium.org/blink/trunk@188406 bbb929c8-8fbe-4397-9dbb-9b2b20218538
haraldh
On Mac: Hide any popup menus on the active view before switching to another.
This to prevent click-jacking using an option popup list that becomes persistent.

BUG=448008

Review URL: https://codereview.chromium.org/839573002

Cr-Commit-Position: refs/heads/master@{#311500}
sigbjornf
Oilpan: no need to tally marked object size on empty pages.
R=haraken
BUG=420515

Review URL: https://codereview.chromium.org/853693002

git-svn-id: svn://svn.chromium.org/blink/trunk@188394 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mathiash
Scroll text field when selecting text
BUG=437284

Review URL: https://codereview.chromium.org/766753002

git-svn-id: svn://svn.chromium.org/blink/trunk@188386 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Expose the DataTransferItem interface
https://html.spec.whatwg.org/#the-datatransferitem-interface

Both Firefox Nightly and IE11 expose the DataTransfer interface, but
neither DataTransferItem nor DataTransferItemList. We already expose
DataTransferItemList. Per spec all three interfaces should be exposed.

This will allow feature detection of the methods on DataTransferItem, in
particular DataTransferItem.prototype.webkitGetAsEntry, the lack of
which has forced at least one library to resort to UA string sniffing:
https://github.com/FineUploader/fine-uploader/issues/1346

BUG=448696

Review URL: https://codereview.chromium.org/850863002

git-svn-id: svn://svn.chromium.org/blink/trunk@188382 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix computation of ThreadState::m_collectionRate.
Sample allocated memory/object size before initiating a GC.

R=haraken
BUG=420515

Review URL: https://codereview.chromium.org/850663002

git-svn-id: svn://svn.chromium.org/blink/trunk@188378 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Rewrite fast/multicol/scrolling-overflow.html to a reftest.
BUG=386567
R=andersr@opera.com

Review URL: https://codereview.chromium.org/788403007

git-svn-id: svn://svn.chromium.org/blink/trunk@188377 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
replace COMPILE_ASSERT with static_assert in appcache_frontend_impl.cc
BUG=442514

Review URL: https://codereview.chromium.org/847083002

Cr-Commit-Position: refs/heads/master@{#311439}
mostynb
replace COMPILE_ASSERT with static_assert in ui/
BUG=442514
R=sky@chromium.org

Review URL: https://codereview.chromium.org/828633002

Cr-Commit-Position: refs/heads/master@{#311435}
jl
Add keys(), values() and entries() methods on iterable<> interfaces
Change the IDL code generator to add keys(), values() and entries()
methods to interfaces with an iterable<> definition.

Also add utility (mixin) base-classes for iterable interfaces,
ValueIterable<> and PairIterable<>, that take care of most of the work
of supporting iterable<> IDL definitions on the C++ side, i.e.
implementing keys(), values(), entries() and @@iterator.

Finally, update the two interfaces with iterable<> definitions
(core/testing/Internals.idl and modules/fetch/Headers.idl) to inherit
the new utility base classes. Internals has a "value iterator" and thus
inherits ValueIterable<>, while Headers has a "pair iterator" and
inherits PairIterable<>. Update existing tests for each to test the new
keys(), values() and entries() methods.

BUG=432683

Review URL: https://codereview.chromium.org/848673002

git-svn-id: svn://svn.chromium.org/blink/trunk@188364 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Refactor StyleResolver::matchAuthorRules.
Simplify the code after https://codereview.chromium.org/843773002

BUG=401359

Review URL: https://codereview.chromium.org/844963002

git-svn-id: svn://svn.chromium.org/blink/trunk@188361 bbb929c8-8fbe-4397-9dbb-9b2b20218538
andersr
Update typesetting features when letter-spacing is changed.
The typesetting features depend on letter-spacing, yet we don't call
updateTypesettingFeatures when letter-spacing is set. This causes ligatures
to incorrectly remain enabled for non-zero letter-spacing when font-variant-
ligatures is used.

R=dglazkov@chromium.org
BUG=448048

Review URL: https://codereview.chromium.org/847813002

git-svn-id: svn://svn.chromium.org/blink/trunk@188331 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Convert some fast/selectors tests to reftests.
Removed fast/selectors/005.html since it was identical to 004.html

Review URL: https://codereview.chromium.org/847073002

git-svn-id: svn://svn.chromium.org/blink/trunk@188312 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: avoid data race on gcInfo index initialization.
A race on a non-updated GCInfo index ought to be benign, given the
double-check locking done, but preferable to be tidy.

R=haraken
BUG=448355

Review URL: https://codereview.chromium.org/851723002

git-svn-id: svn://svn.chromium.org/blink/trunk@188305 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
make gn label unit tests pass again
Update the unit tests corresponding to this previous CL:
https://codereview.chromium.org/825013003

BUG=445454
TEST=gn_unittests --gtest_filter=Label*
R=brettw@chromium.org, tfarina@chromium.org

Review URL: https://codereview.chromium.org/827643003

Patch from Mostyn Bramley-Moore <mostynb@opera.com>.

Cr-Commit-Position: refs/heads/master@{#311270}
rune
Only match style from element's TreeScope for normal rules.
We collected all scoped resolvers up to the document resolver while
collecting normal style rules. That was necessary for <style scoped>, but
now that all scoping is done through shadow roots, only boundary crossing
rules can match from other author style scopes. Those rules are handled
through the global TreeBoundaryCrossingRules.

Instead, collect using the ScopedStyleResolver for the element's tree
scope if present. The need for CascadeScope disappears, so it's been
removed.

There is an exception for custom pseudo elements and VTT elements (styled
through ::cue) since those rules are crossing a shadow boundary, yet not
handled as part of boundary crossing rules. I chose to do the special
handling instead of start adding them to the boundary crossing rules
since the boundary crossing rule handling is about to change as part of
401359 anyway, and the special handling is safer since it's closer to the
previous behavior.

R=hayato@chromium.org
BUG=401359

Review URL: https://codereview.chromium.org/843773002

git-svn-id: svn://svn.chromium.org/blink/trunk@188292 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
replace COMPILE_ASSERT with static_assert in content/
BUG=442514

Review URL: https://codereview.chromium.org/791923003

Cr-Commit-Position: refs/heads/master@{#311250}
fs
Avoid unnecessary float<->LayoutUnit conversions in RenderVTTCue
RenderVTTCue::m_fallbackPosition is only used to store the initially
computed position of the cue - it does not need to be a FloatPoint.
Change the type to LayoutPoint and rename to m_defaultPosition, since
that better reflects the naming in spec text.
Also cleanup the includes a bit while here.

BUG=350474

Review URL: https://codereview.chromium.org/847813003

git-svn-id: svn://svn.chromium.org/blink/trunk@188273 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
gn: declare is_desktop_linux as a build argument
BUG=448159

Review URL: https://codereview.chromium.org/840863003

Cr-Commit-Position: refs/heads/master@{#311236}
sigbjornf
Revert of Gracefully handle mismatched drag ended notifications. (patchset #3 id:40001 of https://codereview.chromium.org/839253002/)
Reason for revert:
Questions arose on the review after the CL entered CQ (and the author went to bed). Reverting until we're all aligned.

Original issue's description:
> Gracefully handle mismatched drag ended notifications.
> 
> Should the embedder end up signalling the end of a drag operation
> via EventHandler::dragSourceEndedAt(), but Blink has initiated
> another drag operation, for whatever reason or source, then catch
> this and gracefully bail.
> 
> R=jochen,rbyers
> BUG=445308
> 
> Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=188256

TBR=dcheng@chromium.org,jochen@chromium.org,rbyers@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=445308

Review URL: https://codereview.chromium.org/841533004

git-svn-id: svn://svn.chromium.org/blink/trunk@188272 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Gracefully handle mismatched drag ended notifications.
Should the embedder end up signalling the end of a drag operation
via EventHandler::dragSourceEndedAt(), but Blink has initiated
another drag operation, for whatever reason or source, then catch
this and gracefully bail.

R=jochen,rbyers
BUG=445308

Review URL: https://codereview.chromium.org/839253002

git-svn-id: svn://svn.chromium.org/blink/trunk@188256 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
gn: declare use_debug_fission and use_gold as a build arguments
BUG=448159

Review URL: https://codereview.chromium.org/813363008

Cr-Commit-Position: refs/heads/master@{#311234}
rune
Avoid looping through all attributes for attribute selector.
An attribute selector may only match a single attribute in a given element
unless the selector matches all namespaces. Break the loop if the selector
has no namespace, or if it has a specific namespace.

R=esprehn@chromium.org
BUG=447832

Review URL: https://codereview.chromium.org/844203002

git-svn-id: svn://svn.chromium.org/blink/trunk@188250 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
RuleCanUseFastCheckSelector flag unused.
Removed it.

R=esprehn@chromium.org

Review URL: https://codereview.chromium.org/815853005

git-svn-id: svn://svn.chromium.org/blink/trunk@188242 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mpawlowski
Refactor FakeServer::CreateDefaultPermanentItems()
Removing some copy-paste code reuse. It's not that bad
here, but in Opera we have more folders we fake this way
and the copies start looking silly.

BUG=

Review URL: https://codereview.chromium.org/833243007

Cr-Commit-Position: refs/heads/master@{#311066}
philipj
Re-re-enable the activation behavior of media elements (click to play/pause)
The previous attempt broke the overlay play button:
https://codereview.chromium.org/830183005/#msg15

Drop the changes to MediaControlOverlayPlayButtonElement and add a test.

BUG=354746

Review URL: https://codereview.chromium.org/829393004

git-svn-id: svn://svn.chromium.org/blink/trunk@188233 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Mark fast/dom/defaultView-on-detached-document.html as flaky
BUG=448045
TBR=dcheng@chromium.org
NOTRY=true

Review URL: https://codereview.chromium.org/851483002

git-svn-id: svn://svn.chromium.org/blink/trunk@188227 bbb929c8-8fbe-4397-9dbb-9b2b20218538
andersr
Set text-rendering to 'auto' when font shorthand is used in html.css.
There is currently a bug causing invisible tabs whenever text-rendering:
optimizeLegibility is used. Until recently, we (accidentally) over-wrote
the text-rendering property when font shorthands were used, effectively
masking the problem for the matching elements.

This patch adds text-rendering:auto to html.css, for compatibility.

R=timloh@chromium.org
BUG=446405

Review URL: https://codereview.chromium.org/840323002

git-svn-id: svn://svn.chromium.org/blink/trunk@188214 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Turn fast/multicol/paginate-block-replaced.html into a reftest.
BUG=386567
R=andersr@opera.com

Review URL: https://codereview.chromium.org/845723002

git-svn-id: svn://svn.chromium.org/blink/trunk@188213 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Work around failing multicol tests on Mac introduced by enabling HarfBuzz.
Two tests fixed: list-item.html and table-cell.html

BUG=334269
R=andersr@opera.com

Review URL: https://codereview.chromium.org/845683003

git-svn-id: svn://svn.chromium.org/blink/trunk@188212 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ljagielski
IdentityLaunchWebAuthFlowFunction shouldn't be able to send response twice.
It is possible before this change, because when response it sent, WebAuthFlow
isn't stopped or destroyed and it still can call its delegate methods.

BUG=

Review URL: https://codereview.chromium.org/829853006

Cr-Commit-Position: refs/heads/master@{#311028}
sigbjornf
Oilpan: fix build after r188198.
TBR=oilpan-reviews,haraken
BUG=445835
NOTRY=true

Review URL: https://codereview.chromium.org/803863005

git-svn-id: svn://svn.chromium.org/blink/trunk@188202 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Tidy up ThreadState::removeInterruptor() assert.
R=haraken
BUG=420515

Review URL: https://codereview.chromium.org/843263003

git-svn-id: svn://svn.chromium.org/blink/trunk@188194 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
During thread detach, delay final sweep until shutdown lock is held.
Otherwise we risk re-scheduling a lazy sweep if the thread has to go via
a safe point before proceeding to clean out and shut down.

R=haraken
BUG=357427

Review URL: https://codereview.chromium.org/850433002

git-svn-id: svn://svn.chromium.org/blink/trunk@188193 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Extend locking of GCInfo table to include slot allocation.
To prevent threads from allocating duplicate slots for a GCInfo 
descriptor, impose a lock on slot allocation. With the lock held,
avoid duplicates by re-checking if the slot hasn't been initialized.

R=haraken
BUG=357427

Review URL: https://codereview.chromium.org/834673008

git-svn-id: svn://svn.chromium.org/blink/trunk@188184 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Remove unused RuleSet flags.
hasRightmostSelectorMatchingHTMLBasedOnRuleHash and hasMultipartSelector
were not in use. Removed flags and related code.

Unused after https://codereview.chromium.org/208423010

Review URL: https://codereview.chromium.org/843143002

git-svn-id: svn://svn.chromium.org/blink/trunk@188176 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
[New Multicolumn] Minimal support for nested multicol in RenderLayer.
Getting proper support for nested multicol layout (or multicol inside paged) is
going to require a lot of work (need to support multiple column rows), but in
the meantime we should at least be able to paint what we have laid out. Layout
already works fine as long as the inner multicol lives in only one outer
column. Now painting works too.

R=chrishtr@chromium.org
BUG=423076

Review URL: https://codereview.chromium.org/816683002

git-svn-id: svn://svn.chromium.org/blink/trunk@188169 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Don't constrain the size of the cue root
Since the 'text track container' is enclosed by the overlay enclosure, it
is affected by the max-width in the matching UA style rule. This means
that the cue root can never be wider than 800px.
Remove the 'max-width' property from this rule entirely. The only other
side-effect from this is that the cast button (when visible) will now be
positioned at <5%,5%> within the <video> content rectangle.

BUG=447161

Review URL: https://codereview.chromium.org/846633002

git-svn-id: svn://svn.chromium.org/blink/trunk@188163 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Bring back fast/multicol/layers-split-across-columns-expected.html reftest.
It got DRTified in https://codereview.chromium.org/688153003

Needed some minor fixing to make it pass with impl-side painting enabled.
Attempt to force the creation of a transparency layer in Skia, so that
the test and ref render identically.

BUG=381919
R=enne@chromium.org,chrishtr@chromium.org

Review URL: https://codereview.chromium.org/838383004

git-svn-id: svn://svn.chromium.org/blink/trunk@188158 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Simplify insertion of text track container
We want the element to be the first child of the overlay enclosure, which
can be expressed in a slightly more straight-forward manner without and
if-else.

BUG=447161

Review URL: https://codereview.chromium.org/847493002

git-svn-id: svn://svn.chromium.org/blink/trunk@188156 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Document the structure of the Media controls DOM
MediaControls::initializeControls is a bit too long and dense to get a
good feel of the DOM structure. Document the structure in a comment.

BUG=447161

Review URL: https://codereview.chromium.org/823993004

git-svn-id: svn://svn.chromium.org/blink/trunk@188152 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Make virtual/regionbasedmulticol/fast/multicol/newmulticol/balance-maxheight2.html pass on Mac.
Remove the platform expectation file, and make sure that it renders correctly instead.
Setting line-height explicitly solved the problem.

BUG=447492
R=andersr@opera.com

Review URL: https://codereview.chromium.org/814113008

git-svn-id: svn://svn.chromium.org/blink/trunk@188146 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Re-enable the activation behavior of media elements (click to play/pause)
This revives most of the code and tests from an earlier revert:
https://codereview.chromium.org/249483002

The "Don't fire events when interacting with <video controls>" bug has
been fixed, so the native controls and scripted controls will no
longer compete for control:
https://codereview.chromium.org/406213002

The definition of "restrained media controller" has been simplified in
spec and implementation since the last time:
https://codereview.chromium.org/262463003

BUG=354746

Review URL: https://codereview.chromium.org/830183005

git-svn-id: svn://svn.chromium.org/blink/trunk@188141 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Retire unnecessary ScriptStreamer back reference from SourceStream.
Passing along the ScriptStreamer reference when needed is simpler.

R=marja
BUG=

Review URL: https://codereview.chromium.org/829313004

git-svn-id: svn://svn.chromium.org/blink/trunk@188140 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Ensure cancellation of animation timer in a detached state.
If an SVG element becomes detached from its document, its animations will
be paused. Make sure this really cancels any "once" timers that might
be scheduled.

R=haraken,fs@opera.com
BUG=3690

Review URL: https://codereview.chromium.org/811763005

git-svn-id: svn://svn.chromium.org/blink/trunk@188139 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ed
Attempt to slim the test down for dbg trybots.
BUG=446356

Review URL: https://codereview.chromium.org/837393003

git-svn-id: svn://svn.chromium.org/blink/trunk@188138 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
IDL: Support iterable<>, maplike<> and setlike<> syntax
This adds support for the basic syntax (in idl_definitions.py) but no
handling of the additional parsed information beyond what the [Iterable]
extended attribute already does. Extended attributes are currently not
supported on the iterable<>, maplike<> or setlike<> definitions.

In existing interfaces, replace [Iterable] with what the specification
has, or in the case of MIDIInputMap and MIDIOutputMap, what seems to be
the intention. In the Iterator interface, [Iterable] is still used,
since it's somewhat unclear what it ought to be replaced with.

This results in no changes in generated code.

BUG=432683

Review URL: https://codereview.chromium.org/841973002

git-svn-id: svn://svn.chromium.org/blink/trunk@188135 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
[New Multicolumn] Add a drawing recorder for column rules.
This was the final thing that kept us from testing slimming paint
in fast/multicol with region based columns enabled, so added a
virtual testsuite for that.

R=chrishtr@chromium.org

Review URL: https://codereview.chromium.org/833393003

git-svn-id: svn://svn.chromium.org/blink/trunk@188133 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r188114.
TBR=oilpan-reviews,haraken
BUG=444490
NOTRY=true

Review URL: https://codereview.chromium.org/844933002

git-svn-id: svn://svn.chromium.org/blink/trunk@188128 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjorn
Make Python sync server stoppable
The testserver attempts to inherit from StoppableHTTPServer, but then
overrides the stoppable functionality. Instead of overriding serve_forever, override handle_request, to maintain stoppability.

BUG=

Review URL: https://codereview.chromium.org/797253003

Cr-Commit-Position: refs/heads/master@{#310732}
jiangj
Guard safe_browsing struct with FULL_SAFE_BROWSING like rest of the file did
Review URL: https://codereview.chromium.org/833063004

Cr-Commit-Position: refs/heads/master@{#310606}
sigbjornf
Oilpan: fix build after r188071.
As ScriptWrappable doesn't have a virtual destructor with Oilpan enabled,
declare ScriptWorkerClient as having a virtual destructor. Otherwise
derived classes of it (ServiceWorkerWindowClient) cannot declare their
destructor as an "override".

TBR=oilpan-reviews,haraken
BUG=447212
NOTRY=true

Review URL: https://codereview.chromium.org/812573005

git-svn-id: svn://svn.chromium.org/blink/trunk@188081 bbb929c8-8fbe-4397-9dbb-9b2b20218538
haavardm
Move CT EV white list packaging API from chrome/ to components/.
This feature is also useful for projects not based on chrome/
that want to turn on Certificate Transparency for EV certs.

BUG=None

Review URL: https://codereview.chromium.org/811353002

Cr-Commit-Position: refs/heads/master@{#310595}
bratell
Adding missing include for base/bind.h
This code uses base::Bind and in default configurations
"base/bind.h" is included through
chrome/browser/extensions/extension_service.h ->
chrome/browser/extensions/blacklist.h ->
chrome/browser/safe_browsing/database_manager.h ->
chrome/browser/safe_browsing/protocol_manager.h ->
...

but in my configuration the code needs to be good code and include
headers for code it uses itself.

BUG=

Review URL: https://codereview.chromium.org/838003003

Cr-Commit-Position: refs/heads/master@{#310549}
mstensho
Bring back multicol reftests that were removed for impl side painting.
When adding --enable-impl-side-painting for virtual/regionbasedmulticol/
some reftests started to fail, and were accordingly turned into
PNG + render tree dump tests. This was done in
https://codereview.chromium.org/803683002/ plus a few rebaseline commits
that followed.

This CL reverts that brings them back as reftests, while retaining
--enable-impl-side-painting. Fixed the refs instead. The fixes are
somewhat weird, though. It seems (from where I stand, at least) that
when a ref has an opacity layer with only one paint operation (draw text,
paint background, whatever), there'll be minor pixel differences, compared
to when there's more than one operation. This doesn't happen with the
actual tests, though. Could be some impl side painting optimization that
doesn't kick in for multicol, perhaps?

R=enne@chromium.org,chrishtr@chromium.org

Review URL: https://codereview.chromium.org/839793003

git-svn-id: svn://svn.chromium.org/blink/trunk@188055 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ollel
Reset mode on ancestors when a fullscreen node is removed.
Element::removedFrom() is called after a node has been detached and the
parent pointer has been cleared. Thus fullscreen mode has to be reset on
ancestors both in the removed tree and the tree it was linked into
before it was detached.

The patch fixes a corner case where :-webkit-full-screen-ancestor style
was still applied on ancestors after the parent of a fullscreen node was
removed.

BUG=447184

Review URL: https://codereview.chromium.org/820633002

git-svn-id: svn://svn.chromium.org/blink/trunk@188050 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Skip dom traversal for getComputedStyle with clean render tree.
Skip traversal up the tree from the getComputedStyle node in
updateRenderTreeForNodeIfNeeded if the tree is already clean.

R=andersr@opera.com

Review URL: https://codereview.chromium.org/843733002

git-svn-id: svn://svn.chromium.org/blink/trunk@188042 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Initialize TextEncoding singletons in a threadsafe manner.
R=haraken,jochen
BUG=445481

Review URL: https://codereview.chromium.org/810033005

git-svn-id: svn://svn.chromium.org/blink/trunk@188041 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
fix builds with vpx and/or ffmpeg disabled
If media_use_libvpx==0 then we should not include any libvpx headers.
And similarly for ffmpeg.

Followup to https://codereview.chromium.org/783003002

BUG=416570

Review URL: https://codereview.chromium.org/839763002

Cr-Commit-Position: refs/heads/master@{#310383}
sigbjornf
Oilpan: fix webkit unit tests following r187980.
Avoid stack allocating heap-residing ScriptResource objects.

TBR=oilpan-reviews,haraken
BUG=441130
NOTRY=true

Review URL: https://codereview.chromium.org/832933005

git-svn-id: svn://svn.chromium.org/blink/trunk@187998 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ljagielski
LayerAnimator should withdraw from processing animation queue when its delegate becomes nullptr.
BUG=

Review URL: https://codereview.chromium.org/795113002

Cr-Commit-Position: refs/heads/master@{#310354}
mostynb
add a presubmit check to avoid adding files with windows line endings
BUG=420796,385395

Review URL: https://codereview.chromium.org/786953005

Cr-Commit-Position: refs/heads/master@{#310353}
mostynb
replace COMPILE_ASSERT with static_assert in sync/
BUG=442514

Review URL: https://codereview.chromium.org/809073005

Cr-Commit-Position: refs/heads/master@{#310352}
sigbjornf
Incremental GCInfo descriptor table expansion.
The Oilpan GC infrastructure keeps a GCInfo descriptor per garbage
allocated class, with heap object headers referring to their descriptor
by way of a table index. 15 bits are currently set aside for these
indices.

Incrementally expand the underlying table rather than allocate it all
upfront.

R=haraken
BUG=446582

Review URL: https://codereview.chromium.org/820693006

git-svn-id: svn://svn.chromium.org/blink/trunk@187992 bbb929c8-8fbe-4397-9dbb-9b2b20218538
bratell
Nobody uses base::JsonPrefStore::ReadResult without a path
and if they had tried it, it would have crashed.

This removes the code that tried to support non-path
JsonPrefStore and adds a DCHECK in the constructor in case
it happens in the future.

If the code is ever needed in the future, the
scoped_ptr<ReadResult> need to be initialized
with new ReadResult.

BUG=
R=bauerb@chromium.org

Review URL: https://codereview.chromium.org/836093005

Cr-Commit-Position: refs/heads/master@{#310300}
jl
Image() constructor's arguments should not have default values
Implementing them with [Default=Undefined] is equivalent to implementing
them with zero as the default value, which is semi-correct; the created
element's 'width' and 'height' IDL attributes should be zero.

However, per spec, calling Image() without the arguments should create
an element without the 'width' and 'height' content attributes, whereas
calling Image() with the arguments should create an element with the
content attributes, including if the argument values were zero. Thus we
need to distinguish between no argument and argument being zero.

BUG=253777

Review URL: https://codereview.chromium.org/839733003

git-svn-id: svn://svn.chromium.org/blink/trunk@187973 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r187965.
TBR=oilpan-reviews,haraken
BUG=330389
NOTRY=true

Review URL: https://codereview.chromium.org/842593003

git-svn-id: svn://svn.chromium.org/blink/trunk@187970 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
BlinkGCPlugin: require GC mixin instances to declare local trace().
For classes that derive from GarbageCollectedMixin and declare both
adjustAndMark() and isHeapObjectAlive() overrides (typically using
the USING_GARBAGE_COLLECTED_MIXIN() macro), check that the class also
declares a local trace() method override.

This is done so as to require that GC mixin instances do have trace()
in their leftmost vtbl.

R=haraken
BUG=444565

Review URL: https://codereview.chromium.org/834373003

Cr-Commit-Position: refs/heads/master@{#310272}
rune
Support unit-less lengths for white-list of properties only.
The Quirks Mode spec[1] has a white-list of properties for which we should
accept unitless lengths in quirks mode. This CL limits the quirk to apply
to those properties/short-hands.

[1] https://quirks.spec.whatwg.org/#the-unitless-length-quirk

BUG=436145

Review URL: https://codereview.chromium.org/764703002

git-svn-id: svn://svn.chromium.org/blink/trunk@187959 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Do not iterate past the end on processing leaf class.
When checking that the leftmost class of a GC-derived class has the
expected shape, take care not step past the end of the leftmost class'
own base classes, i.e., when processing A in

  class A { };
  class B : public A, ...some GC base... { };

R=haraken
BUG=446580

Review URL: https://codereview.chromium.org/840623002

Cr-Commit-Position: refs/heads/master@{#310253}
sigbjornf
Oilpan: clarify why FrameOwner is a GC mixin.
Add explanatory comment on why this interface derives from
GarbageCollectedMixin with Oilpan enabled.

R=
BUG=340522
NOTRY=true

Review URL: https://codereview.chromium.org/841663002

git-svn-id: svn://svn.chromium.org/blink/trunk@187957 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: add missing leftmost trace()s for GC mixins.
For classes that are non-abstract (in a Blink sense) and inherit
from GarbageCollectedMixin, add a missing local trace() override.
This so as to insist on there being a trace() in the leftmost vtbl.

R=
BUG=340522

Review URL: https://codereview.chromium.org/835363003

git-svn-id: svn://svn.chromium.org/blink/trunk@187945 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
replace COMPILE_ASSERT with static_assert in sandbox/
BUG=442514

Review URL: https://codereview.chromium.org/821693003

Cr-Commit-Position: refs/heads/master@{#310165}
mostynb
replace COMPILE_ASSERT with static_assert in tools/
BUG=442514

Review URL: https://codereview.chromium.org/825323002

Cr-Commit-Position: refs/heads/master@{#310127}
sigbjornf
Oilpan: fix build after r187923.
TBR=oilpan-reviews,haraken
BUG=425623
NOTRY=true

Review URL: https://codereview.chromium.org/836023005

git-svn-id: svn://svn.chromium.org/blink/trunk@187929 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: mark WebPageSerializerImpl as stack allocated.
Along with declaring its GCed references as Member<>s.

R=haraken
BUG=340522

Review URL: https://codereview.chromium.org/831263008

git-svn-id: svn://svn.chromium.org/blink/trunk@187914 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Allocate GCInfo descriptor table during Oilpan initialization.
Dynamically allocate this block of GCInfo object descriptors.

R=haraken
BUG=420515

Review URL: https://codereview.chromium.org/808803007

git-svn-id: svn://svn.chromium.org/blink/trunk@187906 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
replace COMPILE_ASSERT with static_assert in skia/
BUG=442514

Review URL: https://codereview.chromium.org/823403002

Cr-Commit-Position: refs/heads/master@{#310027}
mostynb
replace COMPILE_ASSERT with static_assert in pdf/
BUG=442514

Review URL: https://codereview.chromium.org/831493002

Cr-Commit-Position: refs/heads/master@{#310012}
mostynb
replace COMPILE_ASSERT with static_assert in ppapi/
BUG=442514

Review URL: https://codereview.chromium.org/824153003

Cr-Commit-Position: refs/heads/master@{#310010}
mostynb
replace COMPILE_ASSERT with static_assert in sql/
BUG=442514

Review URL: https://codereview.chromium.org/825313002

Cr-Commit-Position: refs/heads/master@{#310006}
mostynb
replace COMPILE_ASSERT with static_assert in media/
BUG=442514

Review URL: https://codereview.chromium.org/826953002

Cr-Commit-Position: refs/heads/master@{#309999}
mostynb
replace COMPILE_ASSERT with static_assert in remoting/
BUG=442514

Review URL: https://codereview.chromium.org/824383002

Cr-Commit-Position: refs/heads/master@{#309982}
mostynb
replace COMPILE_ASSERT with static_assert in chrome/common/
BUG=442514

Review URL: https://codereview.chromium.org/812503003

Cr-Commit-Position: refs/heads/master@{#309974}
sigbjornf
Delay string conversion of attribute names until needed.
Upon attribute creation/update/removal wrt a qualified name, that
operation is reported to inspector via the
InspectorInstrumentation interface. Do that without stringifying
the qualified name first, as the notification and its stringified
name may very well not be made use of. If, for instance, developer
tools aren't active.

Gains 4% on dromaeo.domattr.dom_attr_setAttribute.

R=adamk
BUG=

Review URL: https://codereview.chromium.org/832343003

git-svn-id: svn://svn.chromium.org/blink/trunk@187871 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
replace COMPILE_ASSERT with static_assert in chrome/[r-z]*/
BUG=442514

Review URL: https://codereview.chromium.org/810283003

Cr-Commit-Position: refs/heads/master@{#309968}
sigbjornf
Do not create a temporary Range object on updating spell checking markers.
As these markers are conditionally updated on every edit operation,
avoid creating a temporary Range object when doing so. With Oilpan
enabled, this avoids creating a GCed object that is only delay'edly
released.

Improves Oilpan performance on blink_perf.dom.textarea-edit by 10%.

R=haraken
BUG=388681

Review URL: https://codereview.chromium.org/828293002

git-svn-id: svn://svn.chromium.org/blink/trunk@187820 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Do not (re)start NavigatorGamepad updating once detached.
Following r187750, NavigatorGamepad uses DOMWindowProperty::frame()
to access its window and document, dispatching and handling events
via those when activated and receiving platform event updates.

With Oilpan enabled, a DOMWindowProperty instance will be informed
of frame & document detachment via willDetachGlobalObjectFromFrame(),
with the frame remaining alive until the next GC sweep. Without
Oilpan, frame destruction is synchronous.

Consequently, a NavigatorGamepad with a now-detached frame() should
not reactivate itself, as the weak frame() reference will become
null once the next GC has struck. NavigatorGamepad relies on
frame() being non-null when activated.

Insist on the frame being non-detached to (re)activate. The
difference in behavior from the previous check is only observable
with Oilpan enabled, hence no need to make it suitably conditional.

R=haraken
BUG=340522

Review URL: https://codereview.chromium.org/828983002

git-svn-id: svn://svn.chromium.org/blink/trunk@187811 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: remove unused typed pointer cast operation over (Weak)Member.
R=haraken
BUG=420515

Review URL: https://codereview.chromium.org/808053003

git-svn-id: svn://svn.chromium.org/blink/trunk@187809 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: non-eagerly trace HTML element stack records.
For some parses, the ElementRecord chains kept by the HTML element parse
stack might end up very long, requiring corresponding amounts of call
stack when being traced eagerly.

Use the marking stack instead for these objects, as is done for the
ContainerNodes these record objects refer to.

R=haraken
BUG=420515

Review URL: https://codereview.chromium.org/809803003

git-svn-id: svn://svn.chromium.org/blink/trunk@187808 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
For large object allocations, do not clear already zeroed memory.
The page memory regions are allocated with OS calls that already 
guarantee that the pages returned are all zeroes.

R=haraken
BUG=420515

Review URL: https://codereview.chromium.org/827423002

git-svn-id: svn://svn.chromium.org/blink/trunk@187807 bbb929c8-8fbe-4397-9dbb-9b2b20218538
arjanl
Don't supply value for boolean attribute
According to the documentation, "If the attribute is Boolean, do not
supply a value because its presence in the attributes array implies a
true value." kCGLPFAAllowOfflineRenderers is a Boolean attribute, so
adding a value would make it interpret that value as another attribute.

BUG=

Review URL: https://codereview.chromium.org/826353002

Cr-Commit-Position: refs/heads/master@{#309807}
sigbjornf
Add missing buffer reorg on Deque buffer expansion.
If a deque's buffer is expanded in place and that buffer contains items
at either buffer ends when that happens, make sure the end segment is moved
up to the end of the expanded buffer, along with adjusting the start
index.

R=thakis,haraken
BUG=445352

Review URL: https://codereview.chromium.org/835453002

git-svn-id: svn://svn.chromium.org/blink/trunk@187800 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
remove unused CLANG_PRAGMA macro
BUG=445236

Review URL: https://codereview.chromium.org/787373009

git-svn-id: svn://svn.chromium.org/blink/trunk@187782 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Make use of blink::WebNavigatorConnectCallbacks typedef
Switch NavigatorConnectProvider over to using this type alias instead
of its WebCallbacks<> expansion.

R=mek
BUG=445388

Review URL: https://codereview.chromium.org/810953007

Cr-Commit-Position: refs/heads/master@{#309766}
sigbjornf
Improve HTMLScriptElement::didMoveToNewDocument() comment.
Clarify when contextDocument() will return no Document; comment-only
change.

R=haraken
BUG=443115
NOTRY=true

Review URL: https://codereview.chromium.org/827233002

git-svn-id: svn://svn.chromium.org/blink/trunk@187777 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Add InlinedMarkingVisitor::shouldMarkObject() predicate.
Rename checkSkipForObjectInTerminatingThreadHeap() as shouldMarkObject()
and invert the predicate's meaning: it returns true if the object reference
should be marked and traced, false if it should not be.

When performing a thread-local GC, references to other thread heaps should
not be marked and traced.

R=haraken
BUG=445388

Review URL: https://codereview.chromium.org/818923005

git-svn-id: svn://svn.chromium.org/blink/trunk@187774 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
gn: don't reject absolute unix style pathnames in labels
Absolute paths have been suggested by brettw as a way for external products
based upon chromium to include code outside the chromium source tree.  gn
supports absolute paths in theory, but this has not been tried in practice yet.
This patch is the first step towards testing this proposed setup.

Some background details:
https://groups.google.com/a/chromium.org/forum/#!topic/gn-dev/CU7MzRLrQuE

BUG=445454
R=brettw@chromium.org

Review URL: https://codereview.chromium.org/825013003

Cr-Commit-Position: refs/heads/master@{#309753}
sigbjornf
Add WebNavigatorConnectCallbacks typedef.
Follow convention and introduce a typedef for the WebCallbacks<>
that the WebNavigatorConnectProvider uses.

R=haraken,mkwst
BUG=445388

Review URL: https://codereview.chromium.org/831613002

git-svn-id: svn://svn.chromium.org/blink/trunk@187759 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Make NavigatorConnectProvider finalize its owned callback objects.
Add missing IDMapOwnPointer annotation to have ConnectCallback objects
be destructed and finalized once done with, as the provider owns these.

Needed with Oilpan enabled to prevent persistent strong references
from going missing, and not being cleared in a timely fashion.

R=mek,mkwst
BUG=445388

Review URL: https://codereview.chromium.org/827953002

Cr-Commit-Position: refs/heads/master@{#309713}
sigbjornf
Blink GC plugin: improve handling of type dependent bases.
When exhaustively traversing the set of base classes for a class C,
the RecordInfo::IsGCDerived() method relied on the clang traversal method
used to support name lookups for a class. It will step over and ignore
any derived classes with dependent types as these are not to be considered
for that purpose.

In order to identify GC derived base classes for a definition like

 template<typename T>
 class A : public GarbageCollected<A> {
 public:
   // ..other needed stuff..
   class Local : public GarbageCollected<Local> { ... };
 };

and its nested class Local, traverse the base classes and if any
of them has a dependent type, resolve its dependent template and
use its class name when determining if it is a "GC derived" class.

For the above class, Local gets a dependent type when it is lifted
out of the class template by the AST visitor -- its type depending
on T.

R=
BUG=444740

Review URL: https://codereview.chromium.org/827693004

Cr-Commit-Position: refs/heads/master@{#309696}
mostynb
replace COMPILE_ASSERT with static_assert in chrome/installer/
BUG=442514

Review URL: https://codereview.chromium.org/821673004

Cr-Commit-Position: refs/heads/master@{#309684}
philipj
Deprecate Range.compareNode() and Range.expand()
Intent to Deprecate:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/4VemRjyCth4/av8YNGs-4ykJ

BUG=445218

Review URL: https://codereview.chromium.org/819093002

git-svn-id: svn://svn.chromium.org/blink/trunk@187726 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Explicitly dispose of async call chains.
When resetting V8AsyncCallTracker's call chains, promptly dispose of the
call chain map; Oilpan friendly not to delay it until the dtor is
eventually invoked.

R=yurys
BUG=443585

Review URL: https://codereview.chromium.org/818673004

git-svn-id: svn://svn.chromium.org/blink/trunk@187723 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r187715.
R=haraken
BUG=443585
NOTRY=true

Review URL: https://codereview.chromium.org/818673003

git-svn-id: svn://svn.chromium.org/blink/trunk@187719 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r187709.
TBR=oilpan-reviews,haraken
BUG=340522
NOTRY=true

Review URL: https://codereview.chromium.org/817373003

git-svn-id: svn://svn.chromium.org/blink/trunk@187718 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r187699.
TBR=oilpan-reviews,haraken
BUG=443585
NOTRY=true

Review URL: https://codereview.chromium.org/829503002

git-svn-id: svn://svn.chromium.org/blink/trunk@187701 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
replace COMPILE_ASSERT with static_assert in chrome/browser/
BUG=442514

Review URL: https://codereview.chromium.org/815363002

Cr-Commit-Position: refs/heads/master@{#309547}
mostynb
replace COMPILE_ASSERT with static_assert in components/
BUG=442514

Review URL: https://codereview.chromium.org/794683005

Cr-Commit-Position: refs/heads/master@{#309464}
jiangj
Make ConstrainedWebDialog resize with parent window
BUG=415526

Review URL: https://codereview.chromium.org/817273003

Cr-Commit-Position: refs/heads/master@{#309452}
mostynb
replace COMPILE_ASSERT with static_assert in gpu/
BUG=442514

Review URL: https://codereview.chromium.org/817023003

Cr-Commit-Position: refs/heads/master@{#309311}
mostynb
replace COMPILE_ASSERT with static_assert in cc/
BUG=442514

Review URL: https://codereview.chromium.org/804373004

Cr-Commit-Position: refs/heads/master@{#309309}
mostynb
remove COMPILE_ASSERT macro from blink
All usage of the COMPILE_ASSERT macro in blink have now been converted
to c++'s static_assert.

BUG=442514

Review URL: https://codereview.chromium.org/796303006

git-svn-id: svn://svn.chromium.org/blink/trunk@187564 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
replace COMPILE_ASSERT with static_assert in core/editing/
BUG=442514

Review URL: https://codereview.chromium.org/799403008

git-svn-id: svn://svn.chromium.org/blink/trunk@187560 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Revert "Oilpan: Expand HashTableBacking buffer when possible"
This reverts commit fc69cd97719458d01ed12cb770280b63bc5802c8.

Reason: crashes seen on Windows and Mac bots,

 http://test-results.appspot.com/dashboards/flakiness_dashboard.html#master=ChromiumWebkit&tests=fast/css/invalidation/style-invalidation-before-attach.html,fast/dom/Window/window-lookup-precedence.html,fast/dom/dom-constructors.html,fast/forms/ValidityState-tooLong-input.html,fast/forms/ValidityState-tooShort-input.html,fast/harness/results.html,html5lib/generated/run-tests22-data.html,html5lib/generated/run-tests22-write.html,traversal/moz-mutations-3.html

TBR=keishi,jochen@chromium.org,haraken,oilpan-reviews
BUG=420515
NOTRY=true

Review URL: https://codereview.chromium.org/808253004

git-svn-id: svn://svn.chromium.org/blink/trunk@187545 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Remove unnecessary sync style recalc for fullscreen.
There is no code nearby that depends on an up-to-date render tree. The
render tree will now be updated as part of WillBeginMainFrame. I've not
been able to construct a test case that can hook into the code between
the removed call and the new place since the webkitfullscreenchange event
code is called after WillBeginMainFrame.

R=jchaffraix@chromium.org
TEST=fullscreen/
TEST=media/

Review URL: https://codereview.chromium.org/816953002

git-svn-id: svn://svn.chromium.org/blink/trunk@187544 bbb929c8-8fbe-4397-9dbb-9b2b20218538
auygun
Android: Use a spawning queue for child processes while we are at capacity.
- Put child process spawning requests in a queue while we are at capacity and
  spawn when a service is freed.

- Delay reusing freed services to avoid immediately reusing.

BUG=429657

Review URL: https://codereview.chromium.org/704573002

Cr-Commit-Position: refs/heads/master@{#309199}
philipj
Enable strict type checking for Selection.selectAllChildren()
http://w3c.github.io/selection-api/#idl-def-Selection

Firefox Nightly and IE11 also throws exceptions for the cases tested,
making this change likely Web compatible.

BUG=443721

Review URL: https://codereview.chromium.org/813163007

git-svn-id: svn://svn.chromium.org/blink/trunk@187538 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Expose the HTMLDetailsElement and RadioNodeList interfaces
Firefox Nightly already exposes the RadioNodeList interface, but not
HTMLDetailsElement as it doesn't support <details>:
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/details

IE11 exposes neither of these interfaces.

Review URL: https://codereview.chromium.org/810283002

git-svn-id: svn://svn.chromium.org/blink/trunk@187537 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
replace COMPILE_ASSERT with static_assert in web/
BUG=442514

Review URL: https://codereview.chromium.org/814673002

git-svn-id: svn://svn.chromium.org/blink/trunk@187534 bbb929c8-8fbe-4397-9dbb-9b2b20218538
haavardm
Implement zero-copy SSL buffers.
Use the new BoringSSL zero copy interface to avoid allocating new
buffers for each read and write operation and save buffer memory.

BUG=169885

Review URL: https://codereview.chromium.org/795573002

Cr-Commit-Position: refs/heads/master@{#309191}
philipj
Handle null argument for Selection.selectAllChildren()
Blink r186929 "Make some Selection function arguments non-optional"
mistakenly assumed that this cannot be null, but without strict type
checking it can be.

Per spec anything other than Node should throw a TypeError, but begin
by reverting to the old state. Add a test that would trigger this
assert for which the pass condition can be inverted later.

BUG=443721

Review URL: https://codereview.chromium.org/817693002

git-svn-id: svn://svn.chromium.org/blink/trunk@187530 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
remove some dead visual studio < 2013 code
We only support building for windows with Visual Studio 2013 Update 4
now, so let's remove dead code that is only used for older Visual
Studio versions.

BUG=442035,158570

Review URL: https://codereview.chromium.org/798163004

Cr-Commit-Position: refs/heads/master@{#309187}
mstensho
Properly add myself to WATCHLISTS for multicol and pagination LayoutTests.
A typo got me CCed on every CL.

TBR=rune@opera.com
NOTRY=true

Review URL: https://codereview.chromium.org/801223003

git-svn-id: svn://svn.chromium.org/blink/trunk@187520 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Clear matched properties cache for theme color changes.
A theme dependent color is represented by a keyword in CSS and the matched
property value won't change when the theme color changes. That lead to a
cache hit in MatchPropertiesCache so that a style recalc after changing the
theme wouldn't have an effect. So, we need to invalidate the cache on such
changes.

Changed method name and api layering to contain knowledge about necessary
changes in the StyleEngine.

BUG=441144

Review URL: https://codereview.chromium.org/804873003

git-svn-id: svn://svn.chromium.org/blink/trunk@187517 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: cancel MIDI permission request when prefinalizing
Cancelling an access permission request during finalization is a little
bit too late for the now-GCed MIDIAccessInitializer object. Arrange or a
prefinalizer to handle it instead.

R=haraken
BUG=420515

Review URL: https://codereview.chromium.org/805263004

git-svn-id: svn://svn.chromium.org/blink/trunk@187515 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Add myself to WATCHLISTS for multicol and pagination LayoutTests.
Also cleaned up some cruft that I had left behind in this file.

TBR=rune@opera.com
NOTRY=true

Review URL: https://codereview.chromium.org/815823004

git-svn-id: svn://svn.chromium.org/blink/trunk@187495 bbb929c8-8fbe-4397-9dbb-9b2b20218538
bratell
Windows run-webkit-tests broke if --disable-breakpad was used
Running run-webkit-tests in Windows with --disable-breakpad resulted in

AttributeError raised: 'WinPort' object has no attribute '_crash_service'
Traceback (most recent call last):
  File "src\third_party\WebKit\Tools\Scripts\webkitpy\layout_tests\run_webkit_tests.py", line 73, in main
    run_details = run(port, options, args, stderr)
  File "src\third_party\WebKit\Tools\Scripts\webkitpy\layout_tests\run_webkit_tests.py", line 381, in run
    run_details = manager.run(args)
  File "src\third_party\WebKit\Tools\Scripts\webkitpy\layout_tests\controllers\manager.py", line 278, in run
    self._clean_up_run()
  File "src\third_party\WebKit\Tools\Scripts\webkitpy\layout_tests\controllers\manager.py", line 359, in _clean_up_run
    self._port.clean_up_test_run()
  File "L:\src\clean_chromium\src\third_party\WebKit\Tools\Scripts\webkitpy\layout_tests\port\win.py", line 150, in clean_up_test_run
    if self._crash_service:

R=dpranke@chromium.org

Review URL: https://codereview.chromium.org/808163002

git-svn-id: svn://svn.chromium.org/blink/trunk@187488 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r187472.
TBR=oilpan-reviews,haraken
BUG=401422
NOTRY=true

Review URL: https://codereview.chromium.org/808233004

git-svn-id: svn://svn.chromium.org/blink/trunk@187477 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
IDL: Simplify [TypeChecking=Interface] code generation
Instead of doing a separate hasInstance() check before converting, simply
use toImplWithTypeCheck() to convert and check after if the result was
null, as it is if not hasInstance().

The primary benefit of this is that we no longer need to optimize away the
extra hasInstance() check in toImplWithTypeCheck() by using an "unsafe"
conversion in the [TypeChecking=Interface] case. This simplifies the code
generator without losing the optimization.

Review URL: https://codereview.chromium.org/808373002

git-svn-id: svn://svn.chromium.org/blink/trunk@187476 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
replace COMPILE_ASSERT with static_assert in modules/
BUG=442514

Review URL: https://codereview.chromium.org/813903002

git-svn-id: svn://svn.chromium.org/blink/trunk@187464 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Correctly move script element to a detached document.
If a script element ends up being moved over to a new document's tree,
its script loader is re-associated with that document's script runner
if the load is still pending. That association of script runner and
loader needs to reflect document association of the element itself,
otherwise completion of script loading and any later movement of the
element to another document will go wrong.

R=marja,jochen
BUG=443115

Review URL: https://codereview.chromium.org/809323002

git-svn-id: svn://svn.chromium.org/blink/trunk@187458 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Expose MediaQueryList interface and make arguments non-optional
http://dev.w3.org/csswg/cssom-view/#the-mediaquerylist-interface

In Firefox Nightly and IE11, the interface is already exposed and
calling addListener() or removeListener() throws an exception, making
this change likely Web compatible.

The added early returns in the implementation are per spec, but
redudant with similar checks decorated with FIXMEs in EventTarget.
Save some trouble for the time when those are removed.

Review URL: https://codereview.chromium.org/809613008

git-svn-id: svn://svn.chromium.org/blink/trunk@187449 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Make elementFromPoint() arguments non-optional
http://dev.w3.org/csswg/cssom-view/#extensions-to-the-document-interface
http://w3c.github.io/webcomponents/spec/shadow/#the-shadowroot-interface

Document.elementFromPoint() throws with too few arguments in Firefox
Nightly and IE11, making this likely Web compatibly.

ShadowRoot.elementFromPoint() has only been shipped in Blink, so stuff
could break, but it does not seem likely enough to warrant use counters.

Review URL: https://codereview.chromium.org/812173002

git-svn-id: svn://svn.chromium.org/blink/trunk@187443 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Don't updateRenderTree in the middle of a DOM insertion.
After [1] landed, this CL is now a revert of using a flag for postponing
scrolling, and scroll from didNotifySubtreeInsertion instead. The original
description for this fix below. The crasher was fixed by [1].
    
[1] https://codereview.chromium.org/783983005

The original description:

When inserting an OPTION element with the selected attribute set, we
synchronously scroll to that OPTION to make it visible. A prerequisite for
scrolling is to have the render tree up-to-date. At this point only parts
of the inserted fragment had its inDocument() flag set which caused a crash
when a nullptr was returned for the computed style of an input spinner.

Ideally, we should not scroll synchronously from the dom insertion code.
This CL moves scrolling from insertedInto() to didNotifySubtreeInsertion().
The inDocument() flags are up-to-date when didNotifySubtreeInsertion()
is called.

An ASSERT is added to Element::recalcStyle to catch other cases of calling
updateRenderTree in the middle of a dom insertion.

R=esprehn@chromium.org
BUG=438615

Review URL: https://codereview.chromium.org/791533004

git-svn-id: svn://svn.chromium.org/blink/trunk@187437 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Add counters for addEventListener/removeEventListener optional arguments
Per the FIXME in EventTarget.h, making these non-optional per spec has
failed once, so add counters to determine if it is now safe or not.

BUG=353484

Review URL: https://codereview.chromium.org/815503002

git-svn-id: svn://svn.chromium.org/blink/trunk@187434 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Don't apply column-span:all for display:table-*
The spec doesn't allow this, and we crash if we allow it.

This fix is specific to the old / current multicol implementation. The
new one already does it correctly, FWIW.

The old / current multicol implementation has this concept of block
continuations, which we establish when there's a spanner inside some multicol
child. We do this before considering any render tree fixup for anonymous table
objects. These two render tree fixup mechanisms simply don't play well
together, and since table-* cannot become spanners, according to the spec,
there's no need to make them cope with such situations. Just prevent spanners
in such cases.

BUG=435815,443205
R=dsinclair@chromium.org

Review URL: https://codereview.chromium.org/809193002

git-svn-id: svn://svn.chromium.org/blink/trunk@187422 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
remove COMPILER_SUPPORTS(BLOCKS) and COMPILER_SUPPORTS(HAS_TRIVIAL_DESTRUCTOR)
These macros are unused.

BUG=443364

Review URL: https://codereview.chromium.org/784273006

git-svn-id: svn://svn.chromium.org/blink/trunk@187417 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
replace COMPILE_ASSERT with static_assert in platform/
BUG=442514

Review URL: https://codereview.chromium.org/813883002

git-svn-id: svn://svn.chromium.org/blink/trunk@187415 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
[New Multicolumn] Make computeOffsetFromCompositedAncestor() flowthread-aware.
This function needs to produce the visual offset, and you cannot get that
by calling convertToLayerCoords().

Introducing RenderLayer::visualOffsetFromAncestor() to calculate the
correct visual offset. This also allows for reducing
convertFromFlowThreadToVisualBoundingBoxInAncestor() by a few lines.

We can now add compositing/columns to the virtual/regionbasedmulticol/
testsuite, since both tests there have started to pass.

The fast/multicol/composited-layer-single-fragment.html test is based on work by
andersr@opera.com

The test for hit-testing something 3D-transformed has already been passing
for some time (since https://codereview.chromium.org/625903004), but
actual painting was wrong, until now.

BUG=359877
R=chrishtr@chromium.org

Review URL: https://codereview.chromium.org/799403006

git-svn-id: svn://svn.chromium.org/blink/trunk@187413 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r187386.
TBR=oilpan-reviews,haraken
BUG=431274
NOTRY=true

Review URL: https://codereview.chromium.org/812913002

git-svn-id: svn://svn.chromium.org/blink/trunk@187410 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
make v8_use_external_startup_data overridable
This is useful for anyone building non-standard configurations.

BUG=421063

Review URL: https://codereview.chromium.org/789673008

Cr-Commit-Position: refs/heads/master@{#308865}
philipj
Replace [Default=Undefined] with per-spec syntax for AudioNode
http://webaudio.github.io/web-audio-api/#the-audionode-interface

This does not change observable behavior, as toInt32 in V8Binding.cpp
returns 0 for undefined.

Review URL: https://codereview.chromium.org/816453003

git-svn-id: svn://svn.chromium.org/blink/trunk@187392 bbb929c8-8fbe-4397-9dbb-9b2b20218538
bratell
Add HTML title to C++11 style guide.
R=thakis@chromium.org
BUG=

Review URL: https://codereview.chromium.org/814543003

Cr-Commit-Position: refs/heads/master@{#308813}
philipj
Add a UseCounter for WebKitCSSMatrix
BUG=442693

Review URL: https://codereview.chromium.org/808763003

git-svn-id: svn://svn.chromium.org/blink/trunk@187383 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: remove unnecessary WeakMember friend class decl.
R=kouhei
BUG=420515

Review URL: https://codereview.chromium.org/792233006

git-svn-id: svn://svn.chromium.org/blink/trunk@187381 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
replace COMPILE_ASSERT with static_assert in core/inspector/
BUG=442514

Review URL: https://codereview.chromium.org/813473003

git-svn-id: svn://svn.chromium.org/blink/trunk@187377 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Remove the use of :-webkit-full-screen-document.
This is a pseudo class that is not implemented by Gecko nor IE, while the
ancestor variant is implemented prefixed by Gecko.

It would be good to remove this. As a first step get rid of the use in the
UA style.

This selector:

:root:-webkit-full-screen-document:not(:-webkit-full-screen)

matches a subset of this:

:root:-webkit-full-screen-ancestor

which means we can just remove the former.

Use counters are added for fullscreen pseudo classes. The ancestor and
document variants are no longer in the spec. Let's see if we can remove them
further down the road.

R=jchaffraix@chromium.org,philipj@opera.com
BUG=442239
TEST=LayoutTests/fullscreen/
NOTRY=true

Review URL: https://codereview.chromium.org/807473002

git-svn-id: svn://svn.chromium.org/blink/trunk@187369 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r187362.
R=yurys
BUG=439376
NOTRY=true

Review URL: https://codereview.chromium.org/809023003

git-svn-id: svn://svn.chromium.org/blink/trunk@187368 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
replace COMPILE_ASSERT with static_assert in core/svg/
BUG=442514

Review URL: https://codereview.chromium.org/806323002

git-svn-id: svn://svn.chromium.org/blink/trunk@187360 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
replace COMPILE_ASSERT with static_assert in bindings/
BUG=442514

Review URL: https://codereview.chromium.org/797283005

git-svn-id: svn://svn.chromium.org/blink/trunk@187359 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
replace COMPILE_ASSERT with static_assert in core/fetch/
And simplify the checks while we're at it.

BUG=442514

Review URL: https://codereview.chromium.org/807263002

git-svn-id: svn://svn.chromium.org/blink/trunk@187357 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r187345.
TBR=oilpan-reviews,haraken
BUG=399950
NOTRY=true

Review URL: https://codereview.chromium.org/808123002

git-svn-id: svn://svn.chromium.org/blink/trunk@187350 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r187337.
TBR=oilpan-reviews,haraken
BUG=441062
NOTRY=true

Review URL: https://codereview.chromium.org/797493004

git-svn-id: svn://svn.chromium.org/blink/trunk@187347 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
replace COMPILE_ASSERT with static_assert in core/html/
BUG=442514

Review URL: https://codereview.chromium.org/811863003

git-svn-id: svn://svn.chromium.org/blink/trunk@187317 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: have PageSerializer accurately handle its GCed references.
Have the references to GCed objects be appropriately accounted for during
GCs over this stack allocated object.

R=
BUG=340522

Review URL: https://codereview.chromium.org/813453002

git-svn-id: svn://svn.chromium.org/blink/trunk@187314 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
replace COMPILE_ASSERT with static_assert in core/rendering/
BUG=442514

Review URL: https://codereview.chromium.org/811843003

git-svn-id: svn://svn.chromium.org/blink/trunk@187306 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
replace COMPILE_ASSERT with static assert in core/css/
BUG=442514

Review URL: https://codereview.chromium.org/809823002

git-svn-id: svn://svn.chromium.org/blink/trunk@187305 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
replace COMPILE_ASSERT with static_assert in core/dom/
BUG=442514

Review URL: https://codereview.chromium.org/792083006

git-svn-id: svn://svn.chromium.org/blink/trunk@187304 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r187288.
TBR=oilpan-reviews,haraken
BUG=440834
NOTRY=true

Review URL: https://codereview.chromium.org/808863003

git-svn-id: svn://svn.chromium.org/blink/trunk@187292 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ed
Add UseCounter for SMIL animation in image.
BUG=

Review URL: https://codereview.chromium.org/805743003

git-svn-id: svn://svn.chromium.org/blink/trunk@187291 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
replace COMPILE_ASSERT with static assert in wtf/
BUG=442514

Review URL: https://codereview.chromium.org/802203004

git-svn-id: svn://svn.chromium.org/blink/trunk@187289 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r187279.
TBR=oilpan-reviews,haraken
BUG=428286
NOTRY=true

Review URL: https://codereview.chromium.org/810623004

git-svn-id: svn://svn.chromium.org/blink/trunk@187286 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: remove GC plugin ignore for recursive value objects.
The GC_PLUGIN_IGNORE() is no longer needed as clang rolls now includes
http://crbug.com/424962

R=kouhei,haraken
BUG=424962

Review URL: https://codereview.chromium.org/735263002

git-svn-id: svn://svn.chromium.org/blink/trunk@187276 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
replace COMPILE_ASSERT with static_assert in public/platform/
BUG=442514

Review URL: https://codereview.chromium.org/802633005

git-svn-id: svn://svn.chromium.org/blink/trunk@187275 bbb929c8-8fbe-4397-9dbb-9b2b20218538
wjarosik
Use Blink's flag to prevent fling boosting.
This flag prevents the flingCancel event from being used
as a part of a fling boost event sequence.
The synthetic FlingCancel method works properly now and cancels flings
instantly, without deferring flingCancel event.

See: https://codereview.chromium.org/789223002

BUG=440886

Review URL: https://codereview.chromium.org/792833002

Cr-Commit-Position: refs/heads/master@{#308599}
atanasb
Downgrade the security of a secured page when plugins make insecure calls
Send message for lowering the security of a page when context of the
request is ContextTypeShouldBeBlockable.

BUG=432485

Review URL: https://codereview.chromium.org/768753003

git-svn-id: svn://svn.chromium.org/blink/trunk@187260 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
IDL: various adjustments to match Web IDL specification better
Notably adds support for maplike<type, type>, setlike<type>, iterable<type>
and legacyiterable<type> declarations.

Also changes some interface member grammar productions around a bit, and
drops the deprecated Attribute production, which Blink's parser no longer
references.

Review URL: https://codereview.chromium.org/803933003

Cr-Commit-Position: refs/heads/master@{#308584}
philipj
Deprecate Window.webkitURL
Intent to Deprecate:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/EsJE9wb321I/zzW9Zr3D1xYJ

BUG=330691,348985

Review URL: https://codereview.chromium.org/804733002

git-svn-id: svn://svn.chromium.org/blink/trunk@187252 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove WorkerGlobalScope.webkitURL
Intent to Deprecate and Remove:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/Ng4rRmc6C0I/d0oFrGqACxgJ

BUG=348985

Review URL: https://codereview.chromium.org/792103003

git-svn-id: svn://svn.chromium.org/blink/trunk@187246 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Tweak style of AudioListener doppler deprecations
None of the other existing Deprecated* are actually deprecated and
none of the other currently deprecated features are named Deprecated*.

Use the InterfaceAttributeOrFunction naming convention instead.

Also, extra blank lines in UseCounter.h has caused trouble:
https://codereview.chromium.org/729393002/#msg19

BUG=439644
TBR=rtoy@chromium.org

Review URL: https://codereview.chromium.org/803183006

git-svn-id: svn://svn.chromium.org/blink/trunk@187245 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: attempt first-fit freelist allocation for backing heaps.
When not being able to bump allocate a vector/hash table's backing storage,
try to reuse an entry from the corresponding sized bin, picking the first.

Should that fail, fall into allocating the largest chunk available.

This freelist allocation scheme has some merit on
shadow_dom:LargeDistributionWithoutLayout, improving Linux performance
by 27%.

R=haraken
BUG=420515

Review URL: https://codereview.chromium.org/798293002

git-svn-id: svn://svn.chromium.org/blink/trunk@187243 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r187207.
TBR=oilpan-reviews,haraken
BUG=392365
NOTRY=true

Review URL: https://codereview.chromium.org/789063004

git-svn-id: svn://svn.chromium.org/blink/trunk@187230 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
just use c++ static_assert everywhere
We can simplify COMPILE_ASSERT, since all our toolchains
support c++'s static_assert.  This matches chromium's
definition.

BUG=442514

Review URL: https://codereview.chromium.org/805073002

git-svn-id: svn://svn.chromium.org/blink/trunk@187213 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Deprecate CanvasRenderingContext2D.webkitImageSmoothingEnabled
Intent to Deprecate:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/Ud3cV1mj35s/Ssat21OeRqYJ

BUG=277199

Review URL: https://codereview.chromium.org/804743002

git-svn-id: svn://svn.chromium.org/blink/trunk@187177 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
remove unused openbsd std::isfinite and std::signbit implementations
OpenBSD 4.4 (release 2008) and later include std::isfinite and std::signbit.  

https://bugs.webkit.org/show_bug.cgi?id=19975

Review URL: https://codereview.chromium.org/804943002

git-svn-id: svn://svn.chromium.org/blink/trunk@187166 bbb929c8-8fbe-4397-9dbb-9b2b20218538
wjarosik
New flingCancel flag to prevent fling boosting.
This flag is used by Chromium in order to prevent flingCancel
from being used as a part of the fling boost events sequence.
Previously (without this flag), when Chromium called native
cancelFling method, flingCancel event was deferred,
but the proper behaviour should be to cancel fling instantly.

See: https://codereview.chromium.org/792833002/

BUG=440886

Review URL: https://codereview.chromium.org/789223002

git-svn-id: svn://svn.chromium.org/blink/trunk@187163 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: force finalization on color chooser closing tests.
The closing of the color chooser popup window may in the end be triggered
by the finalization of the GCed popup UI controller object, so force
a GC before testing for the chooser being closed.

R=haraken
BUG=340522
NOTRY=true

Review URL: https://codereview.chromium.org/801373002

git-svn-id: svn://svn.chromium.org/blink/trunk@187162 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
IDL: Properly support [Exposed] on static methods
They were conditionally installed as indicated by the [Exposed] attribute,
but they were installed on the prototype object rather than on the
interface object.

A static method with [Exposed] fulfills the requirements for being treated
both as a conditionally enabled method (because of [Exposed]) and a method
with custom registration (because of being static), and due to the order
in which those requirements were checked, it ended up being treated as a
conditionally enabled method, only.

Fix by giving custom registration priority and by adding the same
condition filters around that registration code, so that such methods can
still also be all sorts of conditionally enabled.

BUG=434741

Review URL: https://codereview.chromium.org/793243004

git-svn-id: svn://svn.chromium.org/blink/trunk@187161 bbb929c8-8fbe-4397-9dbb-9b2b20218538
elisabets
Hide/show topbar when scrolling page up or down.
Topbar was not hiding while scrolling down at some pages
starting with a table. It did show up however if previously
hidden when scrolling up. With this change, topbar animation is
triggered for both up & down scrolling.

See for example http://sv.wikipedia.org/wiki/M%C3%B6lnlycke and try
scrolling down, topbar is not hidden.

BUG=438548

Review URL: https://codereview.chromium.org/769273002

Cr-Commit-Position: refs/heads/master@{#308340}
sigbjornf
Revert "Remove MediaKeys.isTypeSupported()."
This reverts commit f3bca1bfe191b94af316a54bb55dec53ec4f4cf2.

Reasons for revert:

Various encrypt-media tests have started to fail (flakily on some bots),

 http://test-results.appspot.com/dashboards/flakiness_dashboard.html#tests=media%2Fencrypted-media%2Fencrypted-media-lifetime-mediakeys-with-session.html%2Cmedia%2Fencrypted-media%2Fencrypted-media-lifetime-mediakeysession-reference.html%2Cmedia%2Fencrypted-media%2Fencrypted-media-lifetime-mediakeysession-release-noreference.html%2Cmedia%2Fencrypted-media%2Fencrypted-media-lifetime-mediakeysession-release.html%2Cmedia%2Fencrypted-media%2Fencrypted-media-lifetime-multiple-mediakeys.html

TBR=jrummell,ddorwin
BUG=425186
NOTRY=true

Review URL: https://codereview.chromium.org/806653004

git-svn-id: svn://svn.chromium.org/blink/trunk@187122 bbb929c8-8fbe-4397-9dbb-9b2b20218538
tmoniuszko
Fix icon on Windows XP taskbar
BUG=437829

Committed: https://crrev.com/0593c1690aeb6ac4869504b91d8172546aea1da6
Cr-Commit-Position: refs/heads/master@{#306389}

Review URL: https://codereview.chromium.org/772533002

Cr-Commit-Position: refs/heads/master@{#308326}
philipj
Make CSSSupportsRule function arguments non-optional
http://dev.w3.org/csswg/css-conditional/#the-csssupportsrule-interface
http://dev.w3.org/csswg/css-conditional/#the-cssconditionrule-interface
http://dev.w3.org/csswg/css-conditional/#the-cssgroupingrule-interface

Per spec CSSSupportsRule and CSSMediaRule inherits from CSSConditionRule
which inherits from CSSGroupingRule, which is where insertRule() and
deleteRule() live. We expose neither CSSConditionRule nor
CSSGroupingRule, but this change aligns CSSSupportsRule with
CSSMediaRule, so that introducing CSSGroupingRule becomes a smaller
change.

Firefox Nightly already throws exceptions when insertRule() or
deleteRule() arguments are omitted. IE11 does not support @supports.

Review URL: https://codereview.chromium.org/797013002

git-svn-id: svn://svn.chromium.org/blink/trunk@187121 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Expose the CSSSupportsRule interface object
It appears to be an historical accident that this is not exposed, as
originally one had to explicitly expose interface objects:
https://chromiumcodereview.appspot.com/14179013

Firefox Nightly also exposes this.

Review URL: https://codereview.chromium.org/797853002

git-svn-id: svn://svn.chromium.org/blink/trunk@187116 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
remove some pre vs2013 code
We only support building for windows with Visual Studio 2013 Update 4
now, so let's remove dead code that is only used for older Visual
Studio versions.

BUG=442035

Review URL: https://codereview.chromium.org/803763002

git-svn-id: svn://svn.chromium.org/blink/trunk@187108 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: insist on HTMLImportStateResolver stack allocation.
Have the stack allocated HTMLImportStateResolver keep track of its
HTMLImport reference by way of a Member.

R=haraken
BUG=340522

Review URL: https://codereview.chromium.org/799523003

git-svn-id: svn://svn.chromium.org/blink/trunk@187098 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: trace RenderVTTCue's cue back reference.
With RenderVTTCue on the heap, no need to keep a raw pointer
back to the VTTCue of its element.

R=haraken
BUG=340522

Review URL: https://codereview.chromium.org/806483002

git-svn-id: svn://svn.chromium.org/blink/trunk@187097 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Have SourceBufferList trace all its object references.
Turn the GenericEventQueue and ExecutionContext fields into Members and
trace them also.

R=haraken
BUG=340522

Review URL: https://codereview.chromium.org/803663002

git-svn-id: svn://svn.chromium.org/blink/trunk@187092 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
remove WTF::Complex
WTF::Complex looks pretty useless- all it does is provide a
typedef for std::complex and an inline implementation of
std::polar.

It looks like it was planned to be extended at some point,
but that never happened:
https://bugs.webkit.org/show_bug.cgi?id=34538

Let's remove it.

BUG=442004

Review URL: https://codereview.chromium.org/801033003

git-svn-id: svn://svn.chromium.org/blink/trunk@187086 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Remove FIXME regarding respecting overflow clip.
Background: https://bugs.webkit.org/show_bug.cgi?id=91117

This is where ShouldRespectOverflowClip was introduced, and, as the name might
suggest, it was only meant to be used for "overflow clip"
(RenderObject::hasOverflowClip()), not "clip" (RenderObject::hasClip()).

The 'clip' property should always be respected, while we have to ignore
overflow clipping sometimes, so that we can composite content not currently
within the viewport established by a scrollable container.

R=chrishtr@chromium.org

Review URL: https://codereview.chromium.org/798913002

git-svn-id: svn://svn.chromium.org/blink/trunk@187047 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r187036.
TBR=oilpan-reviews,haraken
BUG=437846
NOTRY=true

Review URL: https://codereview.chromium.org/799723004

git-svn-id: svn://svn.chromium.org/blink/trunk@187044 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Keep a separate list of :host(-context) rules.
:host and :host-context in the rightmost compound selector apply to the
host element in the parent scope of a scoped stylesheet. However, we put
all these rules into the universal rule list and collected :host rules in
its own scope and other rules in the scope outside. For example:

<custom-element>
  <:shadow-root>
    <style>
      :host { background: green }
      * { background: red; }
    </style>
    <custom-element></custom-element>
</custom-element>

":host" applies to the outer <custom-element>, "*" applies to the
inner one. We collected both rules for both elements.

Instead keep a list of :host and :host-context rules for each scope to be
matched for the outer scope only, and skip all other rules from the inner
scope when matching for the outer scope.

Note that selectors with :host(-context) in non-rightmost compounds are
still in the other rule lists as they don't match the shadow host, but an
element in the same scope as the stylesheet is.

For instance: ":host(.x) div".

R=kochi@chromium.org,esprehn@chromium.org
BUG=437846

TEST=fast/dom/shadow/host-pseudo-class.html
TEST=fast/dom/shadow/hostcontext-pseudo-class.html

Review URL: https://codereview.chromium.org/789403005

git-svn-id: svn://svn.chromium.org/blink/trunk@187036 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
[New Multicolumn] Let a spanner's containing block be the multicol container.
This helps avoid some cheating and tightrope walking that we would
have to perform when laying out spanners while canceling out all ill
effects that the pagination code could cause. A spanner is no longer
part of the flow thread (although it is a descendant), much like
absolutely positioned descendants whose containing block is outside
the multicol container. It's no longer laid out during flow thread
layout.

RenderMultiColumnSpannerSet has never really been a "set", and now it
doesn't even inherit from RenderMultiColumnSet, so a rename seemed
prudent. It's now called RenderMultiColumnSpannerPlaceholder. The
placeholder will be in charge of laying out the spanner and
positioning it correctly. It will also be in charge of invalidating,
painting and hit-testing the spanner.

Instead of a hashmap that maps column-span:all renderers to their
corresponding placeholder, store a pointer directly in the rare-data
of the RenderBox that is column-span:all. A spanner isn't part of the
flow thread anymore, so locating the spanner's flow thread is a
meaningless or hacky task, so storing this map in the flow thread
would just be messy.

This change contains the bare minimum to avoid assertions during
layout and paint invalidation. There's no actual support for laying
out (or painting, etc.) spanners properly yet.

BUG=347325
R=jchaffraix@chromium.org

Review URL: https://codereview.chromium.org/789433006

git-svn-id: svn://svn.chromium.org/blink/trunk@187033 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ed
Add the 'lighter' composite operator to feComposite.
Spec: http://www.w3.org/TR/filter-effects-1/#valdef-operator-lighter

BUG=439037

Review URL: https://codereview.chromium.org/779963002

git-svn-id: svn://svn.chromium.org/blink/trunk@187029 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: clear out AsyncCallChainMaps in an orderly manner.
Follow up r186955 and avoid delaying clearing an ExecutionContextData's
AsyncCallChainMaps until the next GC, as that's not safe due to it
touching other possibly-finalized heap objects at that time. Handle
it instead when the ExecutionContextData is notified of impending
destruction instead.

R=haraken,aandrey
BUG=439376

Review URL: https://codereview.chromium.org/799693002

git-svn-id: svn://svn.chromium.org/blink/trunk@187025 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Let ShadowRoot.getElementById() fall back to DocumentFragment
ShadowRoot.getElementById() was added in 2012:
http://trac.webkit.org/changeset/106434

DocumentFragment.getElementById() was added in 2014:
https://codereview.chromium.org/251633002

The ShadowRoot override no longer serves any purpose. The argument
becomes non-optional with this change, which is Web-observable.

Review URL: https://codereview.chromium.org/799543002

git-svn-id: svn://svn.chromium.org/blink/trunk@187009 bbb929c8-8fbe-4397-9dbb-9b2b20218538
henriks
Remove the index of in-band tracks on the Chromium side
Note: https://codereview.chromium.org/754963009 removes the usage of
textTrackIndex() and has to be applied first.

BUG=440777
R=philipj@opera.com

Review URL: https://codereview.chromium.org/787343003

Cr-Commit-Position: refs/heads/master@{#308063}
sigbjornf
Have ElementRuleCollector keep match result vector as part object.
Simplify the representation of the matched results vector, keeping
the vector as a part object. The vector ends up being updated when
ElementRuleCollector is used, so lazily creating it gets in the
way of that. Not doing so also enables the prompt release of its
backing store with Oilpan, as it is an 'inline-capacity' vector.

In terms of performance, this brings Oilpan back on level terms
with non-Oilpan on blink_perf.layout:SimpleTextPathLineLayout,
undoing a 6% regression seen previously (linux.)

R=haraken@chromium.org,rune@opera.com
BUG=340522

Review URL: https://codereview.chromium.org/795043002

git-svn-id: svn://svn.chromium.org/blink/trunk@187007 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r186996.
TBR=oilpan-reviews,haraken
BUG=440262
NOTRY=true

Review URL: https://codereview.chromium.org/796303003

git-svn-id: svn://svn.chromium.org/blink/trunk@187004 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Sync execCommand() and queryCommand*() IDL with spec
https://html.spec.whatwg.org/multipage/dom.html#the-document-object

Both Firefox Nightly and IE11 pass all of the added tests, making this
change likely Web compatible.

Review URL: https://codereview.chromium.org/751553005

git-svn-id: svn://svn.chromium.org/blink/trunk@186980 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Split NonDocumentTypeChildNode from ChildNode
Blink is the only engine to still expose previousElementSibling and
nextElementSibling and http://mail1.griffithscorp.com/ doesn't show a
login button as a result.

More importantly, this brings is in alignment with the spec and other
browsers.

BUG=441238
TEST=LayoutTests/fast/dom/DocumentType/previous-element-sibling.html
     LayoutTests/fast/dom/DocumentType/next-element-sibling.html
     LayoutTests/fast/dom/Element/element-traversal
     LayoutTests/fast/dom/Text/previous-element-sibling.html
     LayoutTests/fast/dom/Text/next-element-sibling.html

Review URL: https://codereview.chromium.org/799523002

git-svn-id: svn://svn.chromium.org/blink/trunk@186969 bbb929c8-8fbe-4397-9dbb-9b2b20218538
henriks
Do not use inbandTrackIndex() when assigning track index
Simply append the track at the end instead.

BUG=440777
R=philipj@opera.com

Review URL: https://codereview.chromium.org/754963009

git-svn-id: svn://svn.chromium.org/blink/trunk@186964 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
IDL parser: override Attribute production from base IDL parser
The Attribute production is deprecated in the base IDL parser and is kept
around only because Blink references it.

It would be better to name this production ExceptionAttribute, but doing
that now leaves the Attribute production in the base parser unused, which
causes warnings. Overriding it here will let us remove it from the base
parser without fuzz.

Review URL: https://codereview.chromium.org/793343002

git-svn-id: svn://svn.chromium.org/blink/trunk@186957 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r186944.
TBR=oilpan-reviews,haraken
BUG=439376
NOTRY=true

Review URL: https://codereview.chromium.org/796863002

git-svn-id: svn://svn.chromium.org/blink/trunk@186955 bbb929c8-8fbe-4397-9dbb-9b2b20218538
andersr
Collect content:attr(...)-features in RuleFeatureSet.
We currently store the attribute names seen in content:attr(...) during
style application as a special case, and then afterwards ensure that we
have invalidation sets for those attributes. This is bad, because it's yet
another special thing we have to do when resolving a style.

This patch moves the collection of this feature to RuleFeatureSet, along
with the rest of the feature collection.

R=rune@opera.com
TEST=fast/css/invalidation/content-attr.html

Review URL: https://codereview.chromium.org/772103002

git-svn-id: svn://svn.chromium.org/blink/trunk@186954 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Add philipj@opera.com to public/OWNERS
NOTRY=true

Review URL: https://codereview.chromium.org/794183002

git-svn-id: svn://svn.chromium.org/blink/trunk@186951 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Remove extraneous needsRecalc condition.
childNeedsDistributionRecalc() was added to the condition in r186599, but
it is already checked inside needsFullRenderTreeUpdate(). Removing it
again.

R=andersr@opera.com
BUG=436064

Review URL: https://codereview.chromium.org/793263002

git-svn-id: svn://svn.chromium.org/blink/trunk@186947 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: tidy up definition of some stack-allocated scope objects.
Have these keep a strong Member<> reference to their objects.

R=haraken
BUG=340522

Review URL: https://codereview.chromium.org/791043002

git-svn-id: svn://svn.chromium.org/blink/trunk@186941 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Paint invalidation: Need to check offset cacheability for invalidation containers.
A check for supportsPaintInvalidationStateCachedOffsets() was missing for
renderers establishing a paint invalidation container, which incorrectly
made us assume that offsets were always cacheable for paint invalidation
containers.

BUG=438901
R=chrishtr@chromium.org

Review URL: https://codereview.chromium.org/772913003

git-svn-id: svn://svn.chromium.org/blink/trunk@186938 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Move recently landed align attribute tests to fast/block/
These were introduced in https://codereview.chromium.org/766223004

BUG=438931
TBR=ktf.kim@samsung.com

Review URL: https://codereview.chromium.org/793283002

git-svn-id: svn://svn.chromium.org/blink/trunk@186937 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Make execCommand("insertImage", false, "") not add a src attribute
This matches IE's behavior, and most importantly will preserve the
behavior of the 1-argument execCommand("insertImage") when the default
value changes from null to "", needed to match the spec.

A spec bug has been filed asking for the same change:
https://www.w3.org/Bugs/Public/show_bug.cgi?id=27552

Review URL: https://codereview.chromium.org/788153003

git-svn-id: svn://svn.chromium.org/blink/trunk@186936 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: move InspectorOverlay to the heap.
Thereby avoiding its Persistent references.

R=haraken
BUG=340522

Review URL: https://codereview.chromium.org/783923005

git-svn-id: svn://svn.chromium.org/blink/trunk@186935 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Tidy up UserMediaController references from mediastream request objects.
References to the UserMediaController GCed object need to be traced;
add missing Member<> refs + trace over these.

R=haraken
BUG=340522

Review URL: https://codereview.chromium.org/791033003

git-svn-id: svn://svn.chromium.org/blink/trunk@186932 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Make some Selection function arguments non-optional
http://w3c.github.io/selection-api/#idl-def-Selection

Firefox Nightly and IE11 both throw for the three tested cases, making
this change very likely Web compatible.

Some were left alone, pending a spec bug:
https://github.com/w3c/selection-api/issues/30

Review URL: https://codereview.chromium.org/792013002

git-svn-id: svn://svn.chromium.org/blink/trunk@186929 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r186900.
TBR=oilpan-reviews,haraken
BUG=428015
NOTRY=true

Review URL: https://codereview.chromium.org/789413003

git-svn-id: svn://svn.chromium.org/blink/trunk@186924 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: add missing tracing of InspectorTracingAgent objects.
R=
BUG=340522

Review URL: https://codereview.chromium.org/793713002

git-svn-id: svn://svn.chromium.org/blink/trunk@186915 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Make CSSStyleDeclaration function arguments non-optional
http://dev.w3.org/csswg/cssom/#the-cssstyledeclaration-interface

Firefox Nightly and IE11 pass the added tests, i.e. throw exceptions,
making this change likely Web compatible.

The nullability of argument and return types is still not per spec, but
that's a separate issue.

Review URL: https://codereview.chromium.org/796573003

git-svn-id: svn://svn.chromium.org/blink/trunk@186902 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Make CSSKeyframesRule function arguments non-optional
http://dev.w3.org/csswg/css-animations/#interface-csskeyframesrule

insertRule() is not in the spec, but as an alias of appendRule() it's
best to keep them in sync.

Making the findRule() return type nullable doesn't change the generated
code.

Review URL: https://codereview.chromium.org/790303002

git-svn-id: svn://svn.chromium.org/blink/trunk@186895 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Add use counter for credentialed CORS access from null origins.
To gain some data on how widespread the use of

  Access-Control-Allow-Origin: null
  Access-Control-Allow-Credentials: true

is (and it being currently allowed), add a use counter.

To enable the use counter reporting from within the CORS access check,
some extra plumbing required (but unavoidable.)

R=tyoshino
BUG=440676

Review URL: https://codereview.chromium.org/732323004

git-svn-id: svn://svn.chromium.org/blink/trunk@186875 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove unused nodes argument to createMarkup()
No client of createMarkup() passed a non-null list of nodes, so simplify
by removing it altogether.

Review URL: https://codereview.chromium.org/792003002

git-svn-id: svn://svn.chromium.org/blink/trunk@186866 bbb929c8-8fbe-4397-9dbb-9b2b20218538
haavardm
Fix crashes in ElementsUploadDataStreamTest
standard lib reports:
error: attempt to insert with an iterator range
[__first, __last) from this container.

When compiling standard lib from gcc 4.9 with C++11, insert
cannot take the same vector as both source and destination.

BUG=None

Review URL: https://codereview.chromium.org/789953002

Cr-Commit-Position: refs/heads/master@{#307699}
philipj
Make XMLHttpRequest::send(document) include charset=UTF-8
https://xhr.spec.whatwg.org/#dom-xmlhttprequest-send

Review URL: https://codereview.chromium.org/791783002

git-svn-id: svn://svn.chromium.org/blink/trunk@186846 bbb929c8-8fbe-4397-9dbb-9b2b20218538
wmaslowski
Only cancel pending navigation on user gesture.
This prevent sites navigating internally to block user from navigating.

BUG=75195

Review URL: https://codereview.chromium.org/746993003

Cr-Commit-Position: refs/heads/master@{#307668}
philipj
Make the execCommand() userInterface argument explicitly do nothing
There was no observable difference between CommandFromDOM and
CommandFromDOMWithUserInterface, so keep only CommandFromDOM.

A spec bug has been filed to match this:
https://www.w3.org/Bugs/Public/show_bug.cgi?id=27533

Review URL: https://codereview.chromium.org/769053004

git-svn-id: svn://svn.chromium.org/blink/trunk@186834 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: make NodeTraversal iterators trace their references.
Tidy up the various Node traversal iterators, insisting that they are
all stack allocated and use a Member to hold their node references.

R=haraken
BUG=340522

Review URL: https://codereview.chromium.org/789673005

git-svn-id: svn://svn.chromium.org/blink/trunk@186833 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: enable eager tracing.
Switch the GC marking phase to by default eagerly invoke the trace()
callbacks of unmarked objects.

R=haraken
BUG=420515

Review URL: https://codereview.chromium.org/783823002

git-svn-id: svn://svn.chromium.org/blink/trunk@186820 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r186803.
TBR=oilpan-reviews,haraken
BUG=425186
NOTRY=true

Review URL: https://codereview.chromium.org/790793004

git-svn-id: svn://svn.chromium.org/blink/trunk@186809 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Use the normal LayoutState constructor in RenderTableSection.
Don't use the one reserved for the layout root.

This was introduced by incorrect code conversion in
https://codereview.chromium.org/335963002

Also resurrected an informative comment that got lost in that commit
(and added some text on my own as well).

R=leviw@chromium.org

Review URL: https://codereview.chromium.org/786283002

git-svn-id: svn://svn.chromium.org/blink/trunk@186806 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Inherit propagation diff necessary for loaded web fonts.
As the loading status is not part of the RenderStyle equality operator
anymore, we need to explicitly check for the loading status to make the
style propagation diff be different from NoChange. That is necessary to
trigger a call to RenderObject::setStyle which in turn will call
visualInvalidationDiff that will trigger a layout/paint for the loaded
font.

This is a regression from r186572.

R=eae@chromium.org
BUG=440271

Review URL: https://codereview.chromium.org/790823003

git-svn-id: svn://svn.chromium.org/blink/trunk@186801 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix handling of SourceBuffer's async event queue.
With Oilpan enabled, the strong reference to the event queue must be
traced.

R=haraken
BUG=340522

Review URL: https://codereview.chromium.org/789833002

git-svn-id: svn://svn.chromium.org/blink/trunk@186787 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Sync DOMImplementation.createDocument() IDL with spec
https://dom.spec.whatwg.org/#interface-domimplementation

Because DOMImplementation::createDocument calls qualifiedName.isEmpty()
there is no observable difference when qualifiedName is null.

The added [TypeChecking=Interface] only affects the generated code for
the doctype argument, where passing a non-null, non-DocType object will
now throw an exception.

Firefox Nightly and IE11 pass all of the new tests, with the exception
of IE11 throwing an exception when the doctype argument is undefined. In
other words, the cases where we now throw exceptions already throw
exceptions in Firefox and IE, making it likely Web compatible.

TEST=LayoutTests/fast/dom/DOMImplementation/createDocument-doctype-err.html

Review URL: https://codereview.chromium.org/762383004

git-svn-id: svn://svn.chromium.org/blink/trunk@186779 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: add lazy tracing annotations to recursive objects.
To avoid excessively deep call chains if eagerly tracing RenderQuote,
ContainerNodes (via its Node member) or MemoryCacheEntry objects,
declare these as non-eagerly traceable.

R=haraken
BUG=420515

Review URL: https://codereview.chromium.org/758073009

git-svn-id: svn://svn.chromium.org/blink/trunk@186774 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: remove redundant WILL_BE_EAGERLY_TRACED() declarations.
With eager tracing of GC objects now being the default, remove
the WILL_BE_EAGERLY_TRACED() trait declarations added by r186410
for Web Animations related objects. Now redundant.

Not a straight revert of r186410, as it also tidied up some
tracing details for InterpolableValue subclasses; want to keep
those.

R=kouhei,haraken
BUG=420515

Review URL: https://codereview.chromium.org/791583002

git-svn-id: svn://svn.chromium.org/blink/trunk@186771 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: use Member<> for FilterEffect's filter reference.
Both FilterEffect and SkiaImageFilterBuilder keep assumed
strong references to GCed objects, but without tracing them.
Add the required Member<> to these references and trace
them (when explicitly needed.)

R=haraken
BUG=340522

Review URL: https://codereview.chromium.org/791613002

git-svn-id: svn://svn.chromium.org/blink/trunk@186767 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r186729.
TBR=oilpan-reviews,haraken
BUG=426520
NOTRY=true

Review URL: https://codereview.chromium.org/788593003

git-svn-id: svn://svn.chromium.org/blink/trunk@186733 bbb929c8-8fbe-4397-9dbb-9b2b20218538
joaoe
Properly handle defers loading in WebURLLoaderImpl for data uris
BUG=418116

Review URL: https://codereview.chromium.org/771593006

Cr-Commit-Position: refs/heads/master@{#307266}
philipj
Deprecate the Document.charset setter
Intent to Deprecate:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/1bykHAUpEA0/1Rl1AZuaiS4J

BUG=438392

Review URL: https://codereview.chromium.org/768313004

git-svn-id: svn://svn.chromium.org/blink/trunk@186686 bbb929c8-8fbe-4397-9dbb-9b2b20218538
auygun
Refactor part of CompositorImpl::SetVisible() into its own method.
Add method CompositorImpl::CreateLayerTreeHost() and move part of
CompositorImpl::SetVisible() that creates LayerTreeHost into it.

BUG=

Review URL: https://codereview.chromium.org/782723002

Cr-Commit-Position: refs/heads/master@{#307221}
stinae
Do not call GenerateCacheKey() if disk cache is disabled.
BUG=

Review URL: https://codereview.chromium.org/761763003

Cr-Commit-Position: refs/heads/master@{#307213}
philipj
Add UseCounters for some (now) non-standard CSS APIs
CSSKeyframesRule.appendRule is the now-standard name for
CSSKeyframesRule.insertRule, but measure both to get a better idea of
when dropping the old name is appropriate.

Review URL: https://codereview.chromium.org/781993002

git-svn-id: svn://svn.chromium.org/blink/trunk@186670 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Tidy up WorkerConsoleAgent's handling of its WorkerGlobalScope reference.
With Oilpan, have the console agent correctly trace its WorkerGlobalScope
reference.

R=haraken
BUG=340522

Review URL: https://codereview.chromium.org/782043002

git-svn-id: svn://svn.chromium.org/blink/trunk@186645 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jiangj
Backport WebKit patch to fix input button paddings
It's a backport of the following patch by zalan@apple.com:
http://trac.webkit.org/changeset/162803

Subpixel Layout: Align <input type="button", submit> etc
(PushButtonPart) top and bottom paddings with <button>

https://bugs.webkit.org/show_bug.cgi?id=127640
Reviewed by Simon Fraser.

<button> sets padding-top: 2px and padding-bottom: 3px as
default values (html.css), while <input type="button"
(submit, etc) has the hardcoded values of 0, 0 and we
center the text using the available space. This results
in different baseline text position in normal cases. This
adjustment puts the <input type='button' rendering back
to the pre-subpixel layout state.

BUG=143304

Review URL: https://codereview.chromium.org/778833003

git-svn-id: svn://svn.chromium.org/blink/trunk@186630 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r186604.
TBR=oilpan-reviews,haraken
BUG=431689
NOTRY=true

Review URL: https://codereview.chromium.org/750863004

git-svn-id: svn://svn.chromium.org/blink/trunk@186622 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Add a DrawingRecorder for masks on inlines
BUG=423071

Review URL: https://codereview.chromium.org/780883002

git-svn-id: svn://svn.chromium.org/blink/trunk@186611 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Make getComputedStyle optimization work for adjacent combinators.
Recalc style was avoided if none of the ascendants needed style recalc or
style invalidation. That did not catch the cases where SubtreeStyleChange
is propagated to siblings when the node or some of its siblings have tried
to match selectors with adjacent combinators (propagation happens in
ContainerNode::checkForChildrenAdjacentRuleChanges()).

We change the condition for recalc to include the case where we have an
ascendant which has children that needs recalc, and at the same time has
children that tried to match some selector with an adjacent combinator.
For that case a SubtreeStyleChange may be propagated to a sibling which
is an ascendant of the element we are calling getComputedStyle on.

Likewise for ascendants which have children that needs style invalidation
and at the same time have children that tried to match selectors with
adjacent combinators.

R=esprehn@chromium.org
BUG=436064

Review URL: https://codereview.chromium.org/768533004

git-svn-id: svn://svn.chromium.org/blink/trunk@186599 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r186577.
TBR=oilpan-reviews,haraken
BUG=432469
NOTRY=true

Review URL: https://codereview.chromium.org/756423005

git-svn-id: svn://svn.chromium.org/blink/trunk@186593 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
fast/pagination/div-x-horizontal-bt-{rtl,ltr} should no longer be flaky.
The fix for issue 438864 rids us of the sporadic crash / assertion
failure.

The lines in TestExpectations looked wrong in any case, since they didn't
mention "Crash".

BUG=433848
R=andersr@opera.com

Review URL: https://codereview.chromium.org/770063003

git-svn-id: svn://svn.chromium.org/blink/trunk@186576 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Don't return false for RenderStyle::operator== while fonts load.
This caused an assert for baseRenderStyle in ActiveAnimations to hit. When
a font finishes loading, we trigger a full recalc of Document. That recalc
relies on getting a visual diff to trigger re-layout and paint and was
triggered by the Font::operator==. Instead, we remove the false return from
that operator and explicitly check if font loading status changed in
RenderStyle::diffNeedsFullLayoutAndPaintInvalidation().

R=eae@chromium.org
BUG=433765

Review URL: https://codereview.chromium.org/754743004

git-svn-id: svn://svn.chromium.org/blink/trunk@186572 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: add eager tracing stack depth checks.
To prevent runaway system stack use due to too eager unrolling of
trace() calls during marking, add tracking of recursive depth and
fall back to using the explicit mark stack if a limit is
exceeded.

Eager tracing isn't currenty enabled by default, so no extra overhead
for Oilpan trunk added. Set ENABLE_EAGER_TRACING_BY_DEFAULT to 1 to
near-universally enable eager tracing.

R=
BUG=420515

Review URL: https://codereview.chromium.org/783513002

git-svn-id: svn://svn.chromium.org/blink/trunk@186553 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Remove RenderFlowThread::offsetFromLogicalTopOfFirstRegion().
What RenderBlock::offsetFromLogicalTopOfFirstPage() does via its
layout state also suffices for flowthread-based multicol.

This also made 'flow thread layout state' vanish into thin air.

R=jchaffraix@chromium.org

Review URL: https://codereview.chromium.org/775753002

git-svn-id: svn://svn.chromium.org/blink/trunk@186532 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Remove duplicated code for image-strip computation in InlineFlowBoxPainter
The code to compute the "strip"/"slice" of an inline was duplicated for
the border, mask and fill cases.
Move this code to a new method paintRectForImageStrip.

BUG=423071

Review URL: https://codereview.chromium.org/752373003

git-svn-id: svn://svn.chromium.org/blink/trunk@186531 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jiangj
Tweak NSUserActivity forward declaration
Change property from webPageURL to webpageURL as recommended by Apple.
(Using webPageURL will trigger warning on console.)

Review URL: https://codereview.chromium.org/775313002

Cr-Commit-Position: refs/heads/master@{#306862}
jiangj
Suppress GetFallbackFontFamilies spam on Mac
BUG=439039

Review URL: https://codereview.chromium.org/767223003

Cr-Commit-Position: refs/heads/master@{#306848}
fs
Remove duplicated entry from LeakExpectations
Once should be enough...

TBR=schenney@chromium.org
NOTRY=true

Review URL: https://codereview.chromium.org/771513003

git-svn-id: svn://svn.chromium.org/blink/trunk@186516 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: prevent eager tracing of Node and RenderObjects.
If eager tracing is enabled, we do not want to eagerly trace Node or
RenderObject object structures; it consumes too much system stack space
for unclear gains. Add declarations to disable it.

R=haraken
BUG=420515

Review URL: https://codereview.chromium.org/778643002

git-svn-id: svn://svn.chromium.org/blink/trunk@186515 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Make getComputedStyle's pseudoElt argument nullable again
The getComputedStyle IDL was synced with the spec in r186258:
https://codereview.chromium.org/765123002

This caused a performance regression in a Dromaeo test:
http://dromaeo.com/?jslib-style-jquery

The likely cause is that jQuery passes null for the pseudoElt argument:
https://github.com/jquery/jquery/search?q=getComputedStyle

With a non-nullable pseudoElt, null is converted to "null", which makes
a measurable difference. Make it nullable again to avoid the problem.

There's no observable difference, because only a pseudoElt beginning
with a : actually does anything.

BUG=438109

Review URL: https://codereview.chromium.org/774243003

git-svn-id: svn://svn.chromium.org/blink/trunk@186514 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Add virtual/slimmingpaint/.../hebrew-selection.html to LeakExpectations
BUG=438955
TBR=dominicc@chromium.org

Review URL: https://codereview.chromium.org/778963002

git-svn-id: svn://svn.chromium.org/blink/trunk@186502 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Pixel-snap the bounds in BoxPainter::boundsForDrawingRecorder
A snapped paintRect is used when theme-elements are painted in
BoxPainter::paintBoxDecorationBackgroundWithRect.

BUG=423071, 438281

Review URL: https://codereview.chromium.org/778653002

git-svn-id: svn://svn.chromium.org/blink/trunk@186501 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix GC_PROFILE_MARKING compilation.
Fix build after r186355.

R=haraken
BUG=420515
NOTRY=true

Review URL: https://codereview.chromium.org/777173003

git-svn-id: svn://svn.chromium.org/blink/trunk@186498 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Don't delete a flow thread just because it becomes childless.
This is a revert of overzealous cleanup done in
https://codereview.chromium.org/769093002
Let's update the comment instead. A flow thread needs to exist as long
as its parent multicol/paged container exists. A flowthread's lifespan
does not depend on its children.

R=jchaffraix@chromium.org
BUG=438573

Review URL: https://codereview.chromium.org/776653003

git-svn-id: svn://svn.chromium.org/blink/trunk@186484 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
De-flake fast/multicol/split-in-top-margin.html
Cannot really trust Ahem. It behaves differently on different platforms.
Set a line height instead, and bottom-align the inline-block, so that we
don't have to worry about a descender of unpredictable height.
Use regular blocks in the ref.

Modified the second test slightly (reduce height by 1px), so that the
line doesn't quite fit (which was typically the case before my
changes, because of the descender, which by the way was assumed
to be 3px in the test expectation).

BUG=438757
R=dsinclair@chromium.org

Review URL: https://codereview.chromium.org/756203005

git-svn-id: svn://svn.chromium.org/blink/trunk@186466 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Deprecate getMatchedCSSRules()
Intent to Deprecate:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/fd-QLCiLESQ/_mfowSsRR8oJ

BUG=437569

Review URL: https://codereview.chromium.org/764083002

git-svn-id: svn://svn.chromium.org/blink/trunk@186451 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Dispose of DOMTimer upon explicit ExecutionContext unregistration.
Follow up on r186385 and explicitly dispose&stop a DOMTimer when it is
removed from its associated ExecutionContext. Needed for Oilpan, as the
now-GCed object will only later be finalized.

R=haraken
BUG=340522

Review URL: https://codereview.chromium.org/766183004

git-svn-id: svn://svn.chromium.org/blink/trunk@186425 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Have PingLoader gracefully self-dispose.
Follow up on r186373 and correctly dispose of a running PingLoader once
it gets a notification indicating that the ping transmission has completed.
We want to cancel loading at that point.

R=haraken
BUG=340522

Review URL: https://codereview.chromium.org/773173002

git-svn-id: svn://svn.chromium.org/blink/trunk@186420 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ljagielski
Linux: fix saving window state in fluxbox.
DesktopWindowTreeHostX11::OnWMStateUpdated(): assume that none of the
_NET_WM_STATE atoms are set if the _NET_WM_STATE window property is missing.
Fluxbox removes the _NET_WM_STATE window property if none of the _NET_WM_STATE
atoms are set.

BUG=437816, 411705

Review URL: https://codereview.chromium.org/764373002

Cr-Commit-Position: refs/heads/master@{#306595}
sigbjornf
Oilpan: enable eager tracing of common animation objects.
Using the ability to declare class types as eagerly traceable during
marking, annotate common Web Animation classes as such.

This halves the marking time for three blink_perf.animation tests on
Linux + Windows:

 - api-balls-keyframe-animations.html
 - api-set-current-time-balls-keyframe-animations.html
 - balls-keyframe-animations.html

No regressions (or signficant improvements) on other tests.

R=kouhei,haraken
BUG=420515

Review URL: https://codereview.chromium.org/758533004

git-svn-id: svn://svn.chromium.org/blink/trunk@186410 bbb929c8-8fbe-4397-9dbb-9b2b20218538
andersr
Make CSSToStyleMap static.
CSSToStyleMap currently exists as a member on StyleResolverState---wasting
space and polluting StyleResolverState with getters, initializers, etc.
for no good reason.

We may as well pass the StyleResolverState as a parameter, since that is
always available in all cases where CSSToStyleMap is used.

Note that CSSToStyleMap is currently used for three things, and for each
of those things the generated code will expect functions with a certain
signature:

 * FillLayers (state is passed).
 * Animations (state is not passed).
 * NinePieceImages (state is passed).

R=timloh@chromium.org

Review URL: https://codereview.chromium.org/772043003

git-svn-id: svn://svn.chromium.org/blink/trunk@186408 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Handle interpolation of SVG <paint> 'currentColor' w/ Web/CSS Animations
Normalize 'currentColor' to <rgbcolor>, and then interpolate that. This
is similar to how color properties work wrt 'currentColor'.
'currentColor' as a fallback is still left as non-interpolated.

BUG=436772

Review URL: https://codereview.chromium.org/767593002

git-svn-id: svn://svn.chromium.org/blink/trunk@186406 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Make Window.offscreenBuffering non-enumerable
This is in order to see how much enumeration contributes to the 0.18% usage:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/0LWNyj-edsQ/3TQq5vDyTHoJ

BUG=438370

Review URL: https://codereview.chromium.org/777453003

git-svn-id: svn://svn.chromium.org/blink/trunk@186405 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
IDL: Support runtime enabled overloads affecting Function.length
Before this CL, a runtime enabled overload with fewer required arguments
than any non-runtime enabled overload resulted in an error from the IDL
compiler, since such an overload would change the correct Function.length
value (runtime) in a way that wasn't supported.

Since such overloads are now becoming a reality, add support for them by
generating a simple function that returns the correct Function.length
value depending on whether features are enabled.

BUG=437885

Review URL: https://codereview.chromium.org/751223003

git-svn-id: svn://svn.chromium.org/blink/trunk@186393 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: support eager tracing of objects when marking.
This adds support for eager tracing of objects when marking. That is,
instead of pushing an unmarked object's trace callback onto a marker
stack for later processing, the trace callback is invoked there & then.
This may enable inlining of eager trace() methods at their call sites,
leading to potentially faster marking overall.

Eager tracing runs counter to the common approach of GC marking passes,
where an explicit mark stack is used. The marking phase pushes the
trace callbacks of unmarked objects onto this explicit stack, performing
instead an iterative deepening traversal of the object graph. This
ensures bounded system stack use, and any overflow of the marker stack
can be explicitly handled. The use of eager tracing must be carefully
considered with respect to the system stack use that it will bring:
uncontrollably deep object structures should not be eagerly traced as
that will risk overflowing the system stack at little or no gain. The
GC does not have a recovery or trapping mechanism against such overflows.

To eagerly call trace() over GCed objects at class type T, you declare
a specialization of the boolean-valued TraceEagerlyTrait<T> trait.

The default is currently not to perform any eager tracing.

R=kouhei,haraken
BUG=420515

Review URL: https://codereview.chromium.org/765673004

git-svn-id: svn://svn.chromium.org/blink/trunk@186355 bbb929c8-8fbe-4397-9dbb-9b2b20218538
andersr
Delay construction of StyleResolverState until after style sharing.
In some (synthetic) cases, style sharing is so efficient that the
construction of StyleResolverState negatively impacts performance.
Since we only need an ElementResolveContext (plus some parent information)
to determine style sharing, we can delay the StyleResolverState
construction until after that.

R=rune@opera.com
BUG=437281

Review URL: https://codereview.chromium.org/772803002

git-svn-id: svn://svn.chromium.org/blink/trunk@186346 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Make Document.inputEncoding an explicit alias of Document.characterSet
Document.inputEncoding has been revived in the DOM Standard:
https://www.w3.org/Bugs/Public/show_bug.cgi?id=27435
https://dom.spec.whatwg.org/#document

Drop the FIXME in XMLHttpRequest::send, as per spec the charset should
always be UTF-8:
https://xhr.spec.whatwg.org/#the-send()-method

This is internal refactoring; no observable change intended.

Review URL: https://codereview.chromium.org/761113003

git-svn-id: svn://svn.chromium.org/blink/trunk@186333 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Add fast/text to the Slimming Paint virtual testsuite
fast/text/selection-hard-linebreak.html:
  Waiting for FramePainter chunks/changes.

fast/text/whitespace/normal-after-nowrap-breaking.html (Mac):
  Off-by-one when painting checkbox. Rounding?

Duplicate test expectations where they exist.

BUG=423071

Review URL: https://codereview.chromium.org/761953002

git-svn-id: svn://svn.chromium.org/blink/trunk@186329 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Remove FlowThreadController and relateds.
There's no need for FlowThreadController,
CurrentRenderFlowThreadMaintainer or CurrentRenderFlowThreadDisabler.

Store the current flow thread in LayoutState instead, so that
RenderObject::locateFlowThreadContainingBlock() can still find the
flow thread quickly during layout.

Also removed CSS regions relic from collapseAnonymousBlockChild().

R=jchaffraix@chromium.org

Review URL: https://codereview.chromium.org/769093002

git-svn-id: svn://svn.chromium.org/blink/trunk@186328 bbb929c8-8fbe-4397-9dbb-9b2b20218538
tmoniuszko
Fix icon on Windows XP taskbar
BUG=437829

Review URL: https://codereview.chromium.org/772533002

Cr-Commit-Position: refs/heads/master@{#306389}
rune
Removed StyleEngine::m_usesSiblingRulesOverride.
Removed member which was always false along with its setter.

R=mstensho@opera.com

Review URL: https://codereview.chromium.org/772783002

git-svn-id: svn://svn.chromium.org/blink/trunk@186295 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove CSSCharsetRule
Intent to Deprecate and Remove:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/lwq9fhV5uF8/ikrrc76SvG4J

BUG=438147

Review URL: https://codereview.chromium.org/756313002

git-svn-id: svn://svn.chromium.org/blink/trunk@186292 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Get rid of getCTM/setCTM pair in Font::paintGlyphsVertical
GC::setCTM is not safe to use in the presence of active recordings, since
it will end up accumulating the saved matrix on the currently active
SkCanvas. Use a GCSS to save/restore the CTM instead.

Review URL: https://codereview.chromium.org/748863004

git-svn-id: svn://svn.chromium.org/blink/trunk@186291 bbb929c8-8fbe-4397-9dbb-9b2b20218538
tmoniuszko
Make sure new maximized window gets activated
BUG=401818
TEST=Maximize window and start typing in omnibox. Open new window from jump list. Check if new window is active and it's possible to type in omnibox.

Review URL: https://codereview.chromium.org/725953002

Cr-Commit-Position: refs/heads/master@{#306359}
sigbjornf
Oilpan: remove unused tracking of freelist tails.
The implementation no longer needs access to the last entry of a freelist,
hence FreeList no longer needs to record it.

R=
BUG=420515

Review URL: https://codereview.chromium.org/761243003

git-svn-id: svn://svn.chromium.org/blink/trunk@186270 bbb929c8-8fbe-4397-9dbb-9b2b20218538
joaoe
Properly handle defers loading in WebURLLoaderImpl for data uris
BUG=418116

Review URL: https://codereview.chromium.org/737763002

Cr-Commit-Position: refs/heads/master@{#306274}
philipj
Sync the getComputedStyle() IDL with the spec
http://dev.w3.org/csswg/cssom/#extensions-to-the-window-interface

Firefox and IE already throw exceptions for getComputedStyle(),
getComputedStyle(null), getComputedStyle(undefined) and
getComputedStyle(document);

Previously, getComputedStyle() would fail the ASSERT(elt) in
LocalDOMWindow::getComputedStyle().

Review URL: https://codereview.chromium.org/765123002

git-svn-id: svn://svn.chromium.org/blink/trunk@186258 bbb929c8-8fbe-4397-9dbb-9b2b20218538
joaoe
Properly suspend HTMLDocumentParser
When an ExecutionContext was suspended, the HTMLDocumentParser could
still handle parsed chunks, incrementaly build the tree, trigger resource
loads, and build iframes with new clean ExecutionContexts which were not
suspended, therefore triggering ASSERT(m_suspended) inside SuspendableTimer.

Also moved some Document specific code from ScopedPageLoadDeferrer to
FrameLoader, where it logically feels better so it's more related to the
defersLoading state handling, and so it makes the Page to FrameHost
migration easier.

BUG=418116

Review URL: https://codereview.chromium.org/625583002

git-svn-id: svn://svn.chromium.org/blink/trunk@186256 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Mark http/tests/appcache/different-https-origin-resource-main.html as passing
It is no longer failing:
http://test-results.appspot.com/dashboards/flakiness_dashboard.html#tests=http%2Ftests%2Fappcache%2Fdifferent-https-origin-resource-main.html

BUG=424974
TBR=dstockwell@chromium.org

Review URL: https://codereview.chromium.org/761923002

git-svn-id: svn://svn.chromium.org/blink/trunk@186216 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove some unused WebRange functions
These were introduced in 2009 but have become unused since:
http://trac.webkit.org/changeset/50687

Review URL: https://codereview.chromium.org/763043004

git-svn-id: svn://svn.chromium.org/blink/trunk@186191 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove the unused LocalFrame::documentTypeString() function
It became unused in a previos createFullMarkup() cleanup:
https://src.chromium.org/viewvc/blink?revision=179244&view=revision

Review URL: https://codereview.chromium.org/752673003

git-svn-id: svn://svn.chromium.org/blink/trunk@186188 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove the tagNamesToSkip argument on MarkupAccumulator::serializeNodes
The tagNamesToSkip vector was introduced in WebKit in 2012:
http://trac.webkit.org/changeset/116685

It was used by Source/WebCore/loader/archive/cf/LegacyWebArchive.cpp,
which was removed in Blink in 2013:
https://src.chromium.org/viewvc/blink?revision=147676&view=revision

Review URL: https://codereview.chromium.org/750353008

git-svn-id: svn://svn.chromium.org/blink/trunk@186186 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Revert "Animations: Pass animation timing function through to compositor."
This reverts commit 76fdebf3158ef64f73f3f882a669b30756cffc60.

It breaks webkit_unit_tests on Windows debug bots,

  https://build.chromium.org/p/chromium.webkit/builders/WebKit%20Win7%20%28dbg%29/builds/8536

TBR=ikilpatrick@chromium.org,tkent,dstockwell,samli
BUG=437183,417909
NOTRY=true

Review URL: https://codereview.chromium.org/768653002

git-svn-id: svn://svn.chromium.org/blink/trunk@186138 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove unused expectations for fast/css/first-letter.html
These are no longer needed as of r185405:
https://codereview.chromium.org/672953002

BUG=391288
R=dsinclair@chromium.org

Review URL: https://codereview.chromium.org/755583009

git-svn-id: svn://svn.chromium.org/blink/trunk@186127 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Mark http/tests/media/media-source/mediasource-play-then-seek-back.html as flaky
There is a likely cause, but mark as flaky until fixed and confirmed.

BUG=437297
TBR=wolenetz@chromium.org

Review URL: https://codereview.chromium.org/762023002

git-svn-id: svn://svn.chromium.org/blink/trunk@186125 bbb929c8-8fbe-4397-9dbb-9b2b20218538
andersr
Always propagate direction and writing-mode from <body>.
Even though the specification says that direction/writing-mode are *not* to
be propagated from <body>, all major browsers currently do this.

In Blink, when opposing direction/writing-modes are explicitly set on both the
root element and <body>, the direction/writing-mode of the root element is
propagated to the view, ignoring what is specified on <body>. This is different
from Firefox and IE, where the direction/writing-mode is always propagated from
the computed style of <body>.

This patch aligns Blink's behavior to that of Firefox and IE, such that
we always propagate from <body>.

R=rune@opera.com

Review URL: https://codereview.chromium.org/758073003

git-svn-id: svn://svn.chromium.org/blink/trunk@186115 bbb929c8-8fbe-4397-9dbb-9b2b20218538
andersr
Make fast/multicol/break-properties independent of the size of <body>.
This test currently relies on our special behavior when <html> and <body>
explicitly disagree on 'direction' or 'writing-mode'. I wish to change
that behavior, so I removed that dependency here by checking which column
the boxes are placed in rather than its exact position in two dimensions.

To simplify calculations, the body margin is now equal to the column-gap.
Also, since it has no effect on the test, the multicol container is now
much smaller to avoid overflow in the vertical-lr/rl versions of the test.

R=mstensho@opera.com

Review URL: https://codereview.chromium.org/764503002

git-svn-id: svn://svn.chromium.org/blink/trunk@186112 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Include stdio.h for stderr.
TBR=trchen@chromium.org

Review URL: https://codereview.chromium.org/763053002

git-svn-id: svn://svn.chromium.org/blink/trunk@186097 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Get rid of a lot of special code for RenderFlowThread invalidation.
Don't force a RenderFlowThread to become a paint invalidation container.
In fact, that should never happen.

What's still missing is to handle cases where an invalidation container
is inside the multicol container. That has never worked.

The NULL-check in LinkHighlight::attachLinkHighlightToCompositingLayer()
is no longer needed with this CL.

BUG=359877
R=chrishtr@chromium.org,jchaffraix@chromium.org

Review URL: https://codereview.chromium.org/757933003

git-svn-id: svn://svn.chromium.org/blink/trunk@186091 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r186085.
R=haraken
BUG=419269
NOTRY=true

Review URL: https://codereview.chromium.org/726673003

git-svn-id: svn://svn.chromium.org/blink/trunk@186089 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Allow SVGPathStringSource to be allocated on the stack
Neither of its two users require it to be heap-allocated.

Review URL: https://codereview.chromium.org/760603002

git-svn-id: svn://svn.chromium.org/blink/trunk@186069 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
add ccache support to gn builds
This can be used to inject icecc also, via the CCACHE_PREFIX environment
variable.

BUG=394501

Review URL: https://codereview.chromium.org/742953007

Cr-Commit-Position: refs/heads/master@{#305912}
rune
Store :last/first-child state as restyle flags.
firstChildState and lastChildState were set to true on RenderStyle if we
had tried to match :first-child or :last-child on the element for which we
were constructing the RenderStyle. But also, when trying to match
:last-child on siblings or ascendants of the element, we set this flag on
their RenderStyle objects respectively.

That was problematic for a number of reasons. First, the state is used to
check if an element needs a style recalc when nodes are added or removed,
and that recalc is also necessary for if you have

:last-child { display: none }

in which case you have no RenderStyle. Second, the flag was reset as part
of recalculating style for a RenderStyle whose descendants depended on its
:last-child state. That flag would not be set again if the descendants
themselves didn't need a recalc. Last, the flag inconsistency caused
RenderStyle operator== to incorrectly return false, causing an assert in
the animations code.

This CL converts these RenderStyle state flags to DynamicRestyleFlags on
Element instead. That means they will give more false positives about the
need to recalculate for last-child/first-child mutations since they will
not be reset that often. They will be cleared along with the other restyle
flags when the element is removed from the tree. Since they will not be
reset on style recalc, they will also be unconditionally set when trying
to match the selector, not only when it matches.

BUG=435481,100559,435534

Review URL: https://codereview.chromium.org/758523002

git-svn-id: svn://svn.chromium.org/blink/trunk@186043 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Simplify SVGPathByteStream-based path-query functions
The functions getSVGPathSegAtLengthFromSVGPathByteStream,
getTotalLengthOfSVGPathByteStream and getPointAtLengthOfSVGPathByteStream
all returns a bool that their (single) caller does not look at.
Convert to just return the computed value instead.

Review URL: https://codereview.chromium.org/751323002

git-svn-id: svn://svn.chromium.org/blink/trunk@186025 bbb929c8-8fbe-4397-9dbb-9b2b20218538
andersr
Remove RenderStyle member from FontBuilder.
The FontBuilder currently operates directly on RenderStyle every time a
font property is set. As indicated by the now-removed FIXME, this
is most unclean, and makes the FontBuilder not very attractive to use in
cases where you don't wish to spam the RenderStyle with setFontDescription
calls. (Example: FontBuilder::createFontForDocument).

This patch adds a FontDescription member instead, and changes
FontDescriptionChangeScope to act as a pure mark-if-dirty class to let
functions modify m_fontDescription directly, rather than through 'scope'.

R=dglazkov@chromium.org

Review URL: https://codereview.chromium.org/714163002

git-svn-id: svn://svn.chromium.org/blink/trunk@186023 bbb929c8-8fbe-4397-9dbb-9b2b20218538
andersr
Remove copy of CSSToLengthConversionData in FilterOperationResolver.
FilterOperationResolver currently adjusts a CSSToLengthConversionData with
the zoom it already has, which is pointless.

R=rune@opera.com

Review URL: https://codereview.chromium.org/756013002

git-svn-id: svn://svn.chromium.org/blink/trunk@186022 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Fix MEMORY_CACHE_STATS compilation.
Update MemoryCache::dumpLRULists() to work over the current representation
of MemoryCacheEntry and its attached resource.

This debug-only method wasn't updated as part of https://codereview.chromium.org/174523002 (r168851.)

R=dcheng,mkwst
BUG=

Review URL: https://codereview.chromium.org/758673002

git-svn-id: svn://svn.chromium.org/blink/trunk@186017 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove tabs and trailing whitspace in LayoutTests/dom/.../*.js
Command to reproduce:

$ find LayoutTests/dom -name '*.js' | while read f; do sed 's/\t/    /g' < $f | git stripspace > tmp; mv tmp $f; done

R=mkwst@chromium.org

Review URL: https://codereview.chromium.org/756123002

git-svn-id: svn://svn.chromium.org/blink/trunk@186014 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Make Document.getElementsByName() argument non-optional
https://html.spec.whatwg.org/multipage/dom.html#document

It's already non-optional in IE and Firefox.

Review URL: https://codereview.chromium.org/756053004

git-svn-id: svn://svn.chromium.org/blink/trunk@186012 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
No quirky colors for border-top/left/right/bottom shorthands.
The only border shorthand that allows hashless colors in quirks mode is
border-color according to [1].

[1] http://quirks.spec.whatwg.org/#the-hashless-hex-color-quirk

R=timloh@chromium.org
BUG=391343

Review URL: https://codereview.chromium.org/755413002

git-svn-id: svn://svn.chromium.org/blink/trunk@185991 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove MediaError.MEDIA_ERR_ENCRYPTED
Intent to Remove:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/C3h1LApSVx8/G2s2OV5azvgJ

Review URL: https://codereview.chromium.org/724573004

git-svn-id: svn://svn.chromium.org/blink/trunk@185986 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Make arguments to NamedNodeMap methods non-optional
https://dom.spec.whatwg.org/#namednodemap

This changes Web-facing behavior, but these are alredy non-optional in
IE and Firefox so it's unlikely to break the Web.

There are use counters for all of these methods:
https://www.chromestatus.com/metrics/feature/timeline/popularity/306
https://www.chromestatus.com/metrics/feature/timeline/popularity/307
https://www.chromestatus.com/metrics/feature/timeline/popularity/308
https://www.chromestatus.com/metrics/feature/timeline/popularity/309
https://www.chromestatus.com/metrics/feature/timeline/popularity/310
https://www.chromestatus.com/metrics/feature/timeline/popularity/311
https://www.chromestatus.com/metrics/feature/timeline/popularity/312

NamedNodeMap.getNamedItem() has the highest usage, around 0.7%.

Review URL: https://codereview.chromium.org/758173002

git-svn-id: svn://svn.chromium.org/blink/trunk@185985 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Get rid of computeFloatRectForPaintInvalidation
All (real) implementations of this - except the one in RenderSVGRoot -
forward to the SVGRenderSupport helper. The helper in turn just walks the
ancestors and applies the transforms - until it reaches the SVG root, at
which point it "crosses the border" and starts mapping the rect using the
non-float methods (mapRectToPaintInvalidationBacking).
The ancestors-within-SVG walk is easy to transform into an iteration until
the SVG root is reached. The final rect can then be computed by mapping the
rect through the SVG root.

Review URL: https://codereview.chromium.org/741123002

git-svn-id: svn://svn.chromium.org/blink/trunk@185977 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Let NamedNodeMap take and return Attr instead of Node
https://dom.spec.whatwg.org/#namednodemap

The Attr arguments are also made non-optional.

This makes for less error handling in C++.

R=mkwst@chromium.org

Review URL: https://codereview.chromium.org/755213002

git-svn-id: svn://svn.chromium.org/blink/trunk@185973 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Use SubSelector as relation on left-most selector.
Selectors used to end with a Descendant relation in the left-most simple
selector. That didn't make any sense and it caused an accidental reset of
the adjacent flag in selectorList traversal during feature set updating.

R=chrishtr@chromium.org
BUG=435923

Review URL: https://codereview.chromium.org/751023002

git-svn-id: svn://svn.chromium.org/blink/trunk@185966 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Sync XMLSerializer IDL with spec
https://dvcs.w3.org/hg/innerhtml/raw-file/tip/index.html#the-xmlserializer-interface

R=sigbjornf@opera.com

Review URL: https://codereview.chromium.org/752153002

git-svn-id: svn://svn.chromium.org/blink/trunk@185947 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Mark fast/dom/HTMLImageElement/image-srcset-w-onerror.html as flaky
BUG=436436
TBR=yoav@yoav.ws

Review URL: https://codereview.chromium.org/757003002

git-svn-id: svn://svn.chromium.org/blink/trunk@185946 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Un-deprecate Element.setAttributeNodeNS()
It is back in the DOM Standard:
https://dom.spec.whatwg.org/#dom-element-setattributenodens

After discussion in a spec bug it seems best to leave it be:
https://www.w3.org/Bugs/Public/show_bug.cgi?id=27344

Review URL: https://codereview.chromium.org/750183005

git-svn-id: svn://svn.chromium.org/blink/trunk@185940 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Remove unnecessary RenderFlowThread usage and inclusion.
A RenderFlowThread is never out-of-flow positioned.
Also removed some unnecessary includes.

R=jchaffraix@chromium.org

Review URL: https://codereview.chromium.org/756943002

git-svn-id: svn://svn.chromium.org/blink/trunk@185939 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Clean up includes and forward-declarations in the flowthread / multicol files.
R=rune@opera.com

Review URL: https://codereview.chromium.org/752403003

git-svn-id: svn://svn.chromium.org/blink/trunk@185937 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Remove globalSVGPath* from SVGPathUtilities.cpp
All the globalSVGPath* globals, don't really help much since all the state
they carry are transient and not particularly expensive to recreate.
Doing this also allows us to get rid of the cleanup() method on the various
classes involved, since this is now handled by the regular scoping rules.
(In most/many cases this means that cleanup isn't necessary anymore,
because the fields being "cleaned up" previously were types without
destructors). Inline a few of the constructors to benefit more from this.
Take this opportunity to make these classes more RAII-like, and replace
pointers with references.

Review URL: https://codereview.chromium.org/734053005

git-svn-id: svn://svn.chromium.org/blink/trunk@185899 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
RenderBox::updateLogicalHeight() doesn't need to be virtual.
R=wangxianzhu@chromium.org

Review URL: https://codereview.chromium.org/755603002

git-svn-id: svn://svn.chromium.org/blink/trunk@185892 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Add a UseCounter for Document.getOverrideStyle()
The arguments are ignored and it always return null, so simplify.

Review URL: https://codereview.chromium.org/749273002

git-svn-id: svn://svn.chromium.org/blink/trunk@185887 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Use IDL union types for CanvasRenderingContext2D.{fill,stroke}Style
This gets rid of the custom bindings for said attributes by using the
union type support in the bindings codegen.
Also rework the resolution of 'currentColor' by using
parseColorOrCurrentColor directly in set{Fill,Stroke}Style, rather than
first parse and then resolve.
This allows CanvasStyle to cleaned up and shrunk a bit.
Also remove code from CanvasStyle that became dead when the legacy
set{Fill,Stroke}Color methods was removed (CMYKA, float RGBA,
gray-level, override alpha).

BUG=430337
BUG=363180,363181

Review URL: https://codereview.chromium.org/752083003

git-svn-id: svn://svn.chromium.org/blink/trunk@185879 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Ignore <rt> children when determining WebVTT text direction (LTR/RTL)
In the previous implementation of determineTextDirection the
node.localName() == rtTag check would always be false, because the
isTextNode() check would guarantee that localName() was a null String.

Even if it had worked, it would only have skipped the <rt> elements
themselves, not its descendant text nodes.

Rewrite the traversal to skip the children of <rt>.

The two cases added to captions-rtl.vtt would previously detect the
wrong text direction.

Review URL: https://codereview.chromium.org/747363003

git-svn-id: svn://svn.chromium.org/blink/trunk@185878 bbb929c8-8fbe-4397-9dbb-9b2b20218538
andersr
Respect fallback colors when interpolating text-decoration-color.
Currently, we interpolate the incorrect colors if one of the fallback
colors (other than currentColor) are used for text decoration. This happens
because we bypass the fallback code when creating the AnimatableValues.

This patch moves the color retrieving code for text decoration into
the main RenderStyle::colorIncludingCallback function, and changes callers
to use visitedDependentColor/colorIncludingFallback also for
CSSPropertyTextDecorationColor. This is better, because you don't have to
do anything special with the text decoration color compared to all other
colors.

R=alancutter@chromium.org
BUG=435546

Review URL: https://codereview.chromium.org/746173002

git-svn-id: svn://svn.chromium.org/blink/trunk@185870 bbb929c8-8fbe-4397-9dbb-9b2b20218538
andersr
Use a StyleBuilderConverter function for line-height.
The line-height property does not need a custom StyleBuilder function (at
least not anymore).

R=timloh@chromium.org

Review URL: https://codereview.chromium.org/748073002

git-svn-id: svn://svn.chromium.org/blink/trunk@185867 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Have ProcessingInstruction's XSLT event listener keep a weak backreference
To avoid an unnecessary strong-reference cycle between
ProcessingInstruction and its owned "XSLT event listener", have the
latter keep an effectively-weak reference. ProcessingInstruction is
responsible to detach itself and clear that weak reference when it
is finalized.

R=haraken
BUG=367689

Review URL: https://codereview.chromium.org/738443003

git-svn-id: svn://svn.chromium.org/blink/trunk@185858 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Replace HTMLMediaElement::isActive() with Node::inActiveDocument()
The m_active flag was previously named m_inActiveDocument:
https://codereview.chromium.org/26270004

Because m_active is updated in HTMLMediaElement::insertedInto(),
removedFrom() and stop(), HTMLMediaElement::isActive() it is very
similar to Node::inActiveDocument(), with the difference that in the
early stages of a Document's life, inActiveDocument() is false while
isActive() is true.

In RenderVideo, the difference is irrelevant, because nothing is being
rendered at that point in the lifecycle.

The usage in HTMLMediaElement::endIgnoringTrackDisplayUpdateRequests()
was added to fix failing tests in
https://bugs.webkit.org/show_bug.cgi?id=105606:

media/track/tracklist-is-reachable.html
media/track/text-track-cue-is-reachable.html
media/track/text-track-is-reachable.html
media/track/track-webvtt-tc005-header-comment.html
media/track/track-webvtt-tc004-magic-header.html
media/track/track-webvtt-tc016-align-positioning.html

All of these are still passing.

Review URL: https://codereview.chromium.org/594533002

git-svn-id: svn://svn.chromium.org/blink/trunk@185854 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Update a result vector when sampling animation effects.
Switch AnimationEffect::sample() from being functional and return a
new result vector to instead take a result vector to update. This lets animation
loops that repeatedly sample to reuse their vector allocations.

R=dstockwell,shans
BUG=
NOTRY=true

Review URL: https://codereview.chromium.org/732153003

git-svn-id: svn://svn.chromium.org/blink/trunk@185840 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r185817.
TBR=oilpan-reviews,haraken
BUG=434733
NOTRY=true

Review URL: https://codereview.chromium.org/754543002

git-svn-id: svn://svn.chromium.org/blink/trunk@185839 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Need to reset enclosingPaginationLayer when a RenderLayer is removed from the tree.
BUG=434728
R=chrishtr@chromium.org

Review URL: https://codereview.chromium.org/744313002

git-svn-id: svn://svn.chromium.org/blink/trunk@185827 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Drop RenderObject::hasBlendMode
Remove RenderObject::hasBlendMode in favor of RenderStyle::hasBlendMode.
Also remove the gating on the RuntimeEnabledFeatures feature in
RenderStyle, since this should be handled by the CSS parser already.
Gating also removed for the 'isolation' property.

Review URL: https://codereview.chromium.org/746163002

git-svn-id: svn://svn.chromium.org/blink/trunk@185823 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Add a DrawingRecorder for ellipsis boxes
BUG=423071

Review URL: https://codereview.chromium.org/746223002

git-svn-id: svn://svn.chromium.org/blink/trunk@185813 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Sync the documentation of seekable() with the MediaSource specification
https://www.w3.org/Bugs/Public/show_bug.cgi?id=27296

Also tweak an assert to match the preceding comment.

BUG=432051
R=henriks@opera.com

Review URL: https://codereview.chromium.org/733453002

git-svn-id: svn://svn.chromium.org/blink/trunk@185799 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove <body bgproperties=fixed>
Intent to Deprecate and Remove:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/YFCis6fR9I4/abCd0j92NGsJ

BUG=434627
R=pdr@chromium.org

Review URL: https://codereview.chromium.org/750523002

git-svn-id: svn://svn.chromium.org/blink/trunk@185780 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Get rid of LayerPainter::paintTransformedLayerIntoFragments().
Now we have a more unified code path for multicol and non-multicol.

Note that we no longer clip against the "paint dirty rect" here.
That was wrong anyway, since the "paint dirty rect" is in physical
pixels, while what it was clipped against (parent clip rectangle) was
not transformed. Instead of adding code that transforms or
inverse-transforms one of the rectangles, we can just as well trust
paintFragmentWithPhase() to do proper clipping when we finally get there.

We also make an effort not to meddle with layers that are not within
paintingInfo.rootLayer, since that's going to produce incorrect results
anyway.

R=chrishtr@chromium.org

Review URL: https://codereview.chromium.org/731933004

git-svn-id: svn://svn.chromium.org/blink/trunk@185777 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Make arguments to some Document and Element methods non-optional
https://dom.spec.whatwg.org/#document
https://dom.spec.whatwg.org/#element

The modified missing-arguments.html tests all pass in IE11 and Firefox
Nightly 36.0a1, i.e. these arguments are already non-optional in those
browsers, which limits the possible breakage to WebKit-specific content.

Note that Document.createAttributeNS()'s qualifiedName argument should
not be nullable per spec, but that is an orthogonal issue.

BUG=325922

Review URL: https://codereview.chromium.org/737133002

git-svn-id: svn://svn.chromium.org/blink/trunk@185773 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove NodeIterator.expandEntityReferences / TreeWalker.expandEntityReferences
Intent to Remove:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/-ZO3eja4maA/86T13XJwQpUJ

BUG=367866

Review URL: https://codereview.chromium.org/744363002

git-svn-id: svn://svn.chromium.org/blink/trunk@185771 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Revive tests for Document.createAttributeNS() and Element.setAttributeNodeNS()
This brings back some tests removed in
https://codereview.chromium.org/158593003 and
https://codereview.chromium.org/143173003

They modify some of the same tests, so reverting together is simpler.

BUG=341296,341830
R=pdr@chromium.org

Review URL: https://codereview.chromium.org/740223003

git-svn-id: svn://svn.chromium.org/blink/trunk@185721 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Mark media/video-seeking.html as flaky
BUG=435342
TBR=fs@opera.com

Review URL: https://codereview.chromium.org/745073002

git-svn-id: svn://svn.chromium.org/blink/trunk@185717 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Revive tests for Attr.ownerElement
This brings back some tests removed in
https://codereview.chromium.org/124643003

The removal didn't work out.

BUG=305105,353104

Review URL: https://codereview.chromium.org/746433002

git-svn-id: svn://svn.chromium.org/blink/trunk@185698 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Add fast/inline-block to the slimmingpaint virtual testsuite
BUG=423071

Review URL: https://codereview.chromium.org/736263003

git-svn-id: svn://svn.chromium.org/blink/trunk@185683 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Remove m_hasBlendMode from BeginTransparencyDisplayItem
Reduces redundancy, since:

 (m_blendMode != WebBlendModeNormal) <=> m_hasBlendMode

BUG=423071

Review URL: https://codereview.chromium.org/743523005

git-svn-id: svn://svn.chromium.org/blink/trunk@185653 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Add RenderSVGBlock::mapRectToPaintInvalidationBacking
The two subclasses of RenderSVGBlock - RenderSVGForeignObject and
RenderSVGText - have identical implementations (overrides) of the
mapRectToPaintInvalidationBacking method (modulo a minor difference
in how they call computeFloatRectForPaintInvalidation).
Move the RenderSVGText implementation to RenderSVGBlock.

Review URL: https://codereview.chromium.org/722343006

git-svn-id: svn://svn.chromium.org/blink/trunk@185618 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Un-deprecate Attr.nodeValue and Attr.textContent
These are both back in the DOM Standard:
https://dom.spec.whatwg.org/#attr

Spec bugs:
https://www.w3.org/Bugs/Public/show_bug.cgi?id=26596
https://www.w3.org/Bugs/Public/show_bug.cgi?id=27363

These were deprecated in Blink before any of this happened:
https://codereview.chromium.org/253843002

It turns out that the usage of nodeValue in particular is far too high:
https://www.chromestatus.com/metrics/feature/timeline/popularity/348
https://www.chromestatus.com/metrics/feature/timeline/popularity/349

We're probably stuck with both forever, but they're trivial to support.

Keep the counters just to see if things change over time.

BUG=305105

Review URL: https://codereview.chromium.org/739193002

git-svn-id: svn://svn.chromium.org/blink/trunk@185606 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Deprecate <body bgproperties=fixed>
Intent to Deprecate and Remove:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/YFCis6fR9I4/abCd0j92NGsJ

The conclusion of the thread was to deprecate only in a first step.

BUG=434627

Review URL: https://codereview.chromium.org/723913003

git-svn-id: svn://svn.chromium.org/blink/trunk@185596 bbb929c8-8fbe-4397-9dbb-9b2b20218538
andersr
Remove all tests in fast/multicol/newmulticol/compare-with-old-impl.
These tests are no longer needed, as almost all of them are already run in
both implementations after the virtual/regionbasedmulticol suite was
created.

Only two tests are not run in both implementations (skipped for the old
implementation).

 * fast/multicol/newmulticol/multicol-becomes-regular-block.html
 * fast/multicol/newmulticol/regular-block-becomes-multicol.html

This patch simply enables those tests for the old implementation, to
continue to ensure equality between implementations via the shared
baseline.

Three compare-with-old-impl tests are skipped on Mac, which is very
strange, as the corresponding originals are reftests, and *not* skipped.
Possibly, the skipping is outdated, although I didn't verify that.

BUG=386567
R=mstensho@opera.com

Review URL: https://codereview.chromium.org/735003003

git-svn-id: svn://svn.chromium.org/blink/trunk@185583 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ljagielski
SearchEngineTabHelper: added delegate_ member initializer to constructor.
BUG=none

Review URL: https://codereview.chromium.org/735683002

Cr-Commit-Position: refs/heads/master@{#304789}
mstensho
RenderGrid needs to pop its LayoutState before relayout.
All other renderers do this, and so should RenderGrid. If the new
layout affects the presence of scrollbars (if overflow-[xy] is auto),
another layout pass may be required. Pushing two LayoutState objects
for the same object is unhealthy inside multicol, because the stack
in RenderFlowThread is implemented using a hash map, for some reason.

BUG=414456
R=chrishtr@chromium.org

Review URL: https://codereview.chromium.org/739743002

git-svn-id: svn://svn.chromium.org/blink/trunk@185577 bbb929c8-8fbe-4397-9dbb-9b2b20218538
msimonides
Don't crash when granting permissions to active tab.
It seems unlikely for active tab permissions to be granted to a tab that
is closing but on the other hand there is nothing that would prevent a
race condition in which the RenderView is destroyed before the
ExtensionMsg_UpdateTabSpecificPermissions message is processed.

The ExtensionMsg_{Update,Clear}TabSpecificPermissions message is changed
to a ROUTED message so that it is sent to the specific RenderView directly.
This removes the need to find the RenderView by tab_id which could fail.

BUG=396232

Review URL: https://codereview.chromium.org/708713003

Cr-Commit-Position: refs/heads/master@{#304784}
mathiash
Add WebContents source to methods in WebContentsDelegate
The added parameter helps us avoid a potential timing-related security issue. The UI can be instructed to open a new tab and show a dialog roughly at the same time, and since it's handled asynchronously the dialog may end up in front of the new tab. Knowing what web contents issued the dialog would allow us to prevent that from happening.

BUG=428793

Review URL: https://codereview.chromium.org/691823002

Cr-Commit-Position: refs/heads/master@{#304781}
philipj
Add UseCounters for access to and change of Attr's child Text nodes
https://www.w3.org/Bugs/Public/show_bug.cgi?id=26609

This is in order to help determine if Attr could be made into a
child-less Node like it is in Gecko.

Review URL: https://codereview.chromium.org/723393005

git-svn-id: svn://svn.chromium.org/blink/trunk@185561 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Move InlineTextBox::rotation to TextPainter
This helper method is static and only used from (text) paint(ing) code.

BUG=412088

Review URL: https://codereview.chromium.org/734313004

git-svn-id: svn://svn.chromium.org/blink/trunk@185558 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Pass PaintBehaviorRenderingClipPathAsMask in PaintInfo
Passing PaintInfo to SVGPaintServer::updateGraphicsContext (instead of
GraphicsContext), PaintInfo::paintBehavior can be used instead of the
view's.
This also reduces SVGRenderSupport::isRenderingClipPathAsMaskImage to a
single/simple bit-test, which should help some workloads.

BUG=434376

Review URL: https://codereview.chromium.org/721073003

git-svn-id: svn://svn.chromium.org/blink/trunk@185544 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove Text.replaceWholeText()
Intent to Deprecate and Remove:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/OzNUDCZy3qY/UejnVzoMrfQJ

BUG= 434408

Review URL: https://codereview.chromium.org/733943004

git-svn-id: svn://svn.chromium.org/blink/trunk@185541 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Implement WindowTimers.set{Timeout,Interval} without [Custom]
This allows us to drop two fairly big and largely duplicated chunks of
custom bindings code in V8WindowCustom.cpp/V8WorkerGlobalScopeCustom.cpp.

As a consequence, some more logic is added to DOMWindowTimers.cpp, which
is now responsible for doing the "is this allowed?" checks, and creating
the ScheduledAction objects.

Review URL: https://codereview.chromium.org/721033004

git-svn-id: svn://svn.chromium.org/blink/trunk@185538 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Move TextPainter to core/paint/
Also clean out a bunch of unused includes from
core/rendering/InlineTextBox.cpp.

BUG=412088

Review URL: https://codereview.chromium.org/738863002

git-svn-id: svn://svn.chromium.org/blink/trunk@185534 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Un-deprecate APIs which have been un-removed in the DOM Standard
https://dom.spec.whatwg.org/#dom-attr-ownerelement
https://dom.spec.whatwg.org/#dom-document-createattributens

Element.setAttributeNodeNS() is also back in the spec, but is under
discussion: https://www.w3.org/Bugs/Public/show_bug.cgi?id=27344

Review URL: https://codereview.chromium.org/738833002

git-svn-id: svn://svn.chromium.org/blink/trunk@185531 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mathiash
Make WebContentsObserver pass more calls to Java.
BUG=428791

Review URL: https://codereview.chromium.org/686213003

Cr-Commit-Position: refs/heads/master@{#304613}
fs
Add fast/inline to virtual/slimmingpaint and make the tests pass
Minor collateral damage (for-range loop, removed redundant parens).

BUG=423071

Review URL: https://codereview.chromium.org/729523002

git-svn-id: svn://svn.chromium.org/blink/trunk@185516 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Move m_paintInvalidationBoundingBox into RenderSVGModelObject
All classes (directly) derived from RenderSVGModelObject [1] carry a
member 'FloatRect m_paintInvalidationBoundingBox', and relocating it
does increase the size of any of the derived classes.
This will allow reducing the number of virtual calls in the paint
invalidation code-path, and possibly elsewhere.

[1] RenderSVGShape, RenderSVGImage and RenderSVGContainer

Review URL: https://codereview.chromium.org/731243002

git-svn-id: svn://svn.chromium.org/blink/trunk@185511 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r185499.
TBR=oilpan-reviews,haraken
BUG=418879
NOTRY=true

Review URL: https://codereview.chromium.org/730333003

git-svn-id: svn://svn.chromium.org/blink/trunk@185503 bbb929c8-8fbe-4397-9dbb-9b2b20218538
andersr
Mark fast/pagination/div-x-horizontal-bt-[ltr, rtl] as flaky.
These two tests (and their copies in compare-with-old-impl) are all among
the top ten flakes on the Blink trybots, so win_blink_rel reliability
should noticably improve with this CL.

The compare-with-old-impl versions have been removed, since they're no
longer needed after virtual/regionbasedmulticol.

Marked as flakes for Windows only, since they seem stable on other
platforms.

BUG=433848
R=mstensho@opera.com

Review URL: https://codereview.chromium.org/729973003

git-svn-id: svn://svn.chromium.org/blink/trunk@185477 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Move RenderBoxClipper to core/paint/
Only used/referenced from paint code. Straight-forward code movement, while
renaming RenderBoxClipper -> BoxClipper.

BUG=412088

Review URL: https://codereview.chromium.org/732093002

git-svn-id: svn://svn.chromium.org/blink/trunk@185460 bbb929c8-8fbe-4397-9dbb-9b2b20218538
andersr
Convert fast/multicol/float-paginate-empty-lines to reftest.
 * Set 'column-gap: 0'.
 * Reduced height to 300px to make it more visually obvious that the float
   does not fit in first column.
 * Removed evil twin in newmulticol.

R=mstensho@opera.com
BUG=386567

Review URL: https://codereview.chromium.org/702853003

git-svn-id: svn://svn.chromium.org/blink/trunk@185455 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Add a UseCounter for Text.wholeText
Text.replaceWholeText() was removed from DOM and has very low usage:
https://www.chromestatus.com/metrics/feature/timeline/popularity/100

Measure Text.wholeText also to see if it is similarly unused.

Discussed briefly with Anne van Kesteren on IRC:
http://krijnhoetmer.nl/irc-logs/whatwg/20141117#l-248

Review URL: https://codereview.chromium.org/730003003

git-svn-id: svn://svn.chromium.org/blink/trunk@185453 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ohrn
Set the ui::PAGE_TRANSITION_CLIENT_REDIRECT flag.
This patch sets ui::PAGE_TRANSITION_CLIENT_REDIRECT at the beginning of a request which allows it to be used for decisions when hooking into navigation via the components/navigation_interception API.

Review URL: https://codereview.chromium.org/626913004

Cr-Commit-Position: refs/heads/master@{#304425}
andersr
Build animated font properties through FontBuilder.
Font mutations during style resolution should happen through the FontBuilder
of the StyleResolverState. Otherwise, the elaborate zooming and min-max
logic in FontSize via FontBuilder is not applied.

It is also good etiquette by AnimatedStyleBuilder to *not* secretly update
the Font without notice, because it makes the 'fontDirty' flag wrong, in
some cases. (Although the worst-case scenario is just an extra Font update).

FontBuilder::setSize used to accept a CSSValue*, and I would assume that's
why RenderStyle::setFontSize was created in the first place. It's easy to
cleanly set a new size on the builder now, though.

R=alancutter@chromium.org
BUG=227545

Review URL: https://codereview.chromium.org/721773002

git-svn-id: svn://svn.chromium.org/blink/trunk@185449 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove unused UseCounter features
These are the reviews in which the enum values became unused:

CSSStyleDeclarationGetPropertyCSSValue:
https://codereview.chromium.org/717933002

ContentSecurityPolicyReportOnlyInMeta:
https://codereview.chromium.org/554303002

HTMLAppletElementLegacyCall:
https://codereview.chromium.org/719013002

MixedContentImage/MixedContentMedia/MixedContentRaw:
https://codereview.chromium.org/561153002

SVGFontElement/SVGFontInCSS:
https://codereview.chromium.org/656913006

Review URL: https://codereview.chromium.org/732013003

git-svn-id: svn://svn.chromium.org/blink/trunk@185432 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
IDL: Use raw pointers instead of RawPtr<> for rvalue types
For unconditionally garbage collected types, use of RawPtr<> is
unnecessary.

Review URL: https://codereview.chromium.org/727523002

git-svn-id: svn://svn.chromium.org/blink/trunk@185425 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: remove unused IfWeakMember<T>.
R=haraken
BUG=420515

Review URL: https://codereview.chromium.org/725293002

git-svn-id: svn://svn.chromium.org/blink/trunk@185409 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
[New Multicolumn] Make rounded corners clipping multicol-aware.
R=chrishtr@chromium.org

Review URL: https://codereview.chromium.org/721363002

git-svn-id: svn://svn.chromium.org/blink/trunk@185399 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Update UseCounter enums in histograms.xml
Review URL: https://codereview.chromium.org/723803004

Cr-Commit-Position: refs/heads/master@{#304298}
philipj
Add UseCounters for UIEvent.charCode/keyCode/which
These belong on the KeyboardEvent interface, so add them to
KeyboardEvent.idl and count anything that still falls back to UIEvent.

MouseEvent.which does not appear to be in any spec, but it is supported
by most browsers. Measure its usage to help determine its future.

Review URL: https://codereview.chromium.org/725073003

git-svn-id: svn://svn.chromium.org/blink/trunk@185393 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Remove includes of GraphicsContextAnnotator.h
Redundant include left behind when moving code to paint/.
Also remove some other (unused) painting related includes.

BUG=412088

Review URL: https://codereview.chromium.org/721413004

git-svn-id: svn://svn.chromium.org/blink/trunk@185386 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Deprecate DOMImplementation.hasFeature() returning false
Intent to Deprecate:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/r2aARnIHG4k/mGAsu9RGKSMJ

BUG=429536

Review URL: https://codereview.chromium.org/693353002

git-svn-id: svn://svn.chromium.org/blink/trunk@185367 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
bindings: make toImplArguments() less strict
Allow it to be called with startIndex that is greater than info.Length().
This will happen from the generated code for a method such as

  void f(long x, optional long y = 0, long... rest);

when called with a single argument.

Also a minor improvement: reserve a tighter initial capacity for the
result vector. Capacity used to be reserved for storing all arguments,
disregarding the startIndex value.

Review URL: https://codereview.chromium.org/732483002

git-svn-id: svn://svn.chromium.org/blink/trunk@185366 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Add a comment about counter availability in M40 branch
NOTRY=true

Review URL: https://codereview.chromium.org/727703002

git-svn-id: svn://svn.chromium.org/blink/trunk@185361 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Single code path for updating invalidation sets.
Allow all selectors to update invalidation sets using updateInvalidationSets
and never fall back to a separate wholeSubtree loop in
collectFeaturesFromSelector. The method for finding the InvalidationSetMode
is dropped completely.

With this change we are now at a point were a whole subtree invalidation is
only necessary for these cases:

1. There are no recognized features in the rightmost compound selector

 - A universal selector: ".a *"
 - Only contains pseudo classes or elements that are not considered
   features:

   ".a ::before", ".a :first-child", etc.

2. The invalidation set component is immediately left of an adjacent
   combinator:

   ".a + .b", ".a ~ .b"

3. The selector has a ::first-letter or ::first-line pseudo

   These are currently depending on style recalc or layout below the
   element they are pseudo elements for.

3. There is a :host-context() in the rightmost compound selector

   :host-context sub-selectors match ascendants of the :host element for
   which we are resolving style, so ":host-context(.a)" is effectively the
   same as ".a :host" which falls under no recognized features in the
   rightmost compound in point 1.

Points 1, 3, and 4 are now handled through
InvalidationSetFeatures::forceSubtree set as a result of feature extraction.
Point 2 is handled by updating InvalidationSetFeatures::adjacent as we
progress past selector combinators.

RuleFeaturesSet::collectFeaturesFromSelector is now back to how it was
before we introduced invalidation sets (without the feature hash sets).
Now, it only counts adjacent combinators and sets a flag when finding
::first-line, so it is possible to squash it into the same method as
updateInvalidationSets() to have a single pass over the selector when
finding rule features (if we want to do that).

The lowered expected node count in the :host-context test is due to the
fact that we only fall back to subtree invalidation when present in the
rightmost compound. ::first-letter/::first-line are always in the rightmost
compound, and :host-context() doesn't need subtree invalidation when in
other compounds. ":host-context(.a) .b" is effectively ".a :host .b".

R=chrishtr@chromium.org
BUG=335247

Review URL: https://codereview.chromium.org/726503003

git-svn-id: svn://svn.chromium.org/blink/trunk@185354 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Add sigbjornf as platform/heap owner.
R=
BUG=
NOTRY=true

Review URL: https://codereview.chromium.org/717393004

git-svn-id: svn://svn.chromium.org/blink/trunk@185352 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r185293.
R=haraken
BUG=430337
NOTRY=true

Review URL: https://codereview.chromium.org/724083002

git-svn-id: svn://svn.chromium.org/blink/trunk@185302 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Use union type for NavigatorBeacon.sendBeacon()'s data argument
This lets us lose some overloading and code duplication.

BUG=430337

Review URL: https://codereview.chromium.org/714123002

git-svn-id: svn://svn.chromium.org/blink/trunk@185293 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
IDL: Improve overload resolution for methods with variadic arguments
When calculating "optionality list" for a method (as part of calculating
the effective overload set), treat variadic arguments as optional instead
as required.

WebIDL defines the optionality list as a list of "required", "optional"
and "variadic", whereas we implement it as a list of booleans. A list of
booleans is enough to achieve correct behavior, assuming both "optional"
and "variadic" are considered to be optional (true).

BUG=293561

Review URL: https://codereview.chromium.org/723013003

git-svn-id: svn://svn.chromium.org/blink/trunk@185289 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
No need for subtree recalc for :-internal-spatial-navigation-focus.
Make the pseudo class a skippable component. This selector is for internal
use only, and currently there are no selectors in UA stylesheets that will
cause style invalidation with that pseudo class. Still, there is no need to
have it in the list of selectors requiring subtree recalc.

We do not support testing internal properties in layout tests since there
is no api for injecting UA style, but I have added a test that relies on a
current bug (see prose in the test itself).

R=chrishtr@chromium.org,esprehn@chromium.org
BUG=432440

Review URL: https://codereview.chromium.org/705693005

git-svn-id: svn://svn.chromium.org/blink/trunk@185284 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Support style invalidation for ::cue selectors.
Don't resort to subtree recalc in the presence of ::cue, ::cue(), :past
and :future selectors. Traverse the selector list in ::cue() to find
invalidation set features.

The test for the ::cue element yields a recalc for more than two elements
because ::cue is currently a PseudoWebKitCustomElement, and other such
elements are present as part of the shadow DOM for video elements.

R=esprehn@chromium.org,chrishtr@chromium.org
BUG=432110

Review URL: https://codereview.chromium.org/684993007

git-svn-id: svn://svn.chromium.org/blink/trunk@185255 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Use CanvasImageSource union type instead of overloading
In CanvasRenderingContext2D.idl, use the already defined union type
CanvasImageSource for the argument to drawImage() and createPattern(),
instead of having one overload of each per union member type.

This reduces the number of overloads for drawImage() from 12 to 3 and
thus greatly reduces the amount of generated bindings code for it.

BUG=430337

Review URL: https://codereview.chromium.org/703783004

git-svn-id: svn://svn.chromium.org/blink/trunk@185247 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: move SVG property hierarchy to the heap.
Turn SVGPropertyBase into a non-refcounted, GCed object
and move all its derived objects to the heap.

R=kouhei,haraken
BUG=340522

Review URL: https://codereview.chromium.org/678163002

git-svn-id: svn://svn.chromium.org/blink/trunk@185240 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Remove 'paginated line width' from RootInlineBox.
It was set but never used. Probably a relic from CSS regions support.

R=leviw@chromium.org

Review URL: https://codereview.chromium.org/716213002

git-svn-id: svn://svn.chromium.org/blink/trunk@185233 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
IDL: Support callback function types in overload resolution
The specification has a "if Callable(V) is true, ..." case for (among
other things) callback function types, which is implemented here, only
for callback function types.

BUG=293561

Review URL: https://codereview.chromium.org/715353002

git-svn-id: svn://svn.chromium.org/blink/trunk@185230 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Use the viewBox when scaling <svg:image>s non-uniformly w/ pAR=none
When referencing an SVG image from <svg:image> with pAR set to 'none', and
said image had no intrinsic size, but a 'viewBox', the use of the intrinsic
size (which would be computed as 300x150) as the container size would
incorrect. The 'viewBox' would resolve against 300x150, so if it defined
a different aspect ratio than that, the image would not appear correctly
scaled.

For pAR=none there're a number of cases to consider:
  1) The referenced image has a 'viewBox'.
  2) The referenced image has intrinsic dimensions.
  3) The referenced image has none of the above.
For cases (1) and (2), we should use the 'viewBox' and intrinsic dimensions
(respectively) to define the container size (~= the image's viewport maps
to the viewport defined by <svg:image>). In case (3) we try to use whatever
is left to use (300x150). (In practice cases (2) and (3) should be
equivalent.)

This also recognizes that the TC
svg/custom/svg-image-par-none-zero-intrinsic-size.html
is incorrect, and modifies it. Gecko seem to agree with this change.

The TC from the bug also made it obvious that there was a repaint bug at
play, which resulted in the updated return value from
RenderSVGImage::updateImageViewport. This is covered by the existing TC
svg/custom/svg-image-par-resize.html, which now seem to issue more correct
repaint rectangles.

BUG=428324

Review URL: https://codereview.chromium.org/713263002

git-svn-id: svn://svn.chromium.org/blink/trunk@185226 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: avoid invoking some no-op finalizers.
Derive from GarbageCollected<> instead whenever possible.

R=haraken
BUG=340522

Review URL: https://codereview.chromium.org/697893003

git-svn-id: svn://svn.chromium.org/blink/trunk@185218 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
IDL: Add Function and VoidFunction as built-in callback function types
They are included as "common definitions" in WebIDL and can thus be used
by other specifications without definition.

Review URL: https://codereview.chromium.org/715233003

git-svn-id: svn://svn.chromium.org/blink/trunk@185216 bbb929c8-8fbe-4397-9dbb-9b2b20218538
msimonides
Send extension console messages to the right WebFrame.
The extensions::console::ByContextFinder's conditions are tightened so
that the correct RenderView is found for a given v8::Context.
This fixes the problem where console messages may be sent to an
incorrect document (e.g. background page instead of the options page).

BUG=427922

Review URL: https://codereview.chromium.org/678393002

Cr-Commit-Position: refs/heads/master@{#303824}
jl
Use union types for HTMLSelectElement.add()'s arguments
According to the specification, the first argument should be
  (HTMLOptionElement or HTMLOptGroupElement)
and the second argument should be
  (HTMLElement or long)?
(and also be optional and default to null).

This changes behavior for the first argument (previously HTMLElement)
where a call was a silent no-op for invalid element types, and where
HTMLHRElement was allowed against the specification and with no
observable effects.

The new behavior is to throw TypeError for all invalid arguments, which is
compatible with Firefox and MSIE.

Also apply the same change to HTMLOptionsCollection.add(), which is little
more than a short-hand for calling add() on the owning select element.
Also drop the custom bindings implementation for that method, which was
essentially implementing the unionized second argument.

The behavior of HTMLOptionsCollection.add() is changed to ignore all
invalid (out of range) integer second arguments, rather than to throw for
negative ones below than -1. This change is also per specification and
compatible with other implementations.

BUG=430337

Review URL: https://codereview.chromium.org/716773002

git-svn-id: svn://svn.chromium.org/blink/trunk@185199 bbb929c8-8fbe-4397-9dbb-9b2b20218538
eirik
Add some necessary configuration_policy gyp conditions
These targets are defined inside a condition, so their
usage must clearly be inside the same condition.

BUG=

Review URL: https://codereview.chromium.org/710253003

Cr-Commit-Position: refs/heads/master@{#303807}
henriks
Implement seekable() according to the MediaSource specification
BUG=432051
R=philipj@opera.com

Review URL: https://codereview.chromium.org/710173004

git-svn-id: svn://svn.chromium.org/blink/trunk@185191 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Sync webaudio leak expectations after r185177.
Following r185177, these tests no longer crash.

TBR=yhirano,haraken
BUG=431996
NOTRY=true

Review URL: https://codereview.chromium.org/719023002

git-svn-id: svn://svn.chromium.org/blink/trunk@185187 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
IDL: Fix union type support in cross-component partial interfaces
If a partial interface in modules extends an interface in core and uses
any union types, the generated bindings/modules/v8/V8*Partial.cpp file
needs to include UnionTypesModules.h. This did not happen, since use of
union types was only tracked per main (non-partial) interface.

BUG=240176

Review URL: https://codereview.chromium.org/684653009

git-svn-id: svn://svn.chromium.org/blink/trunk@185136 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Count internal use of DOMImplementation::hasFeature() returning false
This is the only internal usage of DOMImplementation::hasFeature(), and
the only way that svg:requiredFeatures is observable, other than the
it->isEmpty() case.

If usage is low, DOMImplementation.hasFeature() and this internal usage
can be changed together, see
https://groups.google.com/a/chromium.org/d/msg/blink-dev/r2aARnIHG4k/_dN33g65mYgJ

Review URL: https://codereview.chromium.org/712813002

git-svn-id: svn://svn.chromium.org/blink/trunk@185133 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Handle parser-blocking script cancellations while nested.
Gracefully handle cancellation of a parser-blocking script load that
was initiated while already executing scripts. That is, quietly stop
waiting for it to load without notifying the host.

R=marja@chromium.org,kouhei@chromium.org,haraken@chromium.org
BUG=398090

Review URL: https://codereview.chromium.org/710933003

git-svn-id: svn://svn.chromium.org/blink/trunk@185122 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Remove clipRect parameter from LayerPainter::applyRoundedRectClips().
It was only used to check if there was a radius involved, which is easy
enough, and even sensible (since we can then avoid calling this method
at all in most cases - after all, it's not like border radius is
something you set on every other element), to check before calling the
method.

Additionally, this made it pretty obvious that calling this from
paintTransformedLayerIntoFragments() was rather useless, since clipRect
there wasn't a ClipRect but a LayoutRect (which knows nothing about
radii).

R=chrishtr@chromium.org

Review URL: https://codereview.chromium.org/705303004

git-svn-id: svn://svn.chromium.org/blink/trunk@185086 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove keyboard event filtering in fullscreen
Intent to Deprecate and Remove:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/eeGNNCIBkX8/5KzPyK2caoUJ

BUG=428348

Review URL: https://codereview.chromium.org/681113006

git-svn-id: svn://svn.chromium.org/blink/trunk@185081 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
IDL: Support optional union type arguments with default values
Since union container types have setters rather than assignment operators,
restructure the default value handling to generate a C++ expression that
sets the value instead of the value as a C++ literal expression.

And as a special case, since union containers are null initially, if the
default value is null, generate an empty expression then.

This also fixes a minor bug in the union handling: enum types were not
supported. They should be treated as string types, including conflicting
with any other string type in the union.

BUG=240176

Review URL: https://codereview.chromium.org/713683003

git-svn-id: svn://svn.chromium.org/blink/trunk@185046 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Retire xmlhttprequest/workers/close.html test expectation.
Test is no longer reported as timing out on Windows bots.

R=tyoshino@chromium.org
BUG=409535
NOTRY=true

Review URL: https://codereview.chromium.org/711013002

git-svn-id: svn://svn.chromium.org/blink/trunk@185042 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Removed test case having scrollbar issues on Mac.
For some reason the generated scrollbar pseudo element count was different
on Mac, although the test passed on the Mac bot when landing. I've removed
the test for :single-button/:double-button as the test coverage by the
other pseudo classes should be enough.

R=leviw@chromium.org
BUG=427953

Review URL: https://codereview.chromium.org/687943002

git-svn-id: svn://svn.chromium.org/blink/trunk@185036 bbb929c8-8fbe-4397-9dbb-9b2b20218538
andersr
Decouple font unit conversion in computeLengthDouble from RenderStyle.
Simply passing the RenderStyle(s) to computeLengthDouble, and letting it decide
how to convert units is ugly, since the conversion factors depends on context.
(Notably font-size, where parent specified font size is to be used rather than
current computed font size).

The same applies to zoom, where we normally want to use the effective zoom
of some RenderStyle, and in other cases some alternative specific zoom.

To make matters worse, the same RenderStyle from which we produce font unit
factors, and (maybe) effective zoom, is also marked as having viewport units (if
encountered), even though the RenderStyle we want to mark is not always the same
as the one we want to produce factors from.

This patch reworks CSSToLengthConversionData to contain more specific coversion
data, instead of just forwarding RenderStyles into dark places.

CSSToLengthConversionData now consists of:

 * CSSToLengthFontSizes which knows which factors to use for em/rem/ex/ch.
   The units that only depend on FontDescription (em, rem) are always computed,
   and the units which depend on FontMetrics (ex, ch) are computed on demand.
   This is to avoid loading of fonts in cases where its metrics weren't really
   needed after all.
 * CSSToLengthViewportSize just contains the size of the viewport, and exists
   only to improve the structure of CSSToLengthConversionData. (Less params).
 * Zoom. This is the zoom used in all cases. Effective/non-effective is now
   handled by the outside.
 * (Private) RenderStyle. Only to mark as having viewport units.

This is better, because:

 * The special situation of computing font-size is now handled in the converter
   for font-size, not computeLengthDouble, which really shouldn't have to care.
 * The RenderStyle we're passing is only used for viewport unit marking, so we
   can actually pass the correct one for font-size.
 * The ... extravagant ... constructors of CSSToLengthConversionData are now
   under control.

Notes:

 * StyleResolver now calls inheritFrom on styles before setting the style on the
   StyleResolverState. This ensures that correct font unit factors are computed
   (as the Font is inheritable).
 * An extra updateFont is needed if we inheritFrom a cached style.
 * StyleResolver::defaultStyleForElement does not need to use a
   StyleResolverState anymore. A FontBuilder will suffice.

Review URL: https://codereview.chromium.org/705783002

git-svn-id: svn://svn.chromium.org/blink/trunk@185033 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove the Element.prefix setter
Intent to Remove:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/bka_hQuzAu0/tjD-GhJ6zDAJ

Attribute::setPrefix() was unused and showed up in grep.

BUG=431552

Review URL: https://codereview.chromium.org/688333002

git-svn-id: svn://svn.chromium.org/blink/trunk@185009 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r185003.
TBR=oilpan-reviews,haraken
BUG=430507
NOTRY=true

Review URL: https://codereview.chromium.org/709893002

git-svn-id: svn://svn.chromium.org/blink/trunk@185004 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
PartitionAlloc: Leave bucket in valid state when allocation fails
When an allocation with the PartitionAllocReturnNull flag fails, we need to
make sure to leave all structures in a valid state when bailing out, since
the process lives on and may call again later.

Specifically, make sure that the bucket's activePagesHead has a valid value,
instead of null, when returning null from partitionAllocSlowPath(). Since
there's no meaningful page to set as the active pages head, set it to its
initial value, &PartitionRootBase::gSeedPage.

This was already necessarily supported by the allocation code paths. The
deallocation code path needs some minor adjustments to handle this state
correctly.

Review URL: https://codereview.chromium.org/645223007

git-svn-id: svn://svn.chromium.org/blink/trunk@184983 bbb929c8-8fbe-4397-9dbb-9b2b20218538
andersr
Allow C++11 Delegated Constructors.
An as-small-as-possible change has been made to JSONReader to test
this feature.

R=jamesr@chromium.org

Review URL: https://codereview.chromium.org/685603005

Cr-Commit-Position: refs/heads/master@{#303245}
andersr
Convert fast/multicol/positioned-split to reftest.
 * Set explicit column-gap and line-height.
 * Clarified pass condition.
 * Removed useless evil twin in fast/multicol/newmulticol.

R=mstensho@opera.com
BUG=386567

Review URL: https://codereview.chromium.org/702093002

git-svn-id: svn://svn.chromium.org/blink/trunk@184967 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Introduce paintFragmentWithPhase(), to simplify paint*ForFragments().
There was some ~duplicated code in those methods, pertaining to clipping
and setting up a PaintInfo and calling renderer::paint().

R=chrishtr@chromium.org

Review URL: https://codereview.chromium.org/704753002

git-svn-id: svn://svn.chromium.org/blink/trunk@184936 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Cleanup: Use foreground rect in paintChildClippingMaskForFragments().
The clip rectangle was based on the foreground rectangle, while we
passed the background rectangle to PaintInfo.
Be consistent and use the foreground rectangle in both cases.

There was also a comment about skipping ourselves for border radius
clipping, although we did include ourselves. Removed the comment.

No behavioral changes intended, but added a test that would fail if we
had gone for the background rect instead of the foreground rect.

R=chrishtr@chromium.org

Review URL: https://codereview.chromium.org/706603002

git-svn-id: svn://svn.chromium.org/blink/trunk@184931 bbb929c8-8fbe-4397-9dbb-9b2b20218538
andersr
Convert fast/multicol/vertical-rl/rule-style to reftest.
R=mstensho@opera.com
BUG=386567

Review URL: https://codereview.chromium.org/690133003

git-svn-id: svn://svn.chromium.org/blink/trunk@184921 bbb929c8-8fbe-4397-9dbb-9b2b20218538
andersr
Convert fast/multicol/unsplittable-inline-block to reftest.
Removed explicit 'width' and shortened text lines to make the test
"compatible" with vertical-lr/rl.

R=mstensho@opera.com
BUG=386567

Review URL: https://codereview.chromium.org/698203003

git-svn-id: svn://svn.chromium.org/blink/trunk@184916 bbb929c8-8fbe-4397-9dbb-9b2b20218538
andersr
Convert fast/multicol/vertical-[lr, rl]/rules-with-border-before to reftest.
Added DOCTYPE and described pass conditions.

R=mstensho@opera.com
BUG=386567

Review URL: https://codereview.chromium.org/701803002

git-svn-id: svn://svn.chromium.org/blink/trunk@184910 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mathiash
Make WebContentsDelegateAndroid pass more calls to Java.
BUG=428784

Review URL: https://codereview.chromium.org/684133007

Cr-Commit-Position: refs/heads/master@{#302997}
philipj
Remove HTMLHeadElement.profile
Intent to Remove:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/GotqYh_4mFA/KgO0qCCpXcMJ

BUG= 430788

Review URL: https://codereview.chromium.org/690033002

git-svn-id: svn://svn.chromium.org/blink/trunk@184898 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
[New Multicolumn] Add RenderMultiColumnSpannerSet.
This is in preparation for column-span:all support.

This CL puts basic set renderer insertion needed by column-span:all into
place. Full support for set management (cope with dynamic changes after
inital layout, etc.) and actual support for layout will be introduced in
follow-up CLs. Likewise for layout tests.

Each column-span:all renderer needs a corresponding
RenderMultiColumnSpannerSet. This means that if there's column content
preceding and following the spanner, we need a RenderMultiColumnSet both
before and after it (while, without spanners, there'd never be any need
for more than one column set).

Some extra attention is required when inserting flow thread
descendants now, because we need to figure out if the renderer
inserted should trigger creation of a new column set or a spanner set.

Wrote some unit tests. Layout tests not possible at this time, since this
CL has no (intentional) web-facing changes.

BUG=347325

Review URL: https://codereview.chromium.org/688703003

git-svn-id: svn://svn.chromium.org/blink/trunk@184887 bbb929c8-8fbe-4397-9dbb-9b2b20218538
andersr
Replace fast/multicol/float-paginate-complex with float-big-line.
The test float-paginate-complex adds nothing over the other float-* tests,
except the case with a big line box. That case has been split out into
a new reftest: float-big-line.

R=mstensho@opera.com
BUG=386567

Review URL: https://codereview.chromium.org/699593003

git-svn-id: svn://svn.chromium.org/blink/trunk@184876 bbb929c8-8fbe-4397-9dbb-9b2b20218538
andersr
Convert fast/multicol/float-paginate to reftest.
Added an explicit column-gap, used column-count rather than column-width,
and removed some lines to make the test fit better in content_shell.

R=mstensho@opera.com
BUG=386567

Review URL: https://codereview.chromium.org/695283002

git-svn-id: svn://svn.chromium.org/blink/trunk@184868 bbb929c8-8fbe-4397-9dbb-9b2b20218538
christiank
Update touch selection to only modify one selection point at a time.
This is made in preparation for enabling selection auto scroll using touch
handles.

BUG=340658

Review URL: https://codereview.chromium.org/657803002

Cr-Commit-Position: refs/heads/master@{#302776}
andersr
Convert fast/multicol/margin-collapse to reftest.
The only notable change is setting column-gap explicitly.

R=mstensho@opera.com
BUG=386567

Review URL: https://codereview.chromium.org/696273002

git-svn-id: svn://svn.chromium.org/blink/trunk@184825 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Retire fast/dom/drop-event-for-input-in-shadow.html leak expectation.
Following r184768, test no longer leaks.

TBR=kouhei
BUG=364417
NOTRY=true

Review URL: https://codereview.chromium.org/696183002

git-svn-id: svn://svn.chromium.org/blink/trunk@184781 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Avoid trigger compositing update on media player finalization.
When finalizing a media element and clearing out its associated
media player, prevent the media player finalizer from indirectly
triggering a composition update on the media element itself.
Unsafe, as it will touch other heap objects, which might have
been finalized by now.

R=haraken
BUG=

Review URL: https://codereview.chromium.org/696103003

git-svn-id: svn://svn.chromium.org/blink/trunk@184769 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Prevent leak on completion of drop operation.
If the 'drop' event handler signals that the event has been handled and
no default handling is to be done, we clear the document and consider
the operation complete. Also clear out the drag caret selection at that
time, as it may hold onto an anchor node (and its document.)

R=dcheng
BUG=364417
TEST=fast/dom/shadow/drop-event-for-input-in-shadow.html

Review URL: https://codereview.chromium.org/689103003

git-svn-id: svn://svn.chromium.org/blink/trunk@184768 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Corrected serialization of ::cue() functions.
The selectorList argument of ::cue() functions were just dropped.
Serialization of that list is now done.

The explicit universal tag "*" is not correct per CSSOM spec, but I didn't
address that in this CL. Besides, that also affects a bunch of the custom
pseudo elements. Nothing changed here.

Also removed a bunch of unnecessary CSSSelector:: prefixing.

R=timloh@chromium.org,andersr@opera.com
BUG=428696

Review URL: https://codereview.chromium.org/689933002

git-svn-id: svn://svn.chromium.org/blink/trunk@184767 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Add a UseCounter for when xml:base takes effect in Element.baseURI
This is the only internal usage of xml:base.

BUG=341854

Review URL: https://codereview.chromium.org/697693003

git-svn-id: svn://svn.chromium.org/blink/trunk@184763 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
[New Multicolumn] Use the return value from flipForWritingMode().
flipForWritingMode() comes in at least two flavors; one that takes a
LayoutRect& and one that takes a LayoutSize&. The one that takes
LayoutRect puts the result in the reference passed (and returns nothing).
The one that takes LayoutSize leaves the reference passed untouched
(after all, it's const) and returns the result. Not confusing at all.

Better not ignore the returned value when using the LayoutSize version.

This fixes fast/multicol/vertical-rl/composited-relpos-overlapping-will-change.html

BUG=359877
R=jchaffraix@chromium.org

Review URL: https://codereview.chromium.org/696523003

git-svn-id: svn://svn.chromium.org/blink/trunk@184757 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Prefer unprefixed clip-path to (webkit) prefixed
In the world of prefixes, a property without takes precedence over a
property with. That tends to assume that there's not actually two
properties supported though. In the case of 'clip-path' and
'-webkit-clip-path', they both exist and are handled by different code.
The latter also takes precedence over the former which leads to strange
behavior in the cases where both the prefixed and unprefixed property is
specified in a rule.
Change the behavior in this case to be more in line with prefix handling
in general, byt preferring the unprefixed property if it exists.

This requires moving one or the other of the two code-blocks that setup the
clip. In this CL the application of 'clip-path' is moved before the
application of 'mask'. With this move, the rendering-clip-as-mask code-path
can be simplified a bit. Also fix an edge-case where a clip-shape which
referenced a non-existent filter would not be rendered (TC added.)

Also clean-up the rendering-clip-as-mask handling around
opacity/blend-mode/isolation, to avoid creating a (redundant) transparency
layer when a clip-shape has isolation specified.

BUG=391608

Review URL: https://codereview.chromium.org/683703005

git-svn-id: svn://svn.chromium.org/blink/trunk@184752 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Reset animation player map on disconnecting Inspector frontend.
Clear out the node ID to AnimationPlayer map on disconnect to avoid
references to elements (and their documents) from lingering longer than
necessary.

R=haraken,aandrey
BUG=428685

Review URL: https://codereview.chromium.org/690603003

git-svn-id: svn://svn.chromium.org/blink/trunk@184743 bbb929c8-8fbe-4397-9dbb-9b2b20218538
andersr
Convert fast/multicol/column-rules to reftest.
Notable changes:

 * Used fixed multicol container width.
 * Specify column-gap.
 * Specify line-height.

R=mstensho@opera.com
BUG=386567

Review URL: https://codereview.chromium.org/688323002

git-svn-id: svn://svn.chromium.org/blink/trunk@184721 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: Mark page-count-with-one-word.html as timing out on Windows.
TBR=oilpan-reviews,haraken
BUG=248969
NOTRY=true

Review URL: https://codereview.chromium.org/681203004

git-svn-id: svn://svn.chromium.org/blink/trunk@184718 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
IDL: Generate trace() method in union container types when required
If any union member type needs tracing, generate a trace() method that
does that tracing.

BUG=240176

Review URL: https://codereview.chromium.org/689013002

git-svn-id: svn://svn.chromium.org/blink/trunk@184699 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
[New Multicolumn] boundingBoxForCompositingOverlapTest() needs to use fragmentsBoundingBox().
Bounding boxes are visual, so we need to translate a flow thread
rectangle to the union of each visual fragment in each column that the
layer occurs. This means that flippedLogicalBoundingBox() won't do. Nor
will physicalBoundingBox(), which, despite its name, isn't "physical"
enough for multicol. In our case, flippedLogicalBoundingBox() and
physicalBoundingBox() would behave identically anyway, since the
ancestor layer is the same as this layer (and physicalBoundingBox()
only adds the offset from this layer to the ancestor).

BUG=359877
R=jchaffraix@chromium.org

Review URL: https://codereview.chromium.org/655003005

git-svn-id: svn://svn.chromium.org/blink/trunk@184670 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Disallow non-flexbox child renderers for RenderMedia
Inline children of replaced content is not handled and triggered the
ASSERT(curr->isRenderInline()) UNKNOWN in RenderInline::splitInlines().

The render tree at the point of failure was:

RenderView 0xd0c23404010                #document 0x2be215c04b48
  RenderBlock 0xd0c2341c010             HTML 0x2be215c101a8
    RenderBody 0xd0c2341c110            BODY 0x2be215c102b8
      RenderBlock (anonymous) 0xd0c2341c310
        RenderVideo 0xd0c23420010       VIDEO 0x2be215c48010
*         RenderInline (relative positioned) 0xd0c23424010 DIV 0x2be215c68010
      RenderBlock (anonymous) 0xd0c2341c210
      RenderBlock (anonymous) 0xd0c2341c410

Making ::-webkit-media-controls* internal would have fixed this:
https://codereview.chromium.org/662243003/
https://groups.google.com/a/chromium.org/d/msg/blink-dev/YCIaYPa_DhI/RyDlcHmD1_wJ

Unfortunately, that is not without risk. This fix allows
::-webkit-media-controls { display: none; } to keep working until the
usage can be measured.

BUG=415407, 426759

Review URL: https://codereview.chromium.org/689613002

git-svn-id: svn://svn.chromium.org/blink/trunk@184652 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove the composite attribute on <img>
Intent to Deprecate and Remove:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/bLlTQWlLTOM/ZPrSv4t_WxUJ

BUG=428636

Review URL: https://codereview.chromium.org/688743002

git-svn-id: svn://svn.chromium.org/blink/trunk@184644 bbb929c8-8fbe-4397-9dbb-9b2b20218538
andersr
Demote 'line-height' to a low priority property.
Our special handling of the 'line-height' property is no longer
required, since the 'font' shorthand is now expanded in the parser
in all cases (also for system fonts).

R=timloh@chromium.org

Review URL: https://codereview.chromium.org/670373002

git-svn-id: svn://svn.chromium.org/blink/trunk@184629 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Never fire popstate event when navigating between documents
The specification says to only fire popstate events when the document's
"latest entry" isn't the session history entry being navigated to. This
can be the case when navigating between documents (when skipping history
entries, e.g. using history.go(-2)), but this patch simply disables
popstate entirely when navigating between documents.

The resulting behavior matches that of Firefox and MSIE.

BUG=400427

Review URL: https://codereview.chromium.org/680273004

git-svn-id: svn://svn.chromium.org/blink/trunk@184628 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r184599.
TBR=oilpan-reviews,haraken
BUG=425186
NOTRY=true

Review URL: https://codereview.chromium.org/691613002

git-svn-id: svn://svn.chromium.org/blink/trunk@184601 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: pull SVGPropertyBase off the heap.
Having the SVG property base class derive from RefCountedGarbageCollected,
but its derived classes all be created and kept as ref-counted pointers
doesn't bring any benefits.

Revert back to deriving from RefCounted<> until the entire SVG property
hierarchy can be moved to the Oilpan heap, and ref-counts be avoided
altogether for these objects.

R=haraken
BUG=340522

Review URL: https://codereview.chromium.org/686163002

git-svn-id: svn://svn.chromium.org/blink/trunk@184600 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: add two more expected Windows image only failures.
TBR=oilpan-reviews,haraken
BUG=410145
NOTRY=true

Review URL: https://codereview.chromium.org/656183003

git-svn-id: svn://svn.chromium.org/blink/trunk@184598 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r184578.
R=haraken
BUG=425623

Review URL: https://codereview.chromium.org/686093002

git-svn-id: svn://svn.chromium.org/blink/trunk@184593 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ljagielski
Get rid of net::LOAD_ENABLE_UPLOAD_PROGRESS.
It's only used by Loader code.

BUG=426442

Committed: https://crrev.com/69c091ddba1bddda795eb5da4e400d16b29cc732
Cr-Commit-Position: refs/heads/master@{#301110}

Review URL: https://codereview.chromium.org/669073003

Cr-Commit-Position: refs/heads/master@{#301843}
sigbjornf
Simplify WebServiceWorker{Registration}Proxy interfaces.
Turn WebServiceWorkerRegistrationProxy and WebServiceWorkerProxy into
pure abstract interfaces, letting the embedder call the "proxy"
interfaces on the ServiceWorkerRegistration and ServiceWorker Blink
objects, respectively. That is, no longer keep private (and bare)
pointers on these platform proxy objects; unnecessary and runs up
against overall platform layering constraints.

Like before, the ownership of these proxy objects resides with Blink.

R=nhiroki,haraken,mkwst
BUG=410257

Review URL: https://codereview.chromium.org/682003003

git-svn-id: svn://svn.chromium.org/blink/trunk@184587 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Clarify that there is no :cue or :cue(...) pseudo-class
The test passes with or without these changes, demonstrating that the
::cue pseudo-element is already the only one, as per the spec:
http://dev.w3.org/html5/webvtt/#the-cue-pseudo-element

TEST=LayoutTests/media/track/track-css-cue-pseudo-class.html

Review URL: https://codereview.chromium.org/677943002

git-svn-id: svn://svn.chromium.org/blink/trunk@184585 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Remove updatePaintingInfoForFragments() and per-fragment shouldPaintContent flag.
It seems that all it did was to erroneously make us skip fragments. It
intersected with layer bounds, which don't include layer overflow. Before
we create the fragments in RenderMultiColumnSet, we carefully intersect
with everything relevant anyway. So rather than fixing the buggy code,
just remove it.

This means that there's no need for a per-fragment shouldPaintContent flag.
anymore.

BUG=359877

Review URL: https://codereview.chromium.org/666493002

git-svn-id: svn://svn.chromium.org/blink/trunk@184562 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: update expectations paths to match current.
Testst that needs rebaselines on Windows now live in antialiasedtext/;
update paths accordingly.

TBR=oilpan-reviews,haraken
BUG=
NOTRY=true

Review URL: https://codereview.chromium.org/684013002

git-svn-id: svn://svn.chromium.org/blink/trunk@184544 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Move <svg:image> buffered-rendering management to SVGImagePainter
There are no strong dependencies on SVGRenderingContext or other
surroundings, so the move is reasonably straight-forward.
While moving, modify the flow of the bufferForeground function a bit.

BUG=412088

Review URL: https://codereview.chromium.org/675173003

git-svn-id: svn://svn.chromium.org/blink/trunk@184542 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
No subtree recalc for scrollbar pseudo classes.
Removed a set of pseudo classes which only apply to scrollbar pseudo elements
from the list of classes that require subtree recalcs.

R=esprehn@chromium.org,chrishtr@chromium.org

Review URL: https://codereview.chromium.org/654683003

git-svn-id: svn://svn.chromium.org/blink/trunk@184529 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Clear baseRenderStyle on detach.
ActiveAnimations::baseRenderStyle was only nulled correctly from
styleForElement, but that method is not always called when clearing the
styleChangeType(). For instance when the we have detached the element, but
don't need to create a renderer for it when re-attaching.

This bug caused the baseRenderStyle to survive moving an element between
documents triggering the assert checking that the baseRenderStyle was
correct.

Clearing the baseRenderStyle unconditionally on detach() should fix this.

R=dstockwell@chromium.org,esprehn@chromium.org
BUG=427433

Review URL: https://codereview.chromium.org/642773004

git-svn-id: svn://svn.chromium.org/blink/trunk@184515 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ed
Revert "Accelerate the lighten blendmode if GL_EXT_blend_minmax is enabled."
This reverts https://crrev.com/fad658b4d6af2be70c1d39b98ffa92c578f31006.

The 'lighten' results are incorrect if we have alpha, demonstrated by
https://codereview.chromium.org/673873005/, the resulting blend
equation doesn't match the one in the spec.

BUG=243223
TBR=enne@chromium.org, jbauman@chromium.org, mkwst@chromium.org, rosca@adobe.com

Review URL: https://codereview.chromium.org/680973002

Cr-Commit-Position: refs/heads/master@{#301624}
andersr
Split fast/multicol/float-multicol into smaller tests.
 * float-edge: Tests that floats line up with the edge of the
   column, and not something else.
 * float-break: Tests that tall floats break into columns.
 * float-content-break: Tests that content of floats are broken
   into columns.

R=mstensho@opera.com
BUG=386567

Review URL: https://codereview.chromium.org/675433002

git-svn-id: svn://svn.chromium.org/blink/trunk@184505 bbb929c8-8fbe-4397-9dbb-9b2b20218538
andersr
Rebaseline crash tests in fast/multicol/span with dumpAsText.
R=mstensho@opera.com
BUG=386567

Review URL: https://codereview.chromium.org/677063002

git-svn-id: svn://svn.chromium.org/blink/trunk@184475 bbb929c8-8fbe-4397-9dbb-9b2b20218538
andersr
Remove obsolete baseline for column-break-with-balancing.
This baseline accidentally survived an earlier reftest-conversion.

R=mstensho@opera.com
BUG=386567

Review URL: https://codereview.chromium.org/683483003

git-svn-id: svn://svn.chromium.org/blink/trunk@184470 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r184449.
TBR=oilpan-reviews,haraken
BUG=353932
NOTRY=true

Review URL: https://codereview.chromium.org/681013002

git-svn-id: svn://svn.chromium.org/blink/trunk@184469 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Drop RenderStyle-arg. from RenderSVGResource{Filter,Masker}::prepareEffect
It's unused in both cases.

BUG=420022

Review URL: https://codereview.chromium.org/674373004

git-svn-id: svn://svn.chromium.org/blink/trunk@184457 bbb929c8-8fbe-4397-9dbb-9b2b20218538
andersr
Expand system font values during property parsing.
This is alancutter's patch, adjusted to work with the current master.

This patch removes special case handling of the font shorthand property.
Previously this property would be carried through to the style resolving
stage if system font values were used. This patch refactors this process
to happen in the CSS parser so that font is always expanded into longhand
values.

BUG=353932

Review URL: https://codereview.chromium.org/677103002

git-svn-id: svn://svn.chromium.org/blink/trunk@184449 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Avoid subtree style recalc for :-webkit-full-page-media.
Do not let the presence of a :-webkit-full-page-media selector require a
sub-tree style recalc.

I did not find a way to test style invalidation inside a media document, so
I made a test with the negated selector instead.

R=chrishtr@chromium.org,esprehn@chromium.org
BUG=425070

Review URL: https://codereview.chromium.org/664583007

git-svn-id: svn://svn.chromium.org/blink/trunk@184448 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Avoid sub-tree style recalc for ::-webkit-resizer.
The presence of the ::-webkit-resizer pseudo element should not trigger a
sub-tree style recalc from style invalidation.

This CL depends on https://codereview.chromium.org/639293008/

R=esprehn@chromium.org,chrishtr@chromium.org
BUG=425557

Review URL: https://codereview.chromium.org/663313004

git-svn-id: svn://svn.chromium.org/blink/trunk@184442 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Avoid subtree style recalc for fullscreen pseudos.
Do not let the presence of any of the following pseudo classes require a
sub-tree style recalc:

:-webkit-full-screen
:-webkit-full-screen-ancestor
:-webkit-full-screen-document

R=chrishtr@chromium.org,esprehn@chromium.org
BUG=425070

Review URL: https://codereview.chromium.org/663023003

git-svn-id: svn://svn.chromium.org/blink/trunk@184441 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
remove stray usage of logging_like_official_build
The logging_like_official_build gyp setting was removed in this CL:
https://codereview.chromium.org/189603007

BUG=334021

Review URL: https://codereview.chromium.org/682603002

Cr-Commit-Position: refs/heads/master@{#301344}
mharanczyk
Use embedded test server instead of spawned one in AllUrlsApiTest.
This prevents file lock problems on those tests shutdown on windows.

BUG=427420

Review URL: https://codereview.chromium.org/682593002

Cr-Commit-Position: refs/heads/master@{#301340}
rune
Custom pseudo elements do not require sub-tree recalcs.
Custom pseudo elements are already invalidation set features and handled
in invalidationSetModeForSelector and extractInvalidationSetFeature.

TEST=fast/css/invalidation/targeted-class-custom-pseudo.html

R=chrishtr@chromium.org,esprehn@chromium.org

Review URL: https://codereview.chromium.org/669643003

git-svn-id: svn://svn.chromium.org/blink/trunk@184438 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: simplify quota storage callbacks objects.
With callback objects now being on the heap by default, we can simplify
the objects wrapping storage callbacks.

R=haraken
BUG=340522

Review URL: https://codereview.chromium.org/676183002

git-svn-id: svn://svn.chromium.org/blink/trunk@184420 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: widen Mac expectations for table-inflation-crash.html
TBR=oilpan-reviews,haraken
BUG=389648
NOTRY=true

Review URL: https://codereview.chromium.org/678873002

git-svn-id: svn://svn.chromium.org/blink/trunk@184403 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: remove now-unused thread affinity macros.
Explicit USED_FROM_MULTIPLE_THREADS*() declarations haven't been used for
some time; remove the unused macros.

R=haraken
BUG=420515

Review URL: https://codereview.chromium.org/674143002

git-svn-id: svn://svn.chromium.org/blink/trunk@184402 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Removed incorrect StyleInvalidator FIXME.
Cloning the RenderStyle, like the FIXME said, is not enough. It would be
true if we only scheduled invalidation sets for classes/ids/... not in the
rightmost compound selector, but we schedule invalidation sets for classes
on the element it needs to invalidate too. Setting class=a on an element
with the style rules below requires us to do a LocalStyleChange on both
'.a' and '.b' in order to apply the first rule as well. For setting
class=x, that wouldn't be necesarry.

.a {}
.a .b {}
.x .y {}

It's possible to optimize that case by adding a flag to the invalidation
set to indicate that the feature the invalidation set is for is present in
the rightmost compound of some selector.

R=chrishtr@chromium.org,esprehn@chromium.org

Review URL: https://codereview.chromium.org/679663002

git-svn-id: svn://svn.chromium.org/blink/trunk@184394 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Use invalidation sets for :invalid/:valid/:required/:optional.
Create invalidation sets for :invalid, :valid, :required, and :optional
pseudo classes and schedule invalidations instead of using
SubtreeStyleChange when those states change.

BUG=419873

Review URL: https://codereview.chromium.org/620333002

git-svn-id: svn://svn.chromium.org/blink/trunk@184392 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: clear FrameLoader during LocalFrame detach.
Following r183834, the FrameOwner is disconnected during frame detach.
The clearing of the FrameLoader that needs to happen for Oilpan can
consequently be moved to a more natural place and be done as part
of the other LocalFrame detach operations (rather than being a
special action of FrameOwner disconnecting.)

R=haraken
BUG=425559

Review URL: https://codereview.chromium.org/678673002

git-svn-id: svn://svn.chromium.org/blink/trunk@184382 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Remove SVGTextMetrics::m_glyph
This field was previously used for ligature and kerning lookups for SVG
fonts. Since SVGTextMetrics::glyph() is no longer called we can remove the
field and collapse some related code.

BUG=242735

Review URL: https://codereview.chromium.org/665253003

git-svn-id: svn://svn.chromium.org/blink/trunk@184376 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ljagielski
Get rid of net::LOAD_ENABLE_UPLOAD_PROGRESS.
It's only used by Loader code.

BUG=426442

Review URL: https://codereview.chromium.org/669073003

Cr-Commit-Position: refs/heads/master@{#301110}
rune
Avoid sub-tree style recalc for ::selection.
The presence of the ::selection pseudo element should not trigger a
sub-tree style recalc from style invalidation. The same goes for the
:window-inactive pseudo class.

R=chrishtr@chromium.org,esprehn@chromium.org
BUG=425494

Review URL: https://codereview.chromium.org/669873003

git-svn-id: svn://svn.chromium.org/blink/trunk@184367 bbb929c8-8fbe-4397-9dbb-9b2b20218538
kolczyk
[gin] Use variadic templates in gin/function_template.h
Replace pump.py generated gin/function_template.h with variadic template version.

This results in a concise code which does not require the use
of pump preprocessor.
Similar effort for base/callback.h is happening in https://codereview.chromium.org/610423003/

BUG=

Review URL: https://codereview.chromium.org/671433004

Cr-Commit-Position: refs/heads/master@{#301089}
philipj
Use auto, not const auto*, for libyuv function pointers
This was a compiler error on GCC 4.9.1:
unable to deduce ‘const auto*’ from ‘((((content::PpFrameWriter::FrameWriterDelegate*)this)->content::PpFrameWriter::FrameWriterDelegate::endian_ == (content::PpFrameWriter::FrameWriterDelegate::PixelEndian)1u) ? libyuv::BGRAToI420 :  libyuv::ARGBToI420)’

Introduced in https://codereview.chromium.org/663183002

BUG=426020

Review URL: https://codereview.chromium.org/675963002

Cr-Commit-Position: refs/heads/master@{#301083}
andersr
Add a test for font/line-height cascade.
The line-height property has lots of special handling in the style
resolver which we want to remove at some point. When we do, it's nice to
know that this still works correctly.

R=rune@opera.com
BUG=353932

Review URL: https://codereview.chromium.org/678483005

git-svn-id: svn://svn.chromium.org/blink/trunk@184346 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
RenderStyle operator== incorrect for shape-outside and clip-path.
Use dataEquivalent instead of comparing pointers. Updating the base
RenderStyle in ActiveAnimations asserts that the cached base RenderStyle
is correct by comparing RenderStyle objects. It triggered an assert when
comparing two shape-outside values represented by different objects
representing the same value.

R=esprehn@chromium.org,dstockwell@chromium.org
BUG=425473

Review URL: https://codereview.chromium.org/669093002

git-svn-id: svn://svn.chromium.org/blink/trunk@184345 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Remove myself from WATCHLISTS.
NOTRY=true
TBR=sigbjornf@opera.com

Review URL: https://codereview.chromium.org/674103002

git-svn-id: svn://svn.chromium.org/blink/trunk@184343 bbb929c8-8fbe-4397-9dbb-9b2b20218538
andersr
Eliminate FontBuilder::initForStyleResolve.
It's not necessary to do initialization of FontBuilder separately from
StyleResolverState::setStyle. It just adds noise.

Also, use a reference for Document in FontBuilder, since its existence can
be guaranteed in all cases.

R=dglazkov@chromium.org

Review URL: https://codereview.chromium.org/671613003

git-svn-id: svn://svn.chromium.org/blink/trunk@184342 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove fallback matching ::cue* pseudo-element selectors
Because there is a "cue" entry in both pseudoTypeWithoutArgumentsMap and
pseudoTypeWithArgumentsMap, this path is never taken (verified with
ASSERT(0)) when running LayoutTests/media/.

It is taken for something like ::cuefoo, but that makes no sense.

This was initially the only code path:
http://trac.webkit.org/changeset/136991

Later commits made it obsolete:
http://trac.webkit.org/changeset/137955
https://src.chromium.org/viewvc/blink?revision=155834&view=revision

This was the last usage of PseudoUserAgentCustomElement, so remove that
too, together with its use counter:
https://src.chromium.org/viewvc/blink?revision=155928&view=revision
https://www.chromestatus.com/metrics/feature/timeline/popularity/103

At the time pseudos starting with "x-" were also
PseudoUserAgentCustomElement, but has since been removed:
https://src.chromium.org/viewvc/blink?revision=170210&view=revision

Review URL: https://codereview.chromium.org/646853007

git-svn-id: svn://svn.chromium.org/blink/trunk@184341 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: move TextFinder to the heap.
With WebLocalFrameImpl on the heap, this object no longer needs to use
persistent (or untraced) references.

R=haraken
BUG=340522

Review URL: https://codereview.chromium.org/674773003

git-svn-id: svn://svn.chromium.org/blink/trunk@184332 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Only dispose proxy-less WebServiceWorkerRegistration objects.
If a service worker registration is passed along to a resolver that's
in a detached/stopping state, the WebServiceWorkerRegistration is
simply disposed of.

Have that dispose step only delete the object if the registration object
isn't attached to a proxy already. If it is, it is responsible for
releasing the resource.

R=haraken
BUG=426321

Review URL: https://codereview.chromium.org/669423002

git-svn-id: svn://svn.chromium.org/blink/trunk@184288 bbb929c8-8fbe-4397-9dbb-9b2b20218538
andersr
Convert fast/multicol/float-avoidance to reftest.
Changed column-width such that we're actually using more than one
column. Makes it easier to immediately visually verify that multicol is
being used.

Also changed text contents to be less sensitive to computed font size
across platforms.

R=mstensho@opera.com
BUG=386567

Review URL: https://codereview.chromium.org/643923003

git-svn-id: svn://svn.chromium.org/blink/trunk@184281 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Move RenderSVGResource into the inheritance hierarchy
With RenderSVGResource reduced to a common base for paint-servers,
it's possible to get rid of the multiple inheritance on
RenderSVGResourceContainer by instead making it the base of
RenderSVGResource{Gradient,Pattern} while inheriting from
RenderSVGResourceContainer.
Rename the files appropriately and update existing references to
RenderSVGResource. Also take the opportunity to tighten the types
a bit in some places.

BUG=420022

Review URL: https://codereview.chromium.org/673753004

git-svn-id: svn://svn.chromium.org/blink/trunk@184278 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ed
Add support for all blendmodes if we have GL_KHR_blend_equation_advanced.
BUG=243223

Review URL: https://codereview.chromium.org/643373003

Cr-Commit-Position: refs/heads/master@{#300887}
fs
Relocate markForLayoutAndParentResourceInvalidation
To facilitate repurposing of RenderSVGResource for paint-server use,
move RenderSVGResource::markForLayoutAndParentResourceInvalidation
to RenderSVGResourceContainer.

For reduced dependencies call through a method with the same name on
SVGElement.

BUG=420022

Review URL: https://codereview.chromium.org/669153002

git-svn-id: svn://svn.chromium.org/blink/trunk@184258 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ed
Update khronos headers.
BUG=

Review URL: https://codereview.chromium.org/637953007

Cr-Commit-Position: refs/heads/master@{#300868}
jl
Don't use PLY cache files in Tools/Scripts/run-bindings-tests
We don't need the caching, and disabling it avoids cache coherency issues
as well as leaving untracked files in the tree.

BUG=426339

Review URL: https://codereview.chromium.org/646283004

git-svn-id: svn://svn.chromium.org/blink/trunk@184249 bbb929c8-8fbe-4397-9dbb-9b2b20218538
andersr
Convert fast/multicol/flipped-blocks-border-after to reftest.
R=mstensho@opera.com
BUG=386567

Review URL: https://codereview.chromium.org/669603003

git-svn-id: svn://svn.chromium.org/blink/trunk@184248 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Decouple content transform fiddling from SVGRenderingContext::renderSubtree
The "content transform" is essentially a property of the call-site, and
is hence invariant for a sequence of calls to renderSubtree.
This means we ought to be able to save-mutate-restore (SMR) once per
call-site, and not per call to renderSubtree. Achieve this by moving the
SMR to a helper SubtreeContentTransformScope, and then instantiate objects
where needed.
This means the transform-logistics can be cleaned up a bit for some of the
callers.

BUG=420022

Review URL: https://codereview.chromium.org/666403002

git-svn-id: svn://svn.chromium.org/blink/trunk@184245 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: move HistoryItem to the heap.
Doing so removes a FrameLoader-reachable Persistent reference to
a DocumentState.

R=
BUG=340522

Review URL: https://codereview.chromium.org/639023004

git-svn-id: svn://svn.chromium.org/blink/trunk@184228 bbb929c8-8fbe-4397-9dbb-9b2b20218538
andersr
Convert fast/multicol/columns-shorthand-parsing to reftest.
 * Use standards mode.
 * Adjust test slightly to make ref easier to make.

R=mstensho@opera.com
BUG=386567

Review URL: https://codereview.chromium.org/655253004

git-svn-id: svn://svn.chromium.org/blink/trunk@184222 bbb929c8-8fbe-4397-9dbb-9b2b20218538
atanasb
BookmarksFunction sending response after execution in all cases
On some occasions (most likely on big bookmarks models), BookmarksFunction
might be executed while bookmarks model is not yet ready. In this case we
must schedule the function for later execution (when model is ready) and
once function has executed we must SendResponse().

Adding SendResponse() in the above described scenario.

BUG=None

Review URL: https://codereview.chromium.org/660513002

Cr-Commit-Position: refs/heads/master@{#300744}
andersr
Convert fast/multicol/column-count-with-rules (and related) to reftests.
 * Make test small enough to fit in content_shell. (Only the baselines for
   the -webkit-writing-mode versions were incorrect, though).
 * Used explicit column-gap to simplify ref.
 * Used even-size column-rule to simplify ref.

R=mstensho@opera.com
BUG=386567

Review URL: https://codereview.chromium.org/670473002

git-svn-id: svn://svn.chromium.org/blink/trunk@184202 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Move resourceType() method to RenderSVGResourceContainer
BUG=420022

Review URL: https://codereview.chromium.org/672613002

git-svn-id: svn://svn.chromium.org/blink/trunk@184200 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
remove OVERRIDE/FINAL presubmit checks now the macros are gone
BUG=417463

Review URL: https://codereview.chromium.org/670073003

Cr-Commit-Position: refs/heads/master@{#300681}
andersr
Convert fast/multicol/column-break-with-balancing (and related) to reftests.
 * Use standards mode.
 * Make test small enough to fit in content_shell.
 * Use fixed widths columns to simplify ref.

R=mstensho@opera.com
BUG=386567

Review URL: https://codereview.chromium.org/671433002

git-svn-id: svn://svn.chromium.org/blink/trunk@184184 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
remove obsolete OVERRIDE/FINAL presubmit checks
BUG=417463

Review URL: https://codereview.chromium.org/655693003

Cr-Commit-Position: refs/heads/master@{#300675}
christiank
Update touch selection to only modify one selection point at a time.
This is made in preparation for enabling selection auto scroll using touch
handles.

BUG=340658

Review URL: https://codereview.chromium.org/653383002

git-svn-id: svn://svn.chromium.org/blink/trunk@184179 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Make CSS resize property non-inherited.
Align with CSS UI spec[1] and Gecko.

[1] http://dev.w3.org/csswg/css-ui/#resize

R=andersr@opera.com,timloh@chromium.org
BUG=425552

Review URL: https://codereview.chromium.org/639293008

git-svn-id: svn://svn.chromium.org/blink/trunk@184176 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
PartitionAlloc: Count direct mapped pages as committed
Extend committed pages counting to direct mapped allocations as well. We
already did adjust the total committed pages size when reallocating a
direct mapped allocation to reflect the difference, but since we didn't do
any counting when initially mapping or when unmapping, this would just
result in accounting errors.

Review URL: https://codereview.chromium.org/649583004

git-svn-id: svn://svn.chromium.org/blink/trunk@184169 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Add window.postMessage() use counters.
Instrument postMessage() to determine usage of the overload

  postMessage(data, origin, transferables)

R=mkwst
BUG=425896

Review URL: https://codereview.chromium.org/670893003

git-svn-id: svn://svn.chromium.org/blink/trunk@184160 bbb929c8-8fbe-4397-9dbb-9b2b20218538
kolczyk
Make sure new site instance (and therefore) render is used when navigating away
from blank page (about:blank) that has been loaded in WebUI-bindings-enabled renderer.

This currently reproduces in process models other than default
process-per-site(-instance) as they only enforce new renderer
on webui-vs-regular navigations and fail to recognize that about:blank
might have been loaded in WebUI (as per http://crbug.com/42547).

This CL includes the browser test that reproduces this problem
and verifies the fix.

BUG=424526

Review URL: https://codereview.chromium.org/659293002

Cr-Commit-Position: refs/heads/master@{#300645}
andersr
Convert fast/multicol/client-rects.html to reftest.
 * Use standards mode.
 * Use inline-block to make all the content fit in content_shell.
 * Use 'margin: 0' for input=range to simplify the reference file.
 * Use a solid color rather than opacity (to deal with the rogue extra
   "outline" drawn for alt-imgs).

R=mstensho@opera.com
BUG=386567

Review URL: https://codereview.chromium.org/667693002

git-svn-id: svn://svn.chromium.org/blink/trunk@184128 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
fix broken xdisplaycheck dependency
Followup to:
https://codereview.chromium.org/601263002

BUG=416594

Review URL: https://codereview.chromium.org/669883002

Cr-Commit-Position: refs/heads/master@{#300508}
rune
Fix crash from DescendantInvalidationSet::show().
Adding a dictionary without a name to TracedValue without being inside an
array asserts. Added an array around the invalidation set to avoid that
crash from DescendantInvalidationSet::show() which is used for debugging.

R=kouhei@chromium.org
BUG=425577

Review URL: https://codereview.chromium.org/637383004

git-svn-id: svn://svn.chromium.org/blink/trunk@184097 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Make RenderSVGResource::requestPaintingResource an implementation detail
This allows "simple color" and resource-based paint-servers to be
separated, and clears the path for removing RenderSVGResource from the
inheritance chain.
Rename requestPaintingResource to requestPaint, because it no longer
return (only) a 'resource'.
RenderSVGResource::sharedSolidPaintingResource becomes unused - as well
as RenderSVGResourceSolidColor, so remove those.

BUG=420022

Review URL: https://codereview.chromium.org/658333003

git-svn-id: svn://svn.chromium.org/blink/trunk@184094 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Remove includes of RenderSVGResource.h where it's not used
Some additional unused includes nearby also bite the dust.

BUG=420022

Review URL: https://codereview.chromium.org/666143003

git-svn-id: svn://svn.chromium.org/blink/trunk@184091 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
svg/animations/svglengthlist-animation-3.html no longer flaky
Doesn't appear flaky anymore based on the dashboard.

BUG=350827

Review URL: https://codereview.chromium.org/670723002

git-svn-id: svn://svn.chromium.org/blink/trunk@184087 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
PartitionAlloc: Remove the 2 GB per-partition address space limit
Depending on allocation patterns, the allocator sometimes uses a lot more
address space than actual committed memory, so the limit -- which was
enforced by crashing -- would sometimes be reached even though actual
memory usage was significantly lower.

Review URL: https://codereview.chromium.org/658113002

git-svn-id: svn://svn.chromium.org/blink/trunk@184081 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Terminate worker threads before detaching main thread.
To avoid worker shutdown touching a detached main thread's heap, move
up the termination of worker threads in the shutdown sequence.

R=haraken,tzik
BUG=414380

Review URL: https://codereview.chromium.org/670683002

git-svn-id: svn://svn.chromium.org/blink/trunk@184071 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r184049.
R=haraken
BUG=
NOTRY=true

Review URL: https://codereview.chromium.org/663313002

git-svn-id: svn://svn.chromium.org/blink/trunk@184053 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ed
Add a commandline flag for disabling the SVG 1 DOM.
Depends on https://codereview.chromium.org/474013004.

BUG=415074

Review URL: https://codereview.chromium.org/577943002

Cr-Commit-Position: refs/heads/master@{#300436}
sigbjornf
Remove now-unnecessary VectorTraits specializations.
Following r183947's improvements to VectorTraits accuracy, remove some
redundant specializations.

R=tkent
BUG=

Review URL: https://codereview.chromium.org/654933004

git-svn-id: svn://svn.chromium.org/blink/trunk@184046 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: move ScriptLoader to the heap.
So as to be able to trace its PendingScript part object.

(Initially landed as r183909, relanded after r183984 fix.)

R=haraken
BUG=

Review URL: https://codereview.chromium.org/660233002

git-svn-id: svn://svn.chromium.org/blink/trunk@184013 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
[New Multicolumn] Let updatePagination() do its job also when composited.
Otherwise, layers inside multicol will become non-paginated if relaid out
after initial paint.

BUG=359877
R=jchaffraix@chromium.org

Review URL: https://codereview.chromium.org/660793002

git-svn-id: svn://svn.chromium.org/blink/trunk@184012 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan:fix build after r183981.
TBR=oilpan-reviews,haraken
BUG=423823
NOTRY=true

Review URL: https://codereview.chromium.org/665093002

git-svn-id: svn://svn.chromium.org/blink/trunk@183988 bbb929c8-8fbe-4397-9dbb-9b2b20218538
joaoe
Made SuspendableTimer smaller (removed redudant m_active field)
And fixed the FIXME in SuspendableTimer::resume()

Review URL: https://codereview.chromium.org/613163006

git-svn-id: svn://svn.chromium.org/blink/trunk@183986 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Fix SVGResources::hasResourceData predicate to match method name
Current predicate is "has-no-resource-data". Negate, and negate users.

BUG=420022

Review URL: https://codereview.chromium.org/639343003

git-svn-id: svn://svn.chromium.org/blink/trunk@183983 bbb929c8-8fbe-4397-9dbb-9b2b20218538
andersr
Move special code for 'shape-outside' out of StyleBuilderFunctions.cpp.tmpl.
There should not be special code generation for a single property, at
least not in cases where a converter can easily be used instead.

Changes:

 * Assume that 'value' is either 'none', an image value, or a list of
   values.
 * Use primitive value mapping for CSSBoxType, since parser ensures
   that only valid values go though.

R=timloh@chromium.org

Review URL: https://codereview.chromium.org/645073003

git-svn-id: svn://svn.chromium.org/blink/trunk@183982 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Blink GC plugin: Gracefully handle cyclic part objects.
When checking a class if it or its part objects don't define GC roots,
avoid looping on part objects that are cyclic. i.e., the part object
containing a collection that refers back to itself.

R=haraken
BUG=424962

Review URL: https://codereview.chromium.org/666473003

Cr-Commit-Position: refs/heads/master@{#300256}
sigbjornf
Oilpan: fix build after r183972.
With Oilpan, ScriptWrappable has no destructor, so we need to provide
a virtual destructor for RefCounted<DOMArrayBufferView> instead.

TBR=oilpan-reviews,haraken
BUG=235436
NOTRY=true

Review URL: https://codereview.chromium.org/645993004

git-svn-id: svn://svn.chromium.org/blink/trunk@183976 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: move context menu providers to the heap.
Avoids keeping Persistent<> references on CustomContextMenuProvider.

R=haraken
BUG=340522

Review URL: https://codereview.chromium.org/665763002

git-svn-id: svn://svn.chromium.org/blink/trunk@183966 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Use style invalidation sets for :-webkit-autofill.
Add invalidation features to a set for :-webkit-autofill and move
CSSSelector::PseudoAutofill away from the list of pseudo classes requiring
subtree style recalc.

The pseudo type cases in invalidationSetForSelector were re-ordered to
match the enum order.

R=chrishtr@chromium.org,esprehn@chromium.org
BUG=424581

Review URL: https://codereview.chromium.org/660273002

git-svn-id: svn://svn.chromium.org/blink/trunk@183955 bbb929c8-8fbe-4397-9dbb-9b2b20218538
bratell
Expanding Type Traits to make Vector use mem ops more.
Vector has several code paths depending on whether the encapsulated
object can be handled with memmove/memcpy/memset or not. The fast path
with memops is used by many objects, but unfortunately that 
requires manual hinting in every class because the type traits 
used are not strong enough.

By using type trait functions available in all modern compilers it's
possible to more intelligently select the most optimal code path.

Preferably the code would use the new type traits in C++ 11 but
unfortunately that requires a modern c++ library. Luckily, those
libraries are mostly just thin wrappers on top of de facto-standard
compiler extension functions anyway.

With clang this cuts away 105 KB of machine code in blink. Mostly by 
no longer needing copy constructor and assignment operators in many
classes so those can be stripped from the binary. 

With gcc the changes are differently. The binary is smaller but only 
by 5 KB. It's clear that many Vector methods have become more compact but
it seems gcc compensated by spending that space elsewhere (more inlining?).

I don't have as good measurement tools for Visual Studio but there was no
huge difference in footprint.

Performance, all this is from a noisy development computer with a 
non-stable cpu clock frequency (turbo ftl...):

In LayoutTests most changes are within noise levels. But it looks like 
large tables and flexboxes might be 1-5% faster. In ParserTests 
html5-full-render (macro-benchmark) became 2-3% faster. There were also
indications that some micro-benchmarks became 30% faster since reverting
an earlier version of this caused that size performance regressions.

clang footprint numbers:
Total change: -109940 bytes
===========================
  14 added, totalling +3397 bytes across 8 sources
  19 removed, totalling -13302 bytes across 6 sources
  8 grown, for a net change of +578 bytes (2268 bytes before, 2846 bytes after) across 6 sources
  230 shrunk, for a net change of -100613 bytes (190909 bytes before, 90296 bytes after) across 49 sources

Biggest changes:
 -84410 - Source: /home/bratell/src/chromium/src/third_party/WebKit/Source/wtf/Vector.h - (gained 784, lost 85194)
  -6934 - Source: /home/bratell/src/chromium/src/third_party/WebKit/Source/wtf/Deque.h - (gained 0, lost 6934)
  -2267 - Source: /home/bratell/src/chromium/src/third_party/WebKit/Source/core/animation/css/CSSAnimationData.cpp - (gained 904, lost 3171)
...
   +245 - Source: /home/bratell/src/chromium/src/third_party/WebKit/Source/core/svg/animation/SVGSMILElement.cpp - (gained 245, lost 0)

BUG=
R=jochen@chromium.org

Review URL: https://codereview.chromium.org/594023002

git-svn-id: svn://svn.chromium.org/blink/trunk@183947 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Detach first letter pseudo element during RenderTextFragment destruction.
If the RenderTextFragment is being destroyed, make sure the pseudo element
is unlinked (Oilpan or not) during destroy() instead.

R=haraken
BUG=391288

Review URL: https://codereview.chromium.org/660413002

git-svn-id: svn://svn.chromium.org/blink/trunk@183943 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jiangj
Remove unused headers after CL 609833003
Review URL: https://codereview.chromium.org/638383003

Cr-Commit-Position: refs/heads/master@{#300174}
sigbjornf
Oilpan: fix build after r183913.
TBR=oilpan-reviews,haraken
BUG=391288
NOTRY=true

Review URL: https://codereview.chromium.org/659953004

git-svn-id: svn://svn.chromium.org/blink/trunk@183928 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Support style invalidation for scrollbar pseudo elements.
No need to fall back to subtree recalc for:

::-webkit-scrollbar
::-webkit-scrollbar-button
::-webkit-scrollbar-thumb
::-webkit-scrollbar-track
::-webkit-scrollbar-track-piece

R=chrishtr@chromium.org,esprehn@chromium.org
BUG=424546

Review URL: https://codereview.chromium.org/653423003

git-svn-id: svn://svn.chromium.org/blink/trunk@183922 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: move ScriptLoader to the heap.
So as to be able to trace its PendingScript part object.

R=haraken
BUG=

Review URL: https://codereview.chromium.org/660233002

git-svn-id: svn://svn.chromium.org/blink/trunk@183909 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ed
Experimental SVG 1.1 DOM runtime flag.
This adds UseCounters for SVG DOM, to see how much usage there is.

SVG DOM support is enabled by default, but it will be possible to disable it with a commandline flag (--disable-svg1dom), see https://codereview.chromium.org/577943002.

BUG=415074

Review URL: https://codereview.chromium.org/474013004

git-svn-id: svn://svn.chromium.org/blink/trunk@183898 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Pass more const RenderObject& in the vicinity of paint-servers
BUG=420022

Review URL: https://codereview.chromium.org/661643005

git-svn-id: svn://svn.chromium.org/blink/trunk@183882 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Support style invalidation for ::content.
Start supporting style invalidation for selectors containing ::content,
but still use SubtreeStyleChange on distributed children of the content
element.

If you have a selector ".class ::content .target", we will not invalidate
the whole subtree for the element matching ".class", but do style
invalidation for elements matching ".target". We will not cross the
insertion point during invalidation at this point, but merely mark
content elements found during style invalidation with SubtreeStyleChange.

That may be done in a separate patch, but it requires the style
invalidator to have invalidation sets scheduled for elements inside a
shadow tree affect style invalidation of its host subtree.

The addition of :host-context as boundary-crossing and insertion-point-
crossing is in preparation for supporting style invalidation for the
:host-context selector.

This CL is split out of [1].
This CL relies on [2].

[1] https://codereview.chromium.org/639433002/
[2] https://codereview.chromium.org/637273003/

R=esprehn@chromium.org,chrishtr@chromium.org
BUG=424123

Review URL: https://codereview.chromium.org/652223002

git-svn-id: svn://svn.chromium.org/blink/trunk@183875 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
replace newly added OVERRIDEs with override in chrome/browser/history/
BUG=417463

Review URL: https://codereview.chromium.org/652103003

Cr-Commit-Position: refs/heads/master@{#300085}
mostynb
replace newly added OVERRIDE with override in service worker unit tests
BUG=417463

Review URL: https://codereview.chromium.org/658223002

Cr-Commit-Position: refs/heads/master@{#300011}
rune
Corrected insertion point style recalc.
When crossing an insertion point boundary from style recalc, we mark the
distributed nodes for subtree style recalc. The reason is that the
distributed nodes will have their style recalculated in the context of
where they are distributed from. In the case below, changing class=a on
content will affect the style of class=b. The invalidation starts on
class=a and will not reach class=b in the invalidation traversal.

The bug was that InsertionPoint::willRecalcStyle had an early return
if the parent style change was at least an Inherit, but that is not the
case if the class change does not affect anything at, or above, the
insertion point, like in the case below.

<div>
  <:shadow-root>
    <style>.a::content .b { ... }</style>
    <content class="a"></content>
  </:shadow-root>
  <div class="b"></div>
</div>

R=esprehn@chromium.org,chrishtr@chromium.org
BUG=423293

Review URL: https://codereview.chromium.org/637273003

git-svn-id: svn://svn.chromium.org/blink/trunk@183844 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r183834.
TBR=oilpan-reviews,haraken
BUG=423536
NOTRY=true

Review URL: https://codereview.chromium.org/640813003

git-svn-id: svn://svn.chromium.org/blink/trunk@183837 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
change OVERRIDE to override in dbus/object_manager.h in comment
TBR=keybuk@chromium.org
BUG=417463

Review URL: https://codereview.chromium.org/652663002

Cr-Commit-Position: refs/heads/master@{#299962}
bratell
Smaller vtbls in RenderObject.
There are 101 different classes in the RenderObject class tree and
they share 150-250 virtual functions each. That scales to 60-200 KB
of vtbls (depending on architecture), which cost space in the
binary and time during startup since they need to be copied 
to RAM and adjusted. In fact, some RenderObject vtbls are the
largest vtbls in Chrome.

There doesn't have to be anything wrong with any of this, but the
use of 60+ virtual isXXX functions which were the same for 100 out of
101 classes could easily be replaced by a single virtual function, saving 20-50 KB of the space mentioned above (again depending on architecture).

When the class is known, the isOfType functions will constant fold, just
like the isFoo methods.

clang x64 space info:
Total change: -47075 bytes
==========================
  78 added, totalling +4731 bytes across 70 sources
  142 removed, totalling -4008 bytes across 70 sources
  397 grown, for a net change of +5064 bytes (296097 bytes before, 301161 bytes after) across 128 sources
  115 shrunk, for a net change of -52862 bytes (209130 bytes before, 156268 bytes after) across 5 sources

gcc x64 space into:
Total change: -49078 bytes
==========================
  141 added, totalling +19000 bytes across 90 sources
  200 removed, totalling -21292 bytes across 90 sources
  371 grown, for a net change of +17491 bytes (387125 bytes before, 404616 bytes after) across 164 sources
  261 shrunk, for a net change of -64277 bytes (387358 bytes before, 323081 bytes after) across 98 sources

R=esprehn@chromium.org

Review URL: https://codereview.chromium.org/613783002

git-svn-id: svn://svn.chromium.org/blink/trunk@183832 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r183816
R=haraken
BUG=
NOTRY=true

Review URL: https://codereview.chromium.org/661793002

git-svn-id: svn://svn.chromium.org/blink/trunk@183825 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Ignore continuations when collapsing an anonymous block.
When we decide to promote all children of an anonymous block and then
nuke it, ignore any continuation set on the new parent of the children,
to make sure that the children are in fact inserted as children of said
new parent, and not somewhere else in the tree.

This is a hack that's needed as long as we keep the old multicol
implementation. The root cause is probably buggy block continuation
handling, but fixing that would be risky.

BUG=421720

Review URL: https://codereview.chromium.org/656143003

git-svn-id: svn://svn.chromium.org/blink/trunk@183823 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r183810.
R=haraken
BUG=393913
NOTRY=true

Review URL: https://codereview.chromium.org/662633002

git-svn-id: svn://svn.chromium.org/blink/trunk@183814 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Remove redundant [WillBeGarbageCollected] uses on derived EventTargets.
[WillBeGarbageCollected] is already inherited from the parent EventTarget.

R=haraken
BUG=

Review URL: https://codereview.chromium.org/653263006

git-svn-id: svn://svn.chromium.org/blink/trunk@183800 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r183788.
TBR=oilpan-reviews,haraken
BUG=355467
NOTRY=true

Review URL: https://codereview.chromium.org/660723003

git-svn-id: svn://svn.chromium.org/blink/trunk@183797 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Removed unused scrollbar pseudo classes.
::-webkit-scrollbar-back and ::-webkit-scrollbar-forward had PseudoType
constants, but the strings were not recognized and no other code for
handling them present.

Review URL: https://codereview.chromium.org/659833002

git-svn-id: svn://svn.chromium.org/blink/trunk@183795 bbb929c8-8fbe-4397-9dbb-9b2b20218538
tmoniuszko
Correct style ranges on text eliding instead of clearing them
BUG=416798

Review URL: https://codereview.chromium.org/637293002

Cr-Commit-Position: refs/heads/master@{#299865}
fs
Let the paint-server client compute and pass any additional transform
The clients/callers of updateGraphicsContext(...) already independently
compute the same transform as computeResourceSpaceTransform(...). This
means that we can get rid of the latter in favor of the computations in the
callers - who just need to set up an AffineTransform and pass to
updateGraphicsContext(...).
This allows getting rid of the ApplyToTextMode resource-mode flag, and
doing so allows converting the RenderSVGResourceMode enum to a non-bitmask
such - and remove RenderSVGResourceModeFlags.

BUG=420022

Review URL: https://codereview.chromium.org/655263002

git-svn-id: svn://svn.chromium.org/blink/trunk@183776 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Use full white/black listing for invalidation selectors.
In preparation for dropping InvalidationSetMode [1], list all possible
selector components, either in an explicit black-list or white-listed in
an assert making sure that new selector component types are either black-
or white-listed when added.

The goal is to make the black-list really short as demonstrated in [1], but
getting rid of more of the unnecessarily black-listed ones should be
carefully done on a case-by-case basis. The intent of this patch is to
effectively keep the white-list unchanged.

[1] https://codereview.chromium.org/639433002

R=chrishtr@chromium.org,esprehn@chromium.org

Review URL: https://codereview.chromium.org/658813002

git-svn-id: svn://svn.chromium.org/blink/trunk@183767 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
[New Multicolumn] Make layer bounding boxes visual and relative to "root".
The bounding box needs to be the union of all the box's fragments.
There's one fragment for each column in which the box occurs.

In addition to being a union of all fragments, the bounding box needs to
be relative to the "root"/"ancestor" layer. If the root layer is also
inside the fragmentation context, we need to find the visual position of
the root layer as well (which may very well be in a different column than
the layer we're working on).

A lot was already almost correct in RenderLayer::fragmentsBoundingBox(),
while it was completely missing in RenderLayer::boundingBoxForCompositing().

Added a helper convertFromFlowThreadToVisualBoundingBoxInAncestor() to
deal with this piece of advanced technology in one place.

BUG=359877

Review URL: https://codereview.chromium.org/645023002

git-svn-id: svn://svn.chromium.org/blink/trunk@183766 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Ruby: Update beforeChild when redirecting renderer insertion to a child.
In addChild(), beforeChild needs to be a descendant of the parent
that's attempting to insert a renderer.

Therefore, when inserting a something, and we decide to drill further
into the tree to find a suitable parent for the new renderer, we need
to update beforeChild as we go, to make sure that it remains a
descendant of the parent that's trying to do the insertion.

In this case it was the list item code that attempted to insert a list
item marker beside a RenderRubyRun (beforeChild). However,
RenderRubyAsBlock::addChild() doesn't want that, so it tells its
RenderRubyRun child to insert it instead. RenderRubyRun will in turn
do the same thing, redirect insertion to its RenderRubyBase child,
which finally is a suitable parent for the marker (and pretty much
anything else). Doing this without updating beforeChild as we go,
caused problems, since beforeChild suddenly was a parent of the
inserting parent.

BUG=395522

Review URL: https://codereview.chromium.org/563763002

git-svn-id: svn://svn.chromium.org/blink/trunk@183761 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Hoist paint-server transform adaption out of preparePaintServer
The additional transform computed by the helper function
RenderSVGResourceContainer::computeResourceSpaceTransform by each
paint-server (that is CTM-dependent), only depends on the input to
preparePaintServer, and not the paint-server itself.
Hoist the computation into SVGRenderSupport::updateGraphicsContext.
This in turn mean that the various preparePaintServer implementations
no longer use the passed RenderStyle (previously only used for checking
for vector-effect) and RenderSVGResourceModeFlags, so remove those.
computeResourceSpaceTransform w/ associated helpers are moved to
SVGRenderSupport.

BUG=420022

Review URL: https://codereview.chromium.org/652243002

git-svn-id: svn://svn.chromium.org/blink/trunk@183746 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r183735.
TBR=haraken,oilpan-reviews
BUG=421948
NOTRY=true

Review URL: https://codereview.chromium.org/655213002

git-svn-id: svn://svn.chromium.org/blink/trunk@183741 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r183736.
TBR=haraken,oilpan-reviews
BUG=397902
NOTRY=true

Review URL: https://codereview.chromium.org/656093002

git-svn-id: svn://svn.chromium.org/blink/trunk@183740 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Fold SVGRenderSupport::fillOrStrokePath into only user
Only used in SVGTextRunRenderingContext::drawSVGGlyphs. Fold up and
simplify. Clean up some includes.

BUG=420022

Review URL: https://codereview.chromium.org/657553002

git-svn-id: svn://svn.chromium.org/blink/trunk@183732 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Fold away SVGInlineTextBoxPainter::paintDecorationWithStyle
The geometry is the same in both the stroke and the fill case, which means
it can be hoisted into the caller (paintDecoration). That leaves only some
fairly trivial code in paintDecorationWithStyle, so fold it up entirely.

BUG=420022

Review URL: https://codereview.chromium.org/654873002

git-svn-id: svn://svn.chromium.org/blink/trunk@183705 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
declare extern template classes sooner
This avoids a gcc warning that is promoted to an error:
error: type attributes ignored after type is already defined [-Werror=attributes]

(Tested with gcc 4.8.2-19ubuntu1.)

BUG=414363

Review URL: https://codereview.chromium.org/643703003

Cr-Commit-Position: refs/heads/master@{#299532}
mstensho
Be consistent about writing modes in boundingBoxForCompositingOverlapTest().
Always use "physical" rectangles (i.e. flip for writing-mode). This is what
boundingBoxForCompositing() already uses.

BUG=423372

Review URL: https://codereview.chromium.org/653973002

git-svn-id: svn://svn.chromium.org/blink/trunk@183694 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
remove the FINAL macro
All uses of the FINAL macro have been removed now, let's remove the
macro itself.

BUG=417463

Review URL: https://codereview.chromium.org/655543003

Cr-Commit-Position: refs/heads/master@{#299523}
sigbjornf
Oilpan: fix build after r183657.
TBR=oilpan-reviews,haraken
BUG=
NOTRY=true

Review URL: https://codereview.chromium.org/653053002

git-svn-id: svn://svn.chromium.org/blink/trunk@183666 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Skip rule matching during animations.
If a style change is due to animations updating their interpolated values
only, store a clone of the RenderStyle before the animated properties are
applied to use as a base for updating RenderStyle for the next frames.

The base RenderStyle is stored on the ActiveAnimations object and cleared
when a recalc is triggered by changes that require rule matching.

The machinery for detecting if a LocalStyleChange is caused by an animation
update only was already in place, so this CL is making use of that.

Running blink_perf.animation shows a frame rate increase of 18-40% with
the exception of three tests which are unchanged.

In general this seems to shave off nearly 50% of the time used in
recalcStyle for each animation frame if no inherited properties are
animated. For instance, in "The expansion of the dictionary definition card"
from issue 377939.

R=dstockwell@chromium.org,esprehn@chromium.org
BUG=377939,421822

Review URL: https://codereview.chromium.org/635203003

git-svn-id: svn://svn.chromium.org/blink/trunk@183662 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
replace OVERRIDE with override in courgette/
R=dgarrett@chromium.org
BUG=417463

Review URL: https://codereview.chromium.org/655553003

Cr-Commit-Position: refs/heads/master@{#299446}
andersr
Remove -webkit-aspect-ratio.
This property is parsed and stored on RenderStyle, but it's not
used anywhere, i.e. it has no effect.

If we later decide that we want this after all, we can re-implement
it as 'aspect-ratio' behind a flag.

Review URL: https://codereview.chromium.org/647723002

git-svn-id: svn://svn.chromium.org/blink/trunk@183652 bbb929c8-8fbe-4397-9dbb-9b2b20218538
andersr
Store [-webkit-]transform-origin as a TransformOrigin.
This makes it possible to use a converter, and makes
style/animation application cleaner.

Review URL: https://codereview.chromium.org/644953003

git-svn-id: svn://svn.chromium.org/blink/trunk@183651 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
remove some new OVERRIDE instances in ui/
BUG=417463

Review URL: https://codereview.chromium.org/636233004

Cr-Commit-Position: refs/heads/master@{#299444}
rune
Separate method for adding features to an invalidation set.
Tried to improve readability. Also re-arranged the for-loop a bit.

This CL is part of splitting up [1].

[1] https://codereview.chromium.org/639433002

R=chrishtr@chromium.org

Review URL: https://codereview.chromium.org/652703002

git-svn-id: svn://svn.chromium.org/blink/trunk@183633 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
replace newly added OVERRIDE in content/
R=jochen@chromium.org,falken@chromium.org
BUG=417463

Review URL: https://codereview.chromium.org/653593003

Cr-Commit-Position: refs/heads/master@{#299418}
sigbjornf
Remove unused ScrollAnimatorNone::PerAxisData constructor argument.
The 'parent' argument is not used, remove it.

This implicitly fixes an incorrect invocation of the constructor from
ScrollAnimatorNoneTest::SavePerAxisData, which following r183583 was
passing in an uninitialized pointer value as argument.

R=mkwst
BUG=

Review URL: https://codereview.chromium.org/648273002

git-svn-id: svn://svn.chromium.org/blink/trunk@183625 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
fix newly added OVERRIDEs in chrome/browser/ui/
BUG=417463

Review URL: https://codereview.chromium.org/648133002

Cr-Commit-Position: refs/heads/master@{#299342}
fs
Introduce SVGPaintServer
Fetch the actual fill from the various paint-server RenderSVGResources
into a new "data blob" SVGPaintServer. This makes said resources
independent of the GC, and means that GC-state can be managed more
directly by the caller.
Since this makes postApplyResource useless, it's removed, and
applyResource is renamed to preparePaintServer.
Some functions residing on RenderSVGResource is moved to SVGPaintServer.
Paint-server fetch+application is moved to updateGraphicsContext, which
is also changed to return a bool indicating if a paint-server is
available. Handling of clip-path-as-mask is also moved here.

BUG=420022

Review URL: https://codereview.chromium.org/638933002

git-svn-id: svn://svn.chromium.org/blink/trunk@183619 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: eager resource disposal on MemoryCache eviction.
Promptly let go of a memory cache entry's Resource when evicting it,
and do not wait until the next GC to strike. This provides the same
behavior & lifetime for the resource as non-Oilpan.

R=mkwst
BUG=420068

Review URL: https://codereview.chromium.org/649213002

git-svn-id: svn://svn.chromium.org/blink/trunk@183606 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r183596.
TBR=haraken,oilpan-reviews
BUG=
NOTRY=true

Review URL: https://codereview.chromium.org/648193002

git-svn-id: svn://svn.chromium.org/blink/trunk@183602 bbb929c8-8fbe-4397-9dbb-9b2b20218538
andersr
Store [-webkit-]perspective-origin as a LengthPoint.
Using a LengthPoint for this property makes it possible to use
a converter rather than custom code, and it makes animation
building cleaner too.

The setPerspectiveOrigin[X,Y] are kept because of the corresponding
prefixed properties, but they can be removed eventually.

Review URL: https://codereview.chromium.org/643893002

git-svn-id: svn://svn.chromium.org/blink/trunk@183600 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
fix newly added OVERRIDE in profile_impl_io_data.h
BUG=417463

Review URL: https://codereview.chromium.org/653583002

Cr-Commit-Position: refs/heads/master@{#299285}
mostynb
remove new OVERRIDEs added to mojo/
BUG=417463

Review URL: https://codereview.chromium.org/639043003

Cr-Commit-Position: refs/heads/master@{#299278}
andersr
Use StyleBuilderConverter for [-webkit-]perspective.
We don't need custom behavior for this property.

Review URL: https://codereview.chromium.org/645043002

git-svn-id: svn://svn.chromium.org/blink/trunk@183596 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
replace OVERRIDE and FINAL with override and final in chrome/browser/[a-i]*
TBR=dgozman@chromium.org
BUG=417463

Review URL: https://codereview.chromium.org/625113002

Cr-Commit-Position: refs/heads/master@{#299274}
andersr
Move style building for grid-auto-flow to StyleBuilderConverter.
There doesn't appear to be a reason for this property to have
custom behavior. It's better to use a converter and call that
from the generated function.

Review URL: https://codereview.chromium.org/642303002

git-svn-id: svn://svn.chromium.org/blink/trunk@183595 bbb929c8-8fbe-4397-9dbb-9b2b20218538
andersr
Remove CachedUAStyle::hasAppearance.
As of f885f9b1178fa278beafd201fb92a93af2117d64, this variable is now
pointless, because the existence of a CachedUAStyle is only possible
when 'hasAppearance' is 'true'.

Review URL: https://codereview.chromium.org/639963005

git-svn-id: svn://svn.chromium.org/blink/trunk@183594 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix ref counting of derived SVG property objects.
Following r183582, RefCountedGarbageCollected<T>::m_refCount is left as
0. This is incompatible with the derived SVG objects which have a base
object (SVGPropertyBase) that's a RefCountedGarbageCollected<> object,
but the derived objects are all exposed as if they were deriving from
a RefCounted<T> base.

Adjust the ref count upon construction of SVGPropertyBase to provide
that illusion.

TBR=haraken,oilpan-reviews
BUG=340522
NOTRY=true

Review URL: https://codereview.chromium.org/650033002

git-svn-id: svn://svn.chromium.org/blink/trunk@183586 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Move the Widget hierarchy to the Oilpan heap.
Turn Widget into a GCable object, along with its derived objects
(PluginView, FrameView, Scrollbar, PopupContainer).

R=haraken
BUG=340522

Review URL: https://codereview.chromium.org/603193005

git-svn-id: svn://svn.chromium.org/blink/trunk@183583 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Steer clear of g++ scoping bug in range-based for loop.
With g++, the scope of the per-element local variable currently
(g++-4.8.1) and incorrectly extends over the generator/range
expression also,

  https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54430

Rename the loop variable in CachedMatchedPropertiesHashTraits's
traceInCollection() to avoid running into the bug.

R=haraken
BUG=

Review URL: https://codereview.chromium.org/646013002

git-svn-id: svn://svn.chromium.org/blink/trunk@183574 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Rename wholeSubtree to adjacent.
Using subtree invalidation is a current consequence of adjacent
combinators. Using "adjacent" as a feature should be more understandable.

Also tried to make the code more readable for the combinator handling in
general.

R=chrishtr@chromium.org,esprehn@chromium.org

Review URL: https://codereview.chromium.org/641583002

git-svn-id: svn://svn.chromium.org/blink/trunk@183571 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Document that philipj/fs review <track>, WebVTT, etc.
NOTRY=true

Review URL: https://codereview.chromium.org/648483004

git-svn-id: svn://svn.chromium.org/blink/trunk@183543 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Remove accidental core/animation/OWNERS entries
R=haraken,ager
BUG=
NOTRY=true

Review URL: https://codereview.chromium.org/645913002

git-svn-id: svn://svn.chromium.org/blink/trunk@183542 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Move color chooser objects to the Oilpan heap.
Keep these on the heap so that their raw pointers to heap objects can be
correctly traced.

R=mkwst,haraken,tkent,keishi
BUG=340522

Review URL: https://codereview.chromium.org/631833002

git-svn-id: svn://svn.chromium.org/blink/trunk@183538 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Move PinchViewport to the Oilpan heap.
By having it on the heap, the FrameHost back reference can be properly
accounted for during GCs.

R=haraken
BUG=340522

Review URL: https://codereview.chromium.org/642003002

git-svn-id: svn://svn.chromium.org/blink/trunk@183532 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ed
Accelerate the 'lighten' blendmode.
If GL_EXT_blend_minmax is available then make use of that
to accelerate blending for the 'lighten' blendmode.

BUG=243223

Review URL: https://codereview.chromium.org/614953002

Cr-Commit-Position: refs/heads/master@{#299080}
sigbjornf
Oilpan: fix build after r183495.
TBR=haraken
BUG=389249
NOTRY=true

Review URL: https://codereview.chromium.org/648543004

git-svn-id: svn://svn.chromium.org/blink/trunk@183512 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jiangj
Correct NSScreen comparison on PPAPI fullscreen switching
From OS X 10.10, NSApplicationDidChangeScreenParametersNotification
will be sent when window enters fullscreen, and [NSScreen screens]
will be updated with new NSScreen instances equal to the previous
ones but with different pointer values. As a result, using == to
compare pointers of desiredScreen and current menu bar/dock screen
will break as the containsObject: check in -update does isEqual:
comparison.

This doesn't affect Chrome as Chrome is using EmbedsFullscreenWidget().

Review URL: https://codereview.chromium.org/635363002

Cr-Commit-Position: refs/heads/master@{#298989}
fs
Remove RenderSVGResourceContainer::cast()
Fold into getRenderSVGResourceById<Renderer>.

BUG=420022

Review URL: https://codereview.chromium.org/631233002

git-svn-id: svn://svn.chromium.org/blink/trunk@183484 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
change newly added OVERRIDE to override in sync/
BUG=417463

Review URL: https://codereview.chromium.org/640093002

Cr-Commit-Position: refs/heads/master@{#298929}
sigbjornf
Oilpan: fix build after r183460.
R=haraken
BUG=420527
NOTRY=true

Review URL: https://codereview.chromium.org/642843002

git-svn-id: svn://svn.chromium.org/blink/trunk@183472 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
change newly added OVERRIDE to override in components/
BUG=417463

Review URL: https://codereview.chromium.org/640903002

Cr-Commit-Position: refs/heads/master@{#298870}
mostynb
change more OVERRIDE instances to override in gin/
BUG=417463

Review URL: https://codereview.chromium.org/639833004

Cr-Commit-Position: refs/heads/master@{#298856}
sigbjornf
Unindent some class declarations in workers/
Be consistent and follow Blink style of not indenting declarations
inside a namespace scope.

R=haraken
BUG=

Review URL: https://codereview.chromium.org/642013002

git-svn-id: svn://svn.chromium.org/blink/trunk@183456 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
replace OVERRIDE and FINAL with override and final in net/
BUG=417463

Review URL: https://codereview.chromium.org/623213004

Cr-Commit-Position: refs/heads/master@{#298844}
mostynb
replace OVERRIDE and FINAL with override and final in ui/
BUG=417463

Review URL: https://codereview.chromium.org/623293004

Cr-Commit-Position: refs/heads/master@{#298839}
sigbjornf
Retire fast/dom/Window/window-early-properties-xhr.html flaky expectation.
No evidence of it being slow on Windows any longer.

R=
BUG=409713
NOTRY=true

Review URL: https://codereview.chromium.org/643593002

git-svn-id: svn://svn.chromium.org/blink/trunk@183449 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
remove more OVERRIDE instances in remoting/
BUG=417463

Review URL: https://codereview.chromium.org/638213002

Cr-Commit-Position: refs/heads/master@{#298829}
mostynb
change newly added OVERRIDE to override in ash/
R=jonross@chromium.org,flackr@chromium.org,skuhne@chromium.org
BUG=417463

Review URL: https://codereview.chromium.org/634343003

Cr-Commit-Position: refs/heads/master@{#298824}
mostynb
replace OVERRIDE with override in third_party/libaddressinput/chromium/
BUG=417463

Review URL: https://codereview.chromium.org/638243002

Cr-Commit-Position: refs/heads/master@{#298821}
sigbjornf
Oilpan: fix build after r183426.
TBR=haraken,oilpan-reviews
BUG=383125
NOTRY=true

Review URL: https://codereview.chromium.org/639133002

git-svn-id: svn://svn.chromium.org/blink/trunk@183442 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
[New Multicolumn] Correct paint rectangle calculation for compositing.
This allows for enabling composited layers inside flow threads, since it's
not completely broken anymore.

BUG=359877

Review URL: https://codereview.chromium.org/625903004

git-svn-id: svn://svn.chromium.org/blink/trunk@183437 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
change newly added OVERRIDE to override in media/
BUG=417463

Review URL: https://codereview.chromium.org/638093004

Cr-Commit-Position: refs/heads/master@{#298814}
mostynb
replace OVERRIDE and FINAL with override and final in remoting/
BUG=417463

Review URL: https://codereview.chromium.org/628753002

Cr-Commit-Position: refs/heads/master@{#298734}
rune
Use C++11 range based iteration for invalidation sets.
Shortens down the source and improves readability.
Also removed a left-over include.

R=chrishtr@chromium.org

Review URL: https://codereview.chromium.org/633343002

git-svn-id: svn://svn.chromium.org/blink/trunk@183416 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jmanko
Use estimated vsync period on Android
Use estimated vsync period to deal with buggy
getRefreshRate() implementations

BUG=418955

Review URL: https://codereview.chromium.org/611313003

Cr-Commit-Position: refs/heads/master@{#298699}
fs
Prefer using RenderSVGResourceMode when possible
It's not too difficult to keep track of when we're about to paint text,
so all methods in SVGInlineTextBoxPainter taking
RenderSVGResourceModeFlags can be adjusted to take RenderSVGResourceMode
instead, and then ApplyToTextMode can be ored in to the few (one) calls
where it's needed.
With the use (setting) of the ApplyToTextMode flag limited to a single
method, it makes sense to sink the calls to setTextDrawingMode out of
RenderSVGResource::updateGraphicsContext.
Bonus: Somewhat increased type-safety.

BUG=420022

Review URL: https://codereview.chromium.org/637503003

git-svn-id: svn://svn.chromium.org/blink/trunk@183398 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r183074.
TBR=haraken,oilpan-reviews
BUG=419270
NOTRY=true

Review URL: https://codereview.chromium.org/639693002

git-svn-id: svn://svn.chromium.org/blink/trunk@183382 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
replace OVERRIDE and FINAL with override and final in base/
BUG=417463

Review URL: https://codereview.chromium.org/611153004

Cr-Commit-Position: refs/heads/master@{#298520}
joleksy
Allow default font size changing on Linux.

See https://codereview.chromium.org/549303004/ for Chromium part.


BUG=

Review URL: https://codereview.chromium.org/570243002

git-svn-id: svn://svn.chromium.org/blink/trunk@183350 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Move common GC state update code out of paint-server application
All paint-server RenderSVGResources contain the same code to update the
GC state, transferring stroke properties, fill-rule etc. as required by
the resource mode. They only deviate in which set{Stroke,Fill}* variant
they end up calling.
Move the part that updates non-(direct-)paint-server state to a new
helper SVGRenderSupport::updateGraphicsContext, and then sink that out
of the various applyResource methods.
The special case handling of clipping masks in
RenderSVGResourceSolidColor is transformed into a single block, leaving
the generic path oblivious to this detail.

BUG=420022

Review URL: https://codereview.chromium.org/630903003

git-svn-id: svn://svn.chromium.org/blink/trunk@183332 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
replace OVERRIDE and FINAL with override and final in android_webview/
BUG=417463

Review URL: https://codereview.chromium.org/623833003

Cr-Commit-Position: refs/heads/master@{#298465}
fs
Move RenderSVGResource::cast() to RenderSVGResourceContainer
Only use with/called on the latter.

BUG=420022

Review URL: https://codereview.chromium.org/630103002

git-svn-id: svn://svn.chromium.org/blink/trunk@183323 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
replace OVERRIDE and FINAL with override and final in chrome/browser/[r-z]*
BUG=417463

Review URL: https://codereview.chromium.org/629603002

Cr-Commit-Position: refs/heads/master@{#298430}
kjakubowski
On some webpages (for example: stackoverflow.com), touch scrolling speed is too slow / fast when zoomed in / out.
The problem was that the zoom multiplier was applied twice:
- in handleGestureScrollUpdate
- somewhere deeper when handling wheel event

This patch fixes this issue, by passing unscaled value to EventHandler::sendScrollEventToView(...).

BUG=403304
TEST=Open stackoverflow.com, Set browser zoom to 50%, touch scroll  (sendScrollEventToView path)
TEST=Open http://goo.gl/OYhULR, Set browser zoom to 200%, touch scroll text area  (RenderBox path)

Review URL: https://codereview.chromium.org/472463002

git-svn-id: svn://svn.chromium.org/blink/trunk@183318 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
[New Multicolumn] A renderer can't be both a parent and a sibling of another renderer.
In addChild(), beforeChild needs to be a descendant of the parent
that's attempting to insert a renderer.

When redirecting renderer insertion to a child
RenderMultiColumnFlowThread, update beforeChild if it's set to said
RenderMultiColumnFlowThread as well.

BUG=358597
R=leviw@chromium.org

Review URL: https://codereview.chromium.org/568443002

git-svn-id: svn://svn.chromium.org/blink/trunk@183315 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
replace OVERRIDE and FINAL with override and final in google_apis/
R=rogerta@chromium.org,dcheng@chromium.org
BUG=417463

Review URL: https://codereview.chromium.org/625293003

Cr-Commit-Position: refs/heads/master@{#298418}
mstensho
Remove unneeded flow thread awareness from accumulateOffsetTowardsAncestor().
We no longer have out-of-flow flow threads. Those were only used by CSS regions.

R=jchaffraix@chromium.org

Review URL: https://codereview.chromium.org/616453002

git-svn-id: svn://svn.chromium.org/blink/trunk@183313 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
replace OVERRIDE and FINAL with override and final in ipc/
BUG=417463

Review URL: https://codereview.chromium.org/633563002

Cr-Commit-Position: refs/heads/master@{#298413}
fs
Move remove(All)Client(s)FromCache to RenderSVGResourceContainer
These methods are never called on something that is only RenderSVGResource.

BUG=420022

Review URL: https://codereview.chromium.org/634593002

git-svn-id: svn://svn.chromium.org/blink/trunk@183299 bbb929c8-8fbe-4397-9dbb-9b2b20218538
andersr
Enable layer related tests in virtual/regionbasedmulticol.
These tests are passing with recent changes, so they don't need to be
skipped anymore.

R=rune@opera.com
BUG=359877

Review URL: https://codereview.chromium.org/632643002

git-svn-id: svn://svn.chromium.org/blink/trunk@183297 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Ensure logical height is overridden for stretch-aligned flex-box children
With an SVG in a flex-box context (as a flex-item), it's possible for a
document-wide layout to clear the override-height, and then issue a
partial (<svg> as layout-root) layout that recomputes the logical height
to whatever the <svg> root thinks it should be - disregarding the flex-box
context.
To fix this, make sure that a stretch-aligned flex-item always has an
override-height set, even if the logical height appear to be up-to-date.

BUG=397085

Review URL: https://codereview.chromium.org/423133002

git-svn-id: svn://svn.chromium.org/blink/trunk@183293 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
replace OVERRIDE and FINAL with override and final in sandbox/
R=cpu@chromium.org,dcheng@chromium.org
BUG=417463

Review URL: https://codereview.chromium.org/628233002

Cr-Commit-Position: refs/heads/master@{#298401}
mostynb
replace OVERRIDE and FINAL with override and final in chrome/browser/[j-q]*
BUG=417463

Review URL: https://codereview.chromium.org/624173002

Cr-Commit-Position: refs/heads/master@{#298338}
mostynb
replace OVERRIDE and FINAL with override and final in media/
BUG=417463

Review URL: https://codereview.chromium.org/623263003

Cr-Commit-Position: refs/heads/master@{#298317}
mostynb
replace OVERRIDE and FINAL with override and final in sync/
BUG=417463

Review URL: https://codereview.chromium.org/629733002

Cr-Commit-Position: refs/heads/master@{#298300}
mostynb
replace OVERRIDE and FINAL with override and final in device/
BUG=417463

Review URL: https://codereview.chromium.org/628873002

Cr-Commit-Position: refs/heads/master@{#298289}
mostynb
replace OVERRIDE and FINAL with override and final in mojo/
R=viettrungluu@chromium.org,dcheng@chromium.org
BUG=417463

Review URL: https://codereview.chromium.org/634483003

Cr-Commit-Position: refs/heads/master@{#298279}
sigbjornf
Rename ObjectAliveTrait::isAlive() to isHeapObjectAlive().
This method is only invoked by Visitor::isAlive() and never explicitly
declared in "user code", so switch to a name less likely to conflict
with what an object might otherwise provide.

R=haraken
BUG=420515

Review URL: https://codereview.chromium.org/633463002

git-svn-id: svn://svn.chromium.org/blink/trunk@183282 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
replace OVERRIDE and FINAL with override and final in cc/
BUG=417463

Review URL: https://codereview.chromium.org/628443002

Cr-Commit-Position: refs/heads/master@{#298271}
mostynb
replace OVERRIDE and FINAL with override and final in ppapi/
R=dmichael@chromium.org,dcheng@chromium.org
BUG=417463

Review URL: https://codereview.chromium.org/630883002

Cr-Commit-Position: refs/heads/master@{#298269}
mostynb
replace OVERRIDE and FINAL with override and final in chromecast/
R=damienv@chromium.org,dcheng@chromium.org
BUG=417463

Review URL: https://codereview.chromium.org/630663003

Cr-Commit-Position: refs/heads/master@{#298250}
mostynb
replace OVERRIDE and FINAL with override and final in components/
BUG=417463

Review URL: https://codereview.chromium.org/623133002

Cr-Commit-Position: refs/heads/master@{#298237}
fs
Simplify/cleanup {postApply,apply}Resource signatures
With the scope of this interface reduced, one argument to
postApplyResource can be removed, and the GraphicsContext*& can be
simplified to GraphicsContext*. Also change "unsigned short resourceMode"
to RenderSVGResourceModeFlags while we're changing all signatures.

BUG=420022

Review URL: https://codereview.chromium.org/629073003

git-svn-id: svn://svn.chromium.org/blink/trunk@183273 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Rename isRenderingMaskImage to isRenderingClipPathAsMaskImage
Also rename the PaintBehavior flag PaintBehaviorRenderingSVGMask
to PaintBehaviorRenderingClipPathAsMask.

BUG=420022

Review URL: https://codereview.chromium.org/623243003

git-svn-id: svn://svn.chromium.org/blink/trunk@183272 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
replace OVERRIDE and FINAL with override and final in chromeos/
BUG=417463

Review URL: https://codereview.chromium.org/628883002

Cr-Commit-Position: refs/heads/master@{#298229}
sigbjornf
Fix when fast/events/message-port-gc-closed.html forces a GC.
Delay the garbage collection until the event handler invocation has returned.

R=haraken
BUG=420061

Review URL: https://codereview.chromium.org/635473002

git-svn-id: svn://svn.chromium.org/blink/trunk@183263 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Introduce new entry-points for non-paint-server RenderSVGResources
The applyResource/postApplyResource entry-points defined in the
RenderSVGResource interface are not of much use to non-paint-server
resource-types (clipPath, mask, filter, marker), since they share
very little semantic-wise. This also mean that they impede changes
that could benefit the "other" type of resource.
Make the mentioned methods be used only for the paint-server
resources, and move the current functionality for mask/filter
(clipPath already has an interface of its own, as does marker)
to methods with the names prepareEffect/finishEffect.

This removes all actual uses of the RenderSVGResourceMode
ApplyToDefaultMode "flag", so drop it.

BUG=420022

Review URL: https://codereview.chromium.org/622393002

git-svn-id: svn://svn.chromium.org/blink/trunk@183261 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mathiash
Allow override of user agent depending on url.
BUG=419308

Review URL: https://codereview.chromium.org/614343002

Cr-Commit-Position: refs/heads/master@{#298216}
sigbjornf
Oilpan: move ScriptController+WindowProxy to the heap.
Turn LocalFrame's ScriptController into a GCed object, letting it
correctly trace its member reference back to its owner.

Having it be heap allocated also simplifies how its LocalFrame is kept
alive across calls that invoke scripts which indirectly detaches/removes
the frame.

Transitively do the exact same for ScriptController's owned WindowProxies.

R=mkwst,haraken
BUG=340522

Review URL: https://codereview.chromium.org/627933002

git-svn-id: svn://svn.chromium.org/blink/trunk@183255 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Use fragmented bounding box for hit-test/paint clipping.
When calculating the bounding box used for hit testing and paint clipping,
use the visual bounding box from the union of the fragments instead of the
flow thread coordinates.

The physicalBoundingBox method returned a bounding box in flow thread
coordinates and not visual coordinates. Rename it to boundingBox and
introduce a fragmentedBoundingBox to find the visual one.

Fixed a bug negation bug in previously unused convertToLayerCoords that
takes a LayoutRect.

This fixes the regressions introduced by 18e0c42d.

R=mstensho@opera.com
BUG=359877

Review URL: https://codereview.chromium.org/612323011

git-svn-id: svn://svn.chromium.org/blink/trunk@183251 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Consolidated checks for the PaintBehaviorRenderingSVGMask flag
Move various (more or less) open-coded checks of the
PaintBehaviorRenderingSVGMask flag to SVGRenderSupport, and call the new
function instead.

BUG=420022

Review URL: https://codereview.chromium.org/625933003

git-svn-id: svn://svn.chromium.org/blink/trunk@183250 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix (MSVC) build after r183241.
Rename WebFrame::isAlive(Visitor*, WebFrame*) to isFrameAlive(). Using
isAlive() is problematic wrt IsGarbageCollectedMixin<T>, which
syntactically probes for isAlive().

(MSVC is more eager about template instantiation and the probing for the
private WebFrame::isAlive() method is disallowed.)

R=haraken,tkent
BUG=
NOTRY=true

Review URL: https://codereview.chromium.org/628063003

git-svn-id: svn://svn.chromium.org/blink/trunk@183247 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Avoid some explicit WebSpeechRecognitionHandle() conversions.
It's now tidier to have these be implicit instead.

Also remove an unused WebSpeechGrammar() constructor + some Speech API
assignment operators.

R=
BUG=

Review URL: https://codereview.chromium.org/623953002

git-svn-id: svn://svn.chromium.org/blink/trunk@183242 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: extend tracing over WebFrame trees.
Have the tracing also encompass the parent and opener.

Also refreshed some unrelated LocalFrame handling comments.

TBR=tkent
R=haraken
BUG=340522

Review URL: https://codereview.chromium.org/594483002

git-svn-id: svn://svn.chromium.org/blink/trunk@183241 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
replace OVERRIDE and FINAL with override and final in chrome/browser/ui/[a-s]*
BUG=417463

Review URL: https://codereview.chromium.org/627043002

Cr-Commit-Position: refs/heads/master@{#298136}
mostynb
replace OVERRIDE and FINAL with override and final in chrome/browser/extensions/
BUG=417463

Review URL: https://codereview.chromium.org/624153002

Cr-Commit-Position: refs/heads/master@{#298134}
mostynb
replace OVERRIDE and FINAL with override and final in chrome/browser/ui/[t-v]*
BUG=417463

Review URL: https://codereview.chromium.org/628773002

Cr-Commit-Position: refs/heads/master@{#298129}
mostynb
replace OVERRIDE and FINAL with override and final in chrome/browser/ui/[w-z]*
BUG=417463

Review URL: https://codereview.chromium.org/629463003

Cr-Commit-Position: refs/heads/master@{#298128}
mostynb
replace OVERRIDE and FINAL with override and final in chrome/browser/chromeos/
BUG=417463

Review URL: https://codereview.chromium.org/623293003

Cr-Commit-Position: refs/heads/master@{#298120}
sigbjornf
Move PlatformEventDispatcher implementations to the Oilpan heap.
Make PlatformEventDispatcher a GC mixin, maintaining weak references
to its registered controllers.

R=haraken
BUG=340522

Review URL: https://codereview.chromium.org/619383002

git-svn-id: svn://svn.chromium.org/blink/trunk@183211 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
replace OVERRIDE and FINAL with override and final in athena/
BUG=417463

Review URL: https://codereview.chromium.org/623103002

Cr-Commit-Position: refs/heads/master@{#298050}
mostynb
replace OVERRIDE and FINAL with override and final in extensions/
BUG=417463

Review URL: https://codereview.chromium.org/622343002

Cr-Commit-Position: refs/heads/master@{#298042}
mostynb
replace OVERRIDE and FINAL with override and final in ash/
BUG=417463

Review URL: https://codereview.chromium.org/621133002

Cr-Commit-Position: refs/heads/master@{#298040}
andersr
Convert layer-related tests in fast/multicol to ref-tests.
layers-split-across-columns:

 * Use standards mode, not quirks mode.
 * Remove unnecessary uses of inline-block. (Abs. position instead).
 * Make things smaller, such that the entire test actually
   fits in the standard content_shell dimensions.

layers-in-multicol:

 * Standards mode.
 * Rewrote test to fit in content_shell.

Finally, removed related useless test-cases in fast/multicol/newmulticol.

R=mstensho@opera.com
BUG=380217

Review URL: https://codereview.chromium.org/615573003

git-svn-id: svn://svn.chromium.org/blink/trunk@183198 bbb929c8-8fbe-4397-9dbb-9b2b20218538
the_jk
Make FTS2 inclusion in SQLite optional
Only platforms/products that need to support old history files need
FTS2 support in the included SQLite library.

BUG=418082

R=shess@chromium.org
R=michaeln@chromium.org
R=erikwright@chromium.org

Review URL: https://codereview.chromium.org/606033002

Cr-Commit-Position: refs/heads/master@{#298022}
sigbjornf
Remove battery-status/page-visibility.html test expectation.
Test back to normal following r183158.

TBR=jsbell@chromium.org
BUG=419515
NOTRY=true

Review URL: https://codereview.chromium.org/610563003

git-svn-id: svn://svn.chromium.org/blink/trunk@183161 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: reliably track listening PlatformEventControllers.
Turn PlatformEventController into a GC mixin with Oilpan enabled, and
have the PlatformEventDispatcher instance track those via a Persistent
reference.

It seems precarious to rely on the controller lifetimes be maintained by
way of other references 'long enough' for the embedder's platform event
handling layer.

R=mlamouri,mkwst,haraken,timvolodine
BUG=419515

Review URL: https://codereview.chromium.org/618673002

git-svn-id: svn://svn.chromium.org/blink/trunk@183158 bbb929c8-8fbe-4397-9dbb-9b2b20218538
bratell
Use a more suitable storage for the timezone table.
Creating a runtime table of std::string objects, just to copy those
into a map, is not optimal from a runtime or footprint point of view.

Making the table use raw char pointers shrinks the code and data by 75%,
from 36 KB to 10 KB (clang, Linux, 64 bit content_shell).

clang:
Total change: -27266 bytes
==========================
  2 added, totalling +8448 bytes across 1 sources
  774 removed, totalling -36401 bytes across 2 sources
  1 grown, for a net change of +687 bytes (481 bytes before, 1168 bytes after) across 1 sources

R=estade@chromium.org,mark@chromium.org
BUG=

Review URL: https://codereview.chromium.org/573623003

Cr-Commit-Position: refs/heads/master@{#297821}
mmaliszkiewicz
Resources restored from CSS cache should be able to trigger InsecureContent messages
After a page reload resources such as an Image or a Font could be loaded
directly from CSS cache and browser may lose information about mixed content
so ViewHostMsg_DidDisplayInsecureContent or ViewHostMsg_DidRunInsecureContent
messages should be sent.

BUG=393572

Review URL: https://codereview.chromium.org/439223005

git-svn-id: svn://svn.chromium.org/blink/trunk@183103 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r183074.
TBR=haraken
BUG=409031
NOTRY=true

Review URL: https://codereview.chromium.org/615843003

git-svn-id: svn://svn.chromium.org/blink/trunk@183079 bbb929c8-8fbe-4397-9dbb-9b2b20218538
kolczyk
Don't ensure, in single-process mode, that WebUI render views are the only ones in the process, as it makes no sense
 - we have single process only and no process-separation is expected.

This allows testing navigation between WebUI and standard pages
in single-process mode.

BUG=

Review URL: https://codereview.chromium.org/298133002

Cr-Commit-Position: refs/heads/master@{#297683}
kolczyk
Fix for crash when attaching a frame in WebUI renderer.
It crashes when trying to install property on "chrome" object in Javascript.
Before the patch, the code assumes the "chrome" either does not exist
or is an object. Apparently, it holds "undefined" value in WebUI pages.

BUG=

Review URL: https://codereview.chromium.org/611483002

Cr-Commit-Position: refs/heads/master@{#297621}
sigbjornf
Have PlatformEventObserver implementations orderly stop on destruction.
Move out the stop-a-still-observing-observer-on-destruct handling to the
destructors of the objects that implement the pure virtual
SendStopMessage().

Cannot call upon a virtual from within ~PlatformEventObserver.

R=jochen@chromium.org,mkwst@chromium.org,mlamouri@chromium.org
BUG=

Review URL: https://codereview.chromium.org/613203002

Cr-Commit-Position: refs/heads/master@{#297614}
sigbjornf
Retire some beacon+ping flaky test expectations.
No longer signs of Windows flakiness for these; remove the expectations.

R=mkwst@chromium.org,ojan@chromium.org
BUG=374569
NOTRY=true

Review URL: https://codereview.chromium.org/615053004

git-svn-id: svn://svn.chromium.org/blink/trunk@183036 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Drop FilterDataState::Applying
This state is never transitioned to, so it can be removed.

Review URL: https://codereview.chromium.org/620483002

git-svn-id: svn://svn.chromium.org/blink/trunk@182947 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
fast/dom/navigator-{with-content-}detached-no-crash.html no longer leaks.
With the leak addressed, sync LeakExpectations.

TBR=kouhei@chromium.org
BUG=385384
NOTRY=true

Review URL: https://codereview.chromium.org/614923003

git-svn-id: svn://svn.chromium.org/blink/trunk@182929 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
BatteryManager: release promise resolver once resolved.
Do not retain the Promise resolver any longer than necessary.

This prevents a reported document leak for detached frame uses of
navigator.getBattery().

R=haraken
BUG=385384

Review URL: https://codereview.chromium.org/619583004

git-svn-id: svn://svn.chromium.org/blink/trunk@182921 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove default implementation of WebMediaPlayer::seekable()
BUG=417669

Review URL: https://codereview.chromium.org/604823002

git-svn-id: svn://svn.chromium.org/blink/trunk@182912 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Let the RenderFlowThread layer have an empty size.
The RenderFlowThread has a RenderLayer used as a helper for painting. The
layer got its bounds from the RenderFlowThread contents which is typically
a tall strip and not the size of the area that where the contents are
rendered. That resulted in unnecessarily expanding the height of the parent
RenderLayer backing. The MultiColumnSet already contributes the correct
sizes, thus we can return an empty bounding rectangle for the layer of the
RenderFlowThread.

R=mstensho@opera.com
BUG=418899

Review URL: https://codereview.chromium.org/612363002

git-svn-id: svn://svn.chromium.org/blink/trunk@182906 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Change <video controls=true> to just <video controls> in LayoutTests
This avoids the appearance of the attribute value being important.

NOTRY=true
R=fs@opera.com

Review URL: https://codereview.chromium.org/613153002

git-svn-id: svn://svn.chromium.org/blink/trunk@182905 bbb929c8-8fbe-4397-9dbb-9b2b20218538
bratell
Avoid repeated code when building SVG help tables.
This saves roughly 6 KB of code.

  Grown symbols:
       +123: blink::SVGFontFaceElement::parseAttribute(blink::QualifiedName const&, WTF::AtomicString const&) type=t, (was 330 bytes, now 453 bytes)
  Removed symbols:
        -94: blink::mapAttributeToCSSProperty(WTF::HashMap<WTF::StringImpl*, blink::CSSPropertyID, WTF::StringHash, WTF::HashTraits<WTF::StringImpl*>, WTF::HashTraits<blink::CSSPropertyID>, WTF::DefaultAllocator>*, blink::QualifiedName const&) type=t, size=94 bytes
  Shrunk symbols:
      -2121: blink::SVGElement::animatedPropertyTypeForCSSAttribute(blink::QualifiedName const&) type=t, (was 3795 bytes, now 1674 bytes)
      -3786: blink::SVGElement::cssPropertyIdForSVGAttributeName(blink::QualifiedName const&) type=t, (was 5076 bytes, now 1290 bytes)

R=fs@opera.com
BUG=

Review URL: https://codereview.chromium.org/610593002

git-svn-id: svn://svn.chromium.org/blink/trunk@182903 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Switch from WebMediaPlayer::maxTimeSeekable() to seekable()
BUG=417669

Review URL: https://codereview.chromium.org/599103003

Cr-Commit-Position: refs/heads/master@{#297395}
sigbjornf
Transfer SecurityOrigin overrides to Workers.
Should a Document be operating with a SecurityOrigin that grants
(powerful) abilities like disabling same-origin policy or allows
file access, have those transfer over to any new Workers created.

R=horo,mkwst,jochen
BUG=254993

Review URL: https://codereview.chromium.org/594803002

git-svn-id: svn://svn.chromium.org/blink/trunk@182897 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ed
Implement mix-blend-mode=screen using glBlendFunc.
This avoids creating a temporary texture for the blending step, and
if there's no background filter also avoids creating the backdrop texture.

BUG=

Review URL: https://codereview.chromium.org/608523003

Cr-Commit-Position: refs/heads/master@{#297385}
rune
Remove unused StyleChangeReason::Plugin.
The "reason" was used when setNeedsStyleRecalc was used to trigger a
re-attachment of plugin renderers.

After landing https://codereview.chromium.org/596773002 a lazy re-attach is
done instead and this constant is no longer in use.

Review URL: https://codereview.chromium.org/615663003

git-svn-id: svn://svn.chromium.org/blink/trunk@182879 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Re-attach plugin renderers in the standard way.
When embedded content changes its source or type, it potential needs to
change its renderer. That was done by reattaching the renderer using a
combination of SubtreeStyleChange plus an explicit reattach in a custom
willRecalcStyle callback. This CL uses a standard lazy reattach instead.

Three svg tests changed their expected repaint rectangles due to the
following reason:

The reattach in willRecalcStyle did not re-attach any whitespace siblings
like the standard reattach does (certainly wrong, but I don't know if it
actually is observable as a display property change is necessary to affect
the whitespace renderers afaik). Moving to standard reattach makes
reattachment of a whitespace sibling do paint invalidation for the closest
block ancestor.

It's possible that we can improve whitespace re-attachment by:

1. Not invalidate block containers for whitespace renderers (will they ever
   render anything?)

2. Detect if we need to reattach whitespace siblings before we do the actual
   reattachment.

R=esprehn@chromim.org,leviw@chromium.org

Review URL: https://codereview.chromium.org/596773002

git-svn-id: svn://svn.chromium.org/blink/trunk@182868 bbb929c8-8fbe-4397-9dbb-9b2b20218538
joaoe
Remove unused and undefined RenderImage::highQualityRepaintTimerFired
Not be confused with the one in ImageQualityController.

BUG=

Review URL: https://codereview.chromium.org/609293003

git-svn-id: svn://svn.chromium.org/blink/trunk@182854 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Simplify MediaController with C++11 range-base for loops
Some uses of MediaElementSequence::const_iterator remain, where the
first media element in m_mediaElements is handled differently.

Review URL: https://codereview.chromium.org/612873002

git-svn-id: svn://svn.chromium.org/blink/trunk@182845 bbb929c8-8fbe-4397-9dbb-9b2b20218538
andersr
Make style building for 'font-family' less custom.
This patch changes style building for 'font-family', such that the
CSSValue -> FontFamily conversion happens on the outside, rather than
passing the CSSValue directly to the FontBuilder. This aligns building
of 'font-family' more with how everything else works, and also removes the
final dependency on CSSValue in FontBuilder.

The in-flight struct FontDescription::FamilyDescription is used to
transfer FontFamily+GenericFamilyType from StyleBuilder::applyProperty to
FontBuilder.

Note: The unrelated FIXME was intentionally removed. I don't consider it
valid (at least not anymore).

R=dglazkov@chromium.org

Review URL: https://codereview.chromium.org/602373003

git-svn-id: svn://svn.chromium.org/blink/trunk@182839 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Use LocalStyleChange for content:attr() changes.
LocalStyleChange should be sufficient for updating pseudo elements when
attributes affecting the content property changes.

Review URL: https://codereview.chromium.org/609813002

git-svn-id: svn://svn.chromium.org/blink/trunk@182830 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Introduce WebMediaPlayer::seekable() to replace maxTimeSeekable()
TEST=LayoutTests/media/video-seekable.html

Update the test to check that seekable end time is between 5 and 7
seconds, as content/test.* are around 6 seconds long. This should
catch grossly incorrect implementations of seekable.

Also wait only for loadedmetadata, as that should be enough to
determine the seekable ranges, and an implementation waiting until
canplaythrough should fail the test.

BUG=417669

Review URL: https://codereview.chromium.org/607493002

git-svn-id: svn://svn.chromium.org/blink/trunk@182821 bbb929c8-8fbe-4397-9dbb-9b2b20218538
bratell
More efficient code for mapping event names and attribute names.
This changes repeated code to a loop and cuts
HTMLElement::eventNameForAttributeName from 9 KB to 3 KB.

clang, x64:

Total change: -5952 bytes
=========================
  1 shrunk, for a net change of -5952 bytes (9338 bytes before, 3386 bytes after) across 1 sources

BUG=

Review URL: https://codereview.chromium.org/594413003

git-svn-id: svn://svn.chromium.org/blink/trunk@182820 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Remove unused WebRemoteFrameImpl::viewImpl() helper.
Added by r182337; an, as it turned out, unused helper that wasn't removed
there.

R=haraken,jochen
BUG=340522

Review URL: https://codereview.chromium.org/606663002

git-svn-id: svn://svn.chromium.org/blink/trunk@182818 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Initial PaintInvalidationState support for SVG
Extend PaintInvalidationState with a transform, to allow computing the
position/area of an SVG object first within the (outermost) SVG root, and
then relative to the document.
Handling of PaintInvalidationState is added only to RenderSVGModelObject-
derived render objects for now.

BUG=391054

Review URL: https://codereview.chromium.org/598623002

git-svn-id: svn://svn.chromium.org/blink/trunk@182799 bbb929c8-8fbe-4397-9dbb-9b2b20218538
bratell
Generate global constants in a loop rather than in sequence.
The generated code just repeated the same code over and over again
which resulted in larger machine code than necessary. Doing the
same thing with a data table and a loop makes the code
more compact and efficient.

clang x64 diff:
Total change: -72804 bytes
==========================
  281 added, totalling +21557 bytes across 1 sources
  1482 removed, totalling -10809 bytes across 1 sources
  2 grown, for a net change of +2 bytes (3 bytes before, 5 bytes after) across 1 sources
  19 shrunk, for a net change of -83554 bytes (87001 bytes before, 3447 bytes after) across 17 sources

BUG=

Review URL: https://codereview.chromium.org/604743003

git-svn-id: svn://svn.chromium.org/blink/trunk@182780 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
Gyp cleanup after https://codereview.chromium.org/495353003
BUG=408338

Review URL: https://codereview.chromium.org/607073002

Cr-Commit-Position: refs/heads/master@{#296999}
fs
Make sure m_usePathFallback is always updated when updating shape
When mutating a shape such that it would change from using the fallback
to _not_ using the fallback, the |m_usePathFallback| flag was not updated
to reflect this, mean that the shape could/would still be painted.

BUG=417454

Review URL: https://codereview.chromium.org/599103005

git-svn-id: svn://svn.chromium.org/blink/trunk@182770 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Sync "restrained media controller" with the spec
https://www.w3.org/Bugs/Public/show_bug.cgi?id=25429

The spec comments were already in sync.

BUG=417232

Review URL: https://codereview.chromium.org/262463003

git-svn-id: svn://svn.chromium.org/blink/trunk@182768 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Remove column set range map from RenderFlowThread.
It was calculated for every block, but never used.

Review URL: https://codereview.chromium.org/481333005

git-svn-id: svn://svn.chromium.org/blink/trunk@182759 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Move adjustForUnsplittableChild() from RenderBlock to RenderBlockFlow.
BUG=302024
R=leviw@chromium.org

Review URL: https://codereview.chromium.org/567463004

git-svn-id: svn://svn.chromium.org/blink/trunk@182757 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Minimal feature collector for select selectors.
Use a feature collector method that collects necessary features for select
attribute selectors. These selectors can only have element, id, class,
attribute and :not() according to the spec, and no combinators. Blink also
supports pseudo classes for UA shadow DOM.

A motivation here is to be able to collapse
RuleFeatureSet::collectFeaturesFromSelector into the same loop as
updateInvalidationSets now that invalidation sets are always in use.

R=chrishtr@chromium.org,esprehn@chromium.org

Review URL: https://codereview.chromium.org/600223002

git-svn-id: svn://svn.chromium.org/blink/trunk@182755 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
IDL: Clean up argument conversion error handling
Remove all handling of the conditional (now never generated) v8::TryCatch
local from the code generator.

Also restructure v8_value_to_local_cpp_value() which now has two major
code paths: conversions that need error handling (strings and conversions
that use ExceptionState,) and conversions that don't need error handling.
The unused code path that generated code using TONATIVE_VOID() is removed.

This patch does not change any generated code, aside from in the bindings
tests.

BUG=413257

Review URL: https://codereview.chromium.org/611453002

git-svn-id: svn://svn.chromium.org/blink/trunk@182754 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Property propagation to anonymous children only needed by old multicol.
The new (flowthread based) multicol implementation has no need for this.

Although it IS harmless to propagate this for new multicol, better add
a check, so that we remember to get rid of this code once we remove the
old multicol implementation.

Review URL: https://codereview.chromium.org/493283003

git-svn-id: svn://svn.chromium.org/blink/trunk@182748 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Simplify SelectRuleFeatureSet class.
Subclass SelectRuleFeatureSet from RuleFeatureSet instead of having it as a
member. Also make use of the parsePseudo method to simplify the Internals
helper.

Review URL: https://codereview.chromium.org/598093005

git-svn-id: svn://svn.chromium.org/blink/trunk@182746 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
RenderGrid::paintChild() declared but not defined.
https://codereview.chromium.org/594293002/ moved paint code from RenderGrid
to GridPainter, including the implementation of paintChild(), but the
declaration was left behind in RenderGrid.

R=chrishtr@chromium.org

Review URL: https://codereview.chromium.org/601113002

git-svn-id: svn://svn.chromium.org/blink/trunk@182745 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Don't include nested outlines when computing repaint rects for SVG objects
Because the paint invalidation rect is inflated in
SVGRenderSupport::computeFloatRectForPaintInvalidation, rather than in
clippedOverflowRectForPaintInvalidation (for example) the repaint rect
being computed includes outlines from all (SVG) ancestors.
Hoist the 'inflation' out of computeFloatRectForPaintInvalidation (both
the SVGRenderSupport one and its callers).

BUG=417729

Review URL: https://codereview.chromium.org/609463002

git-svn-id: svn://svn.chromium.org/blink/trunk@182744 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Comply (more) with check-webkit-style in and around HTMLMediaElement
R=fs@opera.com

Review URL: https://codereview.chromium.org/606703002

git-svn-id: svn://svn.chromium.org/blink/trunk@182739 bbb929c8-8fbe-4397-9dbb-9b2b20218538
bratell
Make the GPU feature info code more compact.
AddExtensionString is called quite a lot, always with a constant
string literal, which makes it a bit unnecessary to convert the
argument to a std::string before every function call.

This small change cuts away 7 KB of the machine code:

Total change: -7208 bytes
=========================
  1 added, totalling +559 bytes across 1 sources
  1 removed, totalling -471 bytes across 1 sources
  1 shrunk, for a net change of -7296 bytes (25422 bytes before, 18126 bytes after) across 1 sources
  267984 unchanged, totalling 50299073 bytes
Per-source Analysis:

--------------------------------------------------------------------------------------------------------------------
 -7208 - Source: /home/bratell/src/chromium/src/gpu/command_buffer/service/feature_info.cc - (gained 559, lost 7767)
--------------------------------------------------------------------------------------------------------------------
  New symbols:
       +559: gpu::gles2::FeatureInfo::AddExtensionString(char const*) type=t, size=559 bytes
  Removed symbols:
       -471: gpu::gles2::FeatureInfo::AddExtensionString(std::string const&) type=t, size=471 bytes
  Shrunk symbols:
      -7296: gpu::gles2::FeatureInfo::InitializeFeatures() type=t, (was 25422 bytes, now 18126 bytes)

BUG=

Review URL: https://codereview.chromium.org/571073003

Cr-Commit-Position: refs/heads/master@{#296785}
sigbjornf
Oilpan: fix build after r182688.
TBR=haraken
BUG=348919
NOTRY=true

Review URL: https://codereview.chromium.org/602183002

git-svn-id: svn://svn.chromium.org/blink/trunk@182701 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Use ExceptionState when converting string arguments to promise methods
A method whose return type is Promise should never throw an exception
directly, instead it should return a rejected promise holding the
exception that would have been thrown.

Because of this, string arguments in such methods were converted using a
special macro that extracted the exception from the v8::TryCatch local.

Since we want to get rid of that v8::TryCatch local, and also have a
V8StringResource::prepare() overload that reports exceptions via an
ExceptionState argument, use that for the method-returning-Promise case.

BUG=413257

Review URL: https://codereview.chromium.org/604833002

git-svn-id: svn://svn.chromium.org/blink/trunk@182687 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove 1.3 MB of superfluous media files for LayoutTests
These were unused or use where another file works just as well.

Note that test.webm was corrupted (encrypted?) so if it were ever
chosen by findMediaFile() it wouldn't work.

Also remove unused formats from media-file.js.

Review URL: https://codereview.chromium.org/603943002

git-svn-id: svn://svn.chromium.org/blink/trunk@182681 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Conversion of Promise is trivial
Promise values are converted using ScriptPromise::cast(), which is trivial
insofar as it can't cause an exception to be thrown.

BUG=413257

Review URL: https://codereview.chromium.org/606603002

git-svn-id: svn://svn.chromium.org/blink/trunk@182676 bbb929c8-8fbe-4397-9dbb-9b2b20218538
joleksy
Use changed_button_flags() when converting MouseEvent to blink::WebMouseEvent.
Event::flags() contains all the buttons that are being held down during event,
while MouseEvent::changed_button_flags() contains the buttons that are
actually pressed/released during the press/release event (and this is what we
really are interested in).

This is a follow up to https://codereview.chromium.org/302593002/ which caused problems
during integration, and it seems to me it got just closed, so I am opening a new one.

Review URL: https://codereview.chromium.org/585393002

Cr-Commit-Position: refs/heads/master@{#296691}
jl
Conversion of Date is trivial
Date values are converted using toCoreDate() in V8Bindings.h, which
specifically handles native Date objects and numbers, converting each in
a trivial way, and returning NaN for all other values.

Note: WebIDL actually only allows Date objects, so toCoreDate() supports
too much and would thus be even more trivial if it was to be adjusted to
fully match the specification.

BUG=413257

Review URL: https://codereview.chromium.org/604723002

git-svn-id: svn://svn.chromium.org/blink/trunk@182668 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Let toParentMediaElement return null for the media element itself
An element isn't its own parent, and actual usage doesn't require it.

TEST=LayoutTests/media/video-webkit-appearance.html

Without the fix, this test hits the ASSERT_WITH_SECURITY_IMPLICATION
in mediaControlElementType(), via paintMediaPlayButton().

BUG=414100
R=fs@opera.com

Review URL: https://codereview.chromium.org/598013002

git-svn-id: svn://svn.chromium.org/blink/trunk@182664 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Have MixedContentChecker and ProgressTracker keep a LocalFrame Member.
Tidy up the Oilpan handling of these two FrameLoader-owned objects,
and arrange it so that their LocalFrame back references are correctly
traced.

R=haraken,mkwst
BUG=340522

Review URL: https://codereview.chromium.org/596653006

git-svn-id: svn://svn.chromium.org/blink/trunk@182652 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Add test runner support for overriding web_security_enabled preference.
Have TestRunner::OverridePreference() recognize "WebKitWebSecurityEnabled"
as a boolean preference which controls the web_security_enabled web
preference.

R=mkwst,jochen
BUG=254993

Review URL: https://codereview.chromium.org/601513002

Cr-Commit-Position: refs/heads/master@{#296543}
sigbjornf
Oilpan: fix build after r182602
TBR=haraken
BUG=413257
NOTRY=true

Review URL: https://codereview.chromium.org/598153002

git-svn-id: svn://svn.chromium.org/blink/trunk@182628 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mmaliszkiewicz
BufferedDataSource: don't reallocate buffer unnecessarily
When buffer size is different than kInitialReadBufferSize then
intermediate buffer would be reallocated on each Read() operation
which is unnecessary.

Review URL: https://codereview.chromium.org/594733004

Cr-Commit-Position: refs/heads/master@{#296469}
fs
Change SVG paint server fallback for a non-existent URL
SVG2 changed the behavior from "...the document is in error" to
"...it must be treated as if none was specified".

BUG=416580

Review URL: https://codereview.chromium.org/593173002

git-svn-id: svn://svn.chromium.org/blink/trunk@182616 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Rewrite SVG text-decoration handling to not require GC scale-adjustment
Since drawing decorations for text means drawing "regular geometry" rather
than specially-scaled glyphs of a font, there's no need to first append
the inverse scale-factor the CTM and then scale the geometry - just adjust
the computed (scaled) font-metrics and emit unscaled geometry.
This allows for the stroke thickness adjustment to only be applied in the
text-case, so sink it out of PaintingResourceScope.
Also modify the function that computes the offset for the decorations to
do so relative to the baseline, and rename it accordingly.

Review URL: https://codereview.chromium.org/601763002

git-svn-id: svn://svn.chromium.org/blink/trunk@182615 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Remove unused headers from RenderSVGResource.h
Fix fallout and do some (very minor) drive-by fixing.

Review URL: https://codereview.chromium.org/601833002

git-svn-id: svn://svn.chromium.org/blink/trunk@182614 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
IDL: Make SerializedScriptValue arguments less of a special case
Remove the special handling of SerializedScriptValue arguments from the
methods.cpp template, and instead fix the already existing handling in
v8_types.py.

The conversion uses an ExceptionState object to report exceptions, and is
now handled like any other conversion that does that.

BUG=413257

Review URL: https://codereview.chromium.org/600863002

git-svn-id: svn://svn.chromium.org/blink/trunk@182613 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Conversion of any, NodeFilter and XPathNSResolver arguments is trivial
The 'any' type is converted to by constructing a ScriptValue object, which
simply wraps the v8::Value.

The 'NodeFilter' and 'XPathNSResolver' types are converted to by wrapping
the v8::Value in custom objects, with "soft" type checks (null is returned
on failure.)

BUG=413257

Review URL: https://codereview.chromium.org/600833003

git-svn-id: svn://svn.chromium.org/blink/trunk@182612 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Move color/gradient/pattern out of StrokeData
The "other methods" referred to in the documentation of StrokeData, only
use the stroke information that pertain to the "geometry" of the stroke.
This means that m_color/m_gradient/m_pattern are dead weight except for
the use in GraphicsContextState. Move those fields to GCS for better
separation of "geometry" and "ink".

Review URL: https://codereview.chromium.org/597053003

git-svn-id: svn://svn.chromium.org/blink/trunk@182610 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mathiash
Add WTF::String::emptyString16Bit.
This makes sure WTF::String::make16BitFrom8BitSource returns a 16-bit string,
which some callers count on even if the source string happens to be empty.

BUG=412032

Review URL: https://codereview.chromium.org/587173005

git-svn-id: svn://svn.chromium.org/blink/trunk@182606 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Use ExceptionState to throw exceptions when converting arrays
In the to*NativeArray(), toImplArray() and toImplArguments() helpers,
throw all exceptions via an ExceptionState& argument.

To facilitate this, also add an ExceptionState& argument to the various
NativeValueTraits<>::nativeValue() implementations, and add a
V8StringValue::prepare() variant that takes an ExceptionState& argument.

BUG=413257

Review URL: https://codereview.chromium.org/555133003

git-svn-id: svn://svn.chromium.org/blink/trunk@182602 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Inline exception handling code into PrivateScriptRunner helpers
Inline the v8::TryCatch and rethrowExceptionInPrivateScript() call into
PrivateScriptRunner's runDOMAttributeGetter(), runDOMAttributeSetter()
and runDOMMethod().

This is done to avoid duplicating the code once per actual attribute
getter/setter callback or method callback.

BUG=

Review URL: https://codereview.chromium.org/594213002

git-svn-id: svn://svn.chromium.org/blink/trunk@182512 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Use style invalidation for more pseudo classes.
Support descendant invalidation sets for :checked, :disabled, :enabled,
:indeterminate, :target, :link, and :visited. Pseudo state changes for those
classes were recalculated with SubtreeStyleChange in didAffectSelector.

Instead, schedule invalidation sets when these pseudo states change.

This change does not fully fix 388965 as there are still several
SubtreeStyleChange instances left.

The pseudo flags could be removed from the SelectRuleFeatureSet since they
will now be present through invalidation sets in the m_cssRuleFeatureSet.

R=esprehn@chromium.org
BUG=388965

Review URL: https://codereview.chromium.org/540533004

git-svn-id: svn://svn.chromium.org/blink/trunk@182507 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Make StorageArea cleanly observe its cached frame
StorageArea caches the result of its last access check wrt to a
LocalFrame. With Oilpan, we have to weakly hold on to that frame
so as not to have scripts be able to retain an entire frame.

Also, the cached frame might be destroyed before the StorageArea
holding a reference is; the implementation is better off clearing
that reference when this happens (with or without Oilpan.)

Address both by making StorageArea a FrameDestructionObserver that
observes its cached frame. It is a weak reference and it will be
cleared upon frame destruction.

To accommodate StorageArea switching the frame it is observing,
make FrameDestructionObserver::observeFrame() again a protected
method.

R=haraken,ager,zerny
BUG=340522

Review URL: https://codereview.chromium.org/594083002

git-svn-id: svn://svn.chromium.org/blink/trunk@182501 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
IDL: Remove the CompareHow special case
It's a special type used only for Range.compareBoundaryPoints()'s |how|
argument, and all the bindings layer actually does is cast a 32-bit int to
the Range::CompareHow C++ enumeration, without any checks. The spec's IDL
has the argument's type as |unsigned short|.

This doesn't change any behavior (the value checks were always in the C++
code, and still are), aligns our IDL files with the spec, and, most
significantly, removes the special case from the code generator.

BUG=413257

Review URL: https://codereview.chromium.org/592293003

git-svn-id: svn://svn.chromium.org/blink/trunk@182498 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Make ScreenOrientationController a FrameDestructionObserver.
With LocalFrame now on the heap, switch this controller to be a frame
destruction observer so as to conventionally handle tracing of the
frame during GCs, and eventual frame detach.

This is a tidying change; what's currently provided isn't unsafe, as
the controller is also a page lifecycle observer and uses the lack of
a page to detect detached operation. But it is preferable overall
to handle frame access and lifetime using FrameDestructionObserver.

R=haraken,mlamouri
BUG=340522

Review URL: https://codereview.chromium.org/595783003

git-svn-id: svn://svn.chromium.org/blink/trunk@182497 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ckulakowski
Don't crash when an image fails to decode.
The code that extracts the image for the default frame from an animated
bitmap should check that the image data is actually available.
It is possible for decoding to fail for invalid frames, Blink should not
crash when this happens.

BUG=408026

Review URL: https://codereview.chromium.org/535823002

git-svn-id: svn://svn.chromium.org/blink/trunk@182496 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
IDL: Support [DeprecateAs] and [MeasureAs] on constants
For constants with [DeprecateAs] or [MeasureAs], create the property
using v8::Template::SetNativeDataProperty() instead, using a simple
accessor callback function that handles the deprecation/measuring and
returns the constant value.

BUG=358506

Review URL: https://codereview.chromium.org/577303002

git-svn-id: svn://svn.chromium.org/blink/trunk@182492 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Mark http/tests/media/gc-while-network-loading.html as slow
The test has slow runs of 3 seconds on Linux and Mac, and occasionally
times out at 6 seconds on Windows.

A more sophisticated server-side script could serve the first half of
the file very quickly and then trickle the rest.

BUG=400659
NOTRY=true
R=fs@opera.com

Review URL: https://codereview.chromium.org/591313003

git-svn-id: svn://svn.chromium.org/blink/trunk@182483 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Mark media/gc-while-playing.html as not flaky
It is no longer failing after r182442:
https://codereview.chromium.org/587373002/

BUG=400659
NOTRY=true

Review URL: https://codereview.chromium.org/593013002

git-svn-id: svn://svn.chromium.org/blink/trunk@182478 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: make Supplementable tracing more regular.
With PersistentHeapSupplementable retired, follow up and only provide a
trace() method for a Supplementable that's on the heap.

No changes made for Supplements: an empty trace() method is still
provided for off-heap supplements, as this is the better solution
while we still are using the transition type WillBeHeapSupplement
for all the supplement objects.

R=haraken,zerny,wibling
BUG=395036

Review URL: https://codereview.chromium.org/587393002

git-svn-id: svn://svn.chromium.org/blink/trunk@182477 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Skip unnecessary v8::TryCatch in V8StringResource::prepare()
Since we're only interested in detecting and propagating an exception,
check whether v8::Value::ToString()'s return value is an empty handle
instead of using a v8::TryCatch local.

This is faster, since initializing a v8::TryCatch has non-zero cost, and
should also be less binary code (v8::Handle::IsEmpty() is inlined and
simply a null check.)

BUG=413257

Review URL: https://codereview.chromium.org/576323004

git-svn-id: svn://svn.chromium.org/blink/trunk@182476 bbb929c8-8fbe-4397-9dbb-9b2b20218538
landell
Fix URLRequest pepper unit test
This patch creates new URLLoaderResource objects for each request
since those objects can't be reused.

Calling Open() on an instance of URLLoaderResource requires that mode_
is set to MODE_WAITING_TO_OPEN. After Open() has been called mode_
will never reach that state again.

BUG=None

Review URL: https://codereview.chromium.org/582623002

Cr-Commit-Position: refs/heads/master@{#296155}
sigbjornf
Oilpan: adjust placement of no-FrameOwner assert.
Assert that all Frames will have been detached from their owner upon
finalization, not just local ones.

R=haraken, dcheng
BUG=340522

Review URL: https://codereview.chromium.org/594503002

git-svn-id: svn://svn.chromium.org/blink/trunk@182443 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Do not fire an initial periodic timeupdate event while currentTime is 0
m_lastTimeUpdateEventMovieTime has been initialized to infinity for as
long as the code has existed: http://trac.webkit.org/changeset/41907

This may be the cause of a spurious timeupdate event on Mac 10.9 in a
recently added test: https://codereview.chromium.org/578243003

TEST=media/gc-while-playing.html

BUG=400659

Review URL: https://codereview.chromium.org/587373002

git-svn-id: svn://svn.chromium.org/blink/trunk@182442 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
remove empty gl.gyp file
Followup to an old CL: 7283013, which attempted to delete this file.

Review URL: https://codereview.chromium.org/587103004

Cr-Commit-Position: refs/heads/master@{#295982}
bratell
Expanding Type Traits to make Vector use mem ops more.
Vector has several code paths depending on whether the encapsulated
object can be handled with memmove/memcpu/memset or not, and those
are used by many objects. Unfortunately that requires manual hinting
in each class because the type traits used are not strong enough.

By using type trait functions available in all modern compilers it's
possible to more intelligently select the most optimal code path.

Preferably the code would use the new type traits in C++ 11 but
unfortunately that requires a modern c++ library. Luckily, those
libraries are mostly just thin wrappers on top of de facto-standard
compiler extension functions anyway.

With clang this cuts away 105 KB of machine code in blink. Mostly by 
no longer needing copy constructor and assignment operators in many
classes so those can be stripped from the binary. 

With gcc the changes are differently. The binary is smaller but only 
by 5 KB. It's clear that many Vector methods have become more compact but
it seems gcc compensated by spending that space elsewhere (more inlining?).

I don't have as good measurement tools for Visual Studio but there was no
huge difference in footprint.

Performance, all this is from a noisy development computer with a 
non-stable cpu clock frequency (turbo ftl...):

In LayoutTests most changes are within noise levels. But it looks like 
large tables and flexboxes might be 1-5% faster. In ParserTests 
html5-full-render (macro-benchmark) became 2-3% faster.

clang footprint numbers:
Total change: -109940 bytes
===========================
  14 added, totalling +3397 bytes across 8 sources
  19 removed, totalling -13302 bytes across 6 sources
  8 grown, for a net change of +578 bytes (2268 bytes before, 2846 bytes after) across 6 sources
  230 shrunk, for a net change of -100613 bytes (190909 bytes before, 90296 bytes after) across 49 sources

Biggest changes:
 -84410 - Source: /home/bratell/src/chromium/src/third_party/WebKit/Source/wtf/Vector.h - (gained 784, lost 85194)
  -6934 - Source: /home/bratell/src/chromium/src/third_party/WebKit/Source/wtf/Deque.h - (gained 0, lost 6934)
  -2267 - Source: /home/bratell/src/chromium/src/third_party/WebKit/Source/core/animation/css/CSSAnimationData.cpp - (gained 904, lost 3171)
...
   +245 - Source: /home/bratell/src/chromium/src/third_party/WebKit/Source/core/svg/animation/SVGSMILElement.cpp - (gained 245, lost 0)

BUG=
R=jochen@chromium.org

Review URL: https://codereview.chromium.org/581683002

git-svn-id: svn://svn.chromium.org/blink/trunk@182427 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove HTMLMediaElement::setPausedInternal()
The bits in updatePlayState() could have been inlined into stop(), but
none of it is useful:

 - isPlaying is always false because of userCancelledLoad() ->
   clearMediaPlayer(), so webMediaPlayer()->pause() is dead code.

 - refreshCachedTime() will do nothing for the same reason.

 - m_playbackProgressTimer.stop() is done by stopPeriodicTimers().

 - mediaControls()->playbackStopped() is pointless because the document
   is no longer doing layout/rendering.

Review URL: https://codereview.chromium.org/594493003

git-svn-id: svn://svn.chromium.org/blink/trunk@182422 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: tighten up allowed allocation of some types.
No need to support these objects as being part of collections; adjust
macro usage.

R=ager
BUG=340522

Review URL: https://codereview.chromium.org/592673002

git-svn-id: svn://svn.chromium.org/blink/trunk@182398 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Assert that frame() derefs a non-null pointer.
The Frame references kept by these objects are assumed to be non-null;
assert that it is so.

R=haraken
BUG=340522

Review URL: https://codereview.chromium.org/593583002

git-svn-id: svn://svn.chromium.org/blink/trunk@182394 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: remove unused support for removing FrameDestructionObservers.
Remove ability to explicitly remove a FrameDestructionObserver from a
LocalFrame; this is taken care of by weak references instead.

Also make FrameDestructionObserver::observeFrame() private; this will ease
later removal once we can assume Oilpan is enabled-by-default for all
observer implementations.

R=haraken
BUG=340522

Review URL: https://codereview.chromium.org/584403002

git-svn-id: svn://svn.chromium.org/blink/trunk@182370 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Move Frame to the Oilpan heap.
Move Frame and related classes to the Oilpan heap.

R=haraken,dcheng,ager,tkent
BUG=340522

Review URL: https://codereview.chromium.org/517043003

git-svn-id: svn://svn.chromium.org/blink/trunk@182337 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove HTMLMediaElement::isPlaying()
It's unused as of r182247:
https://codereview.chromium.org/552303006

BUG=400659

Review URL: https://codereview.chromium.org/583203002

git-svn-id: svn://svn.chromium.org/blink/trunk@182333 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Ensure that hasPendingActivity() is false for stopped media elements
Where stopped means that ActiveDOMObject::stop() has been called.

All the conditions in hasPendingActivity() are now false after stop():

 - m_shouldDelayLoadEvent is set to false by userCancelledLoad() ->
   setShouldDelayLoadEvent(false).

 - m_networkState is either NETWORK_EMPTY or NETWORK_IDLE after
   userCancelledLoad().

 - couldPlayEnoughData() returns false because m_paused is now set to
   true by stop().

 - m_seeking is now set to false by stop().

 - m_mediaSource is set to null by userCancelledLoad() ->
   closeMediaSource().

 - m_asyncEventQueue->hasPendingEvents() is false because stop() calls
   m_asyncEventQueue->close().

TEST=LayoutTests/media/gc-pending-event-inactive-document.html

This test reliably hits the assert that revealed this problem:
https://codereview.chromium.org/584633004

BUG=400659

Review URL: https://codereview.chromium.org/587683002

git-svn-id: svn://svn.chromium.org/blink/trunk@182332 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
IDL: Conversion to Dictionary is trivial (can't fail)
Conversion from v8::Value to blink::Dictionary simply stores a reference
to the v8::Value in the blink::Dictionary object, so can't throw an
exception.  Adjust v8_conversion_is_trivial() accordingly, to avoid
use of TONATIVE_VOID(_INTERNAL) and thus declaration of unnecessary
v8::TryCatch locals.

BUG=413257

Review URL: https://codereview.chromium.org/587653002

git-svn-id: svn://svn.chromium.org/blink/trunk@182331 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
[SVG] Restore the non-selection style after painting the selected run
After having painted the selection-styled text run, the resources need to
be re-acquired with the non-selection style.

BUG=415632

Review URL: https://codereview.chromium.org/585563002

git-svn-id: svn://svn.chromium.org/blink/trunk@182311 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Avoid calculating style for ::before/::after without content.
A universal ::before or ::after rule without content triggers calculation
of pseudo style for most elements on theverge.com just to find that most of
them won't be rendered due to the missing content.

Check if matching ::before or ::after rules actually contain a content
value before marking the render style with setHasPseudoStyle.

This change reduces the style recalc time by ~50% when expanding the
comments section on theverge.com articles.

R=esprehn@chromium.org,eseidel@chromium.org
BUG=412558

Review URL: https://codereview.chromium.org/570713002

git-svn-id: svn://svn.chromium.org/blink/trunk@182308 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Prevent reading stale/invalid data when applying a <pattern>
RenderSVGResourcePattern::applyResource was checking the value of
PatternAttributes::patternUnits() before it had been set from the element,
meaning it could have been stale after having been updated, or plain wrong
since the default value is oBB.
Hoist the PatternAttribute setup out of buildPattern() to make sure
|m_attributes| is valid when read.
The |resourceMode| attribute passed to buildPattern() is removed because
it is unused.

BUG=415619

Review URL: https://codereview.chromium.org/579243004

git-svn-id: svn://svn.chromium.org/blink/trunk@182268 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Mark media/media-controller-media-fragment-uri-initial-playback-position.html as flaky
BUG=415620
TBR=amogh.bihani@samsung.com

Review URL: https://codereview.chromium.org/584653002

git-svn-id: svn://svn.chromium.org/blink/trunk@182259 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Simplify fallback-handling for SVG_PAINTTYPE_URI_*
De-duplicate some of the logic for determining a fallback for a
non-existant url(...). This also fixes the case where a SVGResources
object is available, but the fallback is "none".

BUG=415622

Review URL: https://codereview.chromium.org/577283003

git-svn-id: svn://svn.chromium.org/blink/trunk@182253 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Prevent more script-observable cases of HTMLMediaElement GC
This is intended to cover all cases where Gecko prevents GC:
https://www.w3.org/Bugs/Public/show_bug.cgi?id=26515#c5

Additionally, change the behavior for MediaSource so that an
HTMLMediaElement attached to a MediaSource is never collected. Since the
reverse is also true (see MediaSource::hasPendingActivity) a connected
media element + media source pair will now live as long as the document.

LayoutTests for the new cases in HTMLMediaElement::hasPendingActivity()
were added:

media/gc-while-delaying-the-load-event.html (was timeout)
http/tests/media/gc-while-network-loading.html (was timeout)
media/gc-while-playing.html (was pass)
media/gc-while-seeking.html (was timeout)
http/tests/media/media-source/mediasource-htmlmediaelement-lifetime.html (was failure)

BUG=400659

Review URL: https://codereview.chromium.org/552303006

git-svn-id: svn://svn.chromium.org/blink/trunk@182247 bbb929c8-8fbe-4397-9dbb-9b2b20218538
bratell
Shrink isValidNameNonASCII by using U16_NEXT only once.
This function was much larger than expected (314 bytes in gcc) and I think
it is because U16_NEXT is a large macro. Use it once instead of
twice.

Seems to have saved 144 bytes with gcc. U16_NEXT must be a crazily large macro:

  Shrunk symbols:
       -144: WebCore::Document::isValidName(WTF::String const&) type=t, (was 1253 bytes, now 1109 bytes)

74 bytes saved with clang:
 Shrunk symbols:
        -74: WebCore::Document::isValidName(WTF::String const&) type=t, (was 1190 bytes, now 1116 bytes)


BUG=

Review URL: https://codereview.chromium.org/387313002

git-svn-id: svn://svn.chromium.org/blink/trunk@182236 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
use absolute path to clang plugins
clang + icecc has problems finding libFindBadConstructs.so, probably
due to a path bug in icecc.

We can however workaround this bug by using the canonical absolute path
instead of an absolute path that includes redundant directories (ie
remove "tools/clang/scripts/../../../" from the middle).  This has the
benefit of simplifying and shortening clang compile commands.

BUG=409571

Review URL: https://codereview.chromium.org/525733005

Cr-Commit-Position: refs/heads/master@{#295446}
tmoniuszko
Don't split text runs on underline style change
BUG=392154

Review URL: https://codereview.chromium.org/371413002

Cr-Commit-Position: refs/heads/master@{#295444}
bratell
Binary Size tool: Check DWARF format only when possible.
The tool can be run with a preprocessed nm file as input and trying
to run a DWARF version check in that case won't work.

BUG=415084
R=andrewhayden@chromium.org

Review URL: https://codereview.chromium.org/573273002

Cr-Commit-Position: refs/heads/master@{#295443}
rune
Support getComputedStyle for non-rendered pseudo elements.
Computed style for pseudo elements exist and is defined by [1] regardless
of whether the pseudo element, or its ancestor, is rendered or not [2].
We make sure that the computed pseudo element style hangs off of the
RenderStyle of the ancestor, or the computed style in the ancestor's
rare-data if the ancestor is not rendered.

getCachedPseudoStyle, getUncachedPseudoStyle, and pseudoStyleForElement are
all written to not return anything if the pseudo element is not rendered.
That is the reason for calling pseudoStyleForElement in a special mode at
the end of Element::computedStyle to force creating and adding the pseudo
style to the cache.

This CL does not try to support computed style for pseudo elements which
are not in the document.

[1] http://dev.w3.org/csswg/cssom/#dom-window-getcomputedstyle
[2] http://dev.w3.org/csswg/cssom/#::after-pseudo-element

R=esprehn@chromium.org
BUG=414088

Review URL: https://codereview.chromium.org/572043002

git-svn-id: svn://svn.chromium.org/blink/trunk@182203 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Simplify window.closed testing.
Instead of keeping a separate Frame flag, have LocalDOMWindow::closed
consider the presence of a FrameHost on the frame. It'll be cleared
during detach and impending frame closure, and is observationally
equivalent to keeping an unnecessary extra flag.

R=dcheng,ager
BUG=414658

Review URL: https://codereview.chromium.org/544013005

git-svn-id: svn://svn.chromium.org/blink/trunk@182201 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
don't build IpcNetworkManager unit tests in non-webrtc builds
Followup to CL 565773003, ipc_network_manager_unittest.cc seems to be
webrtc-specific, so it shouldn't be built when webrtc is disabled.

Review URL: https://codereview.chromium.org/554913004

Cr-Commit-Position: refs/heads/master@{#295356}
bratell
Make the net logging code more compact.
The generation of the lookup table between errors and strings for
the net log expanded to 37 KB, due to the repeated code. Rewriting
the code to a loop and it shrank by roughly 75%.

Total change: -32087 bytes
==========================
  3 added, totalling +960 bytes across 1 sources
  60 removed, totalling -1143 bytes across 1 sources
  1 shrunk, for a net change of -31904 bytes (36336 bytes before, 4432 bytes after) across 1 sources

BUG=
R=mmenke@chromium.org

Review URL: https://codereview.chromium.org/574433002

Cr-Commit-Position: refs/heads/master@{#295338}
fs
Drop redundant checks for a color when the primary resource is a color
Review URL: https://codereview.chromium.org/574373004

git-svn-id: svn://svn.chromium.org/blink/trunk@182164 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Align assumptions in RenderSVGResourceSolidColor with other paint servers
Since the SVG fonts code-path no longer directly call
RenderSVGResource::applyResource, the same pre-conditions should hold
for RenderSVGResourceSolidColor as for the other paint servers. Drop the
existing (stale) comment and assert that |object| and |style| are
non-null instead.

Review URL: https://codereview.chromium.org/559653006

git-svn-id: svn://svn.chromium.org/blink/trunk@182159 bbb929c8-8fbe-4397-9dbb-9b2b20218538
andersr
Make style building for 'font-size' less custom.
This change adds a FontDescription::Size structure which represents a
(specified) font size in transit. The conversion from CSSValue* to
font size (now FontDescription::Size) has been moved to
StyleBuilderConverter. This reduces the dependency on RenderStyle/CSSValue
in FontBuilder.

Keyword sizes are now resolved into actual float sizes in FontBuilder::
setSize. This happens only if the FontDescription::Size has a keyword size,
but has no float value size. The idea is that if both a keyword size
and float value size is provided from the outside, it means we inherit
the "entire" Size as-is, and no re-resolving of the keyword size is
necessary.

The m_fontSizehasViewportUnits flag has been removed. StyleBuilderConverter
is now marking the relevant style directly (more or less) during conversion
instead.

Review URL: https://codereview.chromium.org/468793003

git-svn-id: svn://svn.chromium.org/blink/trunk@182154 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Eliminate SVGTextRunRenderingContext::m_activePaintingResource
With geometry being emitted independently from the paint server setup, it
becomes possible to just rely on the current state of the GC when
painting SVG font text (which in turn allows us to make stricter
assumptions with more confidence elsewhere.)

Review URL: https://codereview.chromium.org/565063003

git-svn-id: svn://svn.chromium.org/blink/trunk@182153 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Have window.closed return true when frame is closed.
This Window property currently returns true once the Frame it is attached
to is destroyed, which exposes an object memory management detail that's
hard to emulate with Oilpan.

Switch instead to having "closed" return true once the frame is externally
closed or the (i)frame is removed&detached.

Adjust tests to check for this instead -- no indication that this slight
adjustment in behavior will pose a compatibility problem.

R=haraken,ager,mkwst,tkent
BUG=414658

Review URL: https://codereview.chromium.org/538323003

git-svn-id: svn://svn.chromium.org/blink/trunk@182148 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: have ScriptStreamingTest correctly trace its PendingScript.
As testing::Test is not on the heap, accommodate Oilpan by wrapping up
ScriptStreamingTest's PendingScript (a part object containing a Member)
inside an object that is on the heap & use a Persistent to refer to it
from ScriptStreamingTest.

R=ager
BUG=

Review URL: https://codereview.chromium.org/576853003

git-svn-id: svn://svn.chromium.org/blink/trunk@182136 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r182077.
TBR=oilpan-reviews
BUG=390125
NOTRY=true

Review URL: https://codereview.chromium.org/572933005

git-svn-id: svn://svn.chromium.org/blink/trunk@182104 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Remove TargetedStyleRecalc runtime flag.
The flag has had status=stable for more than 4 months.

R=chrishtr@chromium.org,esprehn@chromium.org,abarth@chromium.org

Review URL: https://codereview.chromium.org/562403002

git-svn-id: svn://svn.chromium.org/blink/trunk@182098 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Get rid of anonymous table* wrappers when they are no longer needed.
When a renderer is removed, don't just see if an anonymous parent
should be destroyed, but keep looking further up in the ancestry
as well.

BUG=389129

Review URL: https://codereview.chromium.org/540453003

git-svn-id: svn://svn.chromium.org/blink/trunk@182082 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Drop SVG_PAINTTYPE_* values that are never used (written)
Drop SVG_PAINTTYPE_UNKNOWN and SVG_PAINTTYPE_*_ICCCOLOR since there's
currently no code that sets anything to those values, and since they're
no longer part of a Web-facing API.

Review URL: https://codereview.chromium.org/545033003

git-svn-id: svn://svn.chromium.org/blink/trunk@182066 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Drop RenderSVGResource::{fill,stroke}PaintingResource shims
Makes for slightly less branchy code in some places, otherwise very little
difference.

Review URL: https://codereview.chromium.org/577583002

git-svn-id: svn://svn.chromium.org/blink/trunk@182058 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Tidy up ConsoleMessage callstack inclusion, fix Worker console crashes
Follow up r181319 (+ r180544) and annotate ConsoleMessages from
console.count() and console.timeEnd() with a call stack.

Not doing so broke the WorkerConsole::reportMessageToConsole()
assumption that a ConsoleMessage has a call stack. An unnecessary
assumption to make, so instead have it mirror how "non-Worker" console
messages are handled when reported, and allow "stackless" messages.

R=kozyatinskiy,aandrey,jochen
BUG=413223

Review URL: https://codereview.chromium.org/562683003

git-svn-id: svn://svn.chromium.org/blink/trunk@182056 bbb929c8-8fbe-4397-9dbb-9b2b20218538
bratell
Shrink Document::parseQualifiedName a bit.
It duplicated a large code chunk by using a templated function full of 
generic code both for UChar and LChar. By extracting the generic code
to the caller the amount of duplicate code was greatly reduced. With clang
the function shrunk from 5 KB to 2.5 KB (which is still large but not crazy
large).

-----------------------------------------------------------------------------------------------------------------------
 -2196 - Source: /home/bratell/src/chromium/src/third_party/WebKit/Source/core/dom/Document.cpp - (gained 0, lost 2196)
-----------------------------------------------------------------------------------------------------------------------
  Shrunk symbols:
      -2196: blink::Document::parseQualifiedName(WTF::AtomicString const&, WTF::AtomicString&, WTF::AtomicString&, blink::ExceptionState&) type=t, (was 4808 bytes, now 2612 bytes)

BUG=
R=fs@opera.com

Review URL: https://codereview.chromium.org/555813003

git-svn-id: svn://svn.chromium.org/blink/trunk@182043 bbb929c8-8fbe-4397-9dbb-9b2b20218538
bratell
Binary size tool, handle symbols with no path better.
If symbols with the same name appeared in the same "file" (as in
'unknown file') then they collided and only the last such symbol was
remembered. This happened for me with string symbols where all
.L.str21 were in the ?? file.

Store a list of symbol sizes per symbol and file. If there are more
than one symbol size per symbol and file, compare them differently to
see what might have happened.

A bit hard to read code. I hope it won't have to be changed.

BUG=412335
R=andrewhayden@chromium.org

Review URL: https://codereview.chromium.org/551203004

Cr-Commit-Position: refs/heads/master@{#295033}
arjanl
Don't paint text outside display area
When rendering text, we don't have to render glyphs that fall outside of
the display area. This change stops processing glyps when we're outside
the display area, and stops processing further style ranges if those are
outside the display area. Note that the equivalent functionality is
already in place for Windows text rendering.

This fixes an issue where text rendering would become very slow when
rendering big strings.

BUG=413540

Review URL: https://codereview.chromium.org/543073002

Cr-Commit-Position: refs/heads/master@{#295023}
fs
Move geometry generation out of RenderSVGResource*::postApplyResource
The code-paths that will operate on RenderSVGResources that are
paint-servers are quite easily distinguishable from those where other
resources are involved - and because all paint-servers have the same kind
of geometry generation it's trivially hoistable into the relevant
callsites.
This allows the argument list of postApplyResource to be shortened
(removing |path|, |shape| and |resourceMode| since they are now unused).
Since all callers of the hoisted function (fillOrStrokePrimitive) passes
either a |shape| or a |path| - but never both, we can split this method into
its two logical parts.
Doing this however reveal that the |shape| variant can be trivially folded
into it's callers since they will always end up calling the same method.
This means that fillOrStrokePrimitive is replaced with/transformed into
fillOrStrokePath.

Review URL: https://codereview.chromium.org/571923002

git-svn-id: svn://svn.chromium.org/blink/trunk@182004 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jiangj
Fix Cocoa setFrame:display: call type mismatch
-[NSView setFrame:display:] accepts BOOL as the second argument,
passing nil only worked by accident.

Review URL: https://codereview.chromium.org/569263002

Cr-Commit-Position: refs/heads/master@{#294862}
jiangj
Fix Cocoa accessibility callbacks type mismatch
If you compile without preprocessing (first clang -E then clang, like
ccache does by default without CCACHE_CPP2), you will see warnings like:

you will see warnings like:

../../content/browser/accessibility/browser_accessibility_cocoa.mm:1155:12:error: implicit conversion of NULL constant to 'NSUInteger' (aka
'unsigned long') [-Werror,-Wnull-conversion]
    return __null;
    ~~~~~~ ^~~~~~
           0

It's because we return nil when 0 or NO should be returned instead,
normal clang compile won't catch that for some reason, perhaps because
its checking is less strict for preprocessed code.

Review URL: https://codereview.chromium.org/565383003

Cr-Commit-Position: refs/heads/master@{#294848}
sigbjornf
Oilpan: handle delayed removal of PromiseTracker promises.
When a PromiseTracker is disabled as part of shutting down, it clears
its ID -> vector(PromiseData) map. However, once the unfulfilled
promises in that cleared map later on have their weak callbacks
invoked, we weren't prepared for the map being empty. Add the required
empty map check.

A further twist for Oilpan is that the ScopedPersistents held on the
PromiseData objects need to be cleared out eagerly to prevent v8
assuming that these objects will leak -- they won't, but will only be
cleared at the next Oilpan GC. Be more eager, and promptly clear out
the references.

R=haraken
BUG=414163

Review URL: https://codereview.chromium.org/571043002

git-svn-id: svn://svn.chromium.org/blink/trunk@181979 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Dispose ApplicationCacheHost on DocumentLoader finalization.
To cater to Oilpan, introduce an explicit dispose() for
ApplicationCacheHost, which the DocumentLoader will call upon when
being finalized.

Without it, a DocumentLoader might clear the Persistent reference to
its ApplicationCacheHost, but it'll still be accessible to embedder
notifications via its WebApplicationCacheHost until the next Oilpan GC
strikes. If so, the callbacks might access a now-dead DocumentLoader.

R=ager
BUG=

Review URL: https://codereview.chromium.org/571003002

git-svn-id: svn://svn.chromium.org/blink/trunk@181973 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Simplify and weaken DOMWindowProperty unregistration
A DOMWindowProperty object should not be kept alive if it is only
referenced from a LocalDOMWindow's set of registered DOMWindowProperty
objects. Adjust LocalDOMWindow's DOMObjectProperty references to be 
weak for Oilpan also.

In most cases, DOMWindowProperty objects will remain alive for at least
as long as their associated LocalDOMWindow, but this cannot be assumed.
The added test checks for that wrt DOMSelection objects created from
shadow roots.

Along with adjusting the weakness of these references, simplify
how LocalDOMWindow unregisters its DOMWindowProperty objects. That is,
no longer have the instances unregister themselves, but let the
LocalDOMWindow remove them all after having notified them of impending
destruction.

R=haraken,ager
BUG=413316

Review URL: https://codereview.chromium.org/569643002

git-svn-id: svn://svn.chromium.org/blink/trunk@181970 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Remove unused argument in computeRenderStyle.
Review URL: https://codereview.chromium.org/572623002

git-svn-id: svn://svn.chromium.org/blink/trunk@181969 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
use OVERRIDE macro consistently in spdy_framer_test.cc
Followup to CL 485833002, which mixed use of the OVERRIDE macro and
bare override.

BUG=400336

Review URL: https://codereview.chromium.org/562353004

Cr-Commit-Position: refs/heads/master@{#294645}
bratell
Reduce memory peaks when generating data urls for images.
Adding Vector<char> to a String results in one (or more) temporary
copies of that Vector<char> since Vector isn't a pointer/smart pointer
like the types usually used.

Luckily there are many other ways to solve the problem. With StringBuilder
or using a String.

BUG=389085 (related to, not necessarily fixing it)

Review URL: https://codereview.chromium.org/559103002

git-svn-id: svn://svn.chromium.org/blink/trunk@181925 bbb929c8-8fbe-4397-9dbb-9b2b20218538
landell
Forward kPpapiInProcess flag to zygote process
Make sure this flag can be used for out of sandbox plugin setup.

BUG=

Review URL: https://codereview.chromium.org/562073002

Cr-Commit-Position: refs/heads/master@{#294616}
fs
Make some use of RenderSVGResourceClipper::clipPathUnits()
Review URL: https://codereview.chromium.org/570583002

git-svn-id: svn://svn.chromium.org/blink/trunk@181909 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Factor out common code from RenderSVGResource*::postApplyResource
Factor the fill/stroke code out of the various paint-server
RenderSVGResource subclasses and move it to SVGRenderSupport.

Review URL: https://codereview.chromium.org/571463002

git-svn-id: svn://svn.chromium.org/blink/trunk@181907 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Un-inline requestPaintingResource in RenderSVGResource.cpp
This method is large, and the gain that propagating the constant mode from
its caller is relatively small. Make {fill,stroke}PaintingResource default
inline instead, and un-inline requestPaintingResource and move it into the
class.

Review URL: https://codereview.chromium.org/563973003

git-svn-id: svn://svn.chromium.org/blink/trunk@181906 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Remove commandline flag "--enable-targeted-style-recalc".
The feature is always on regardless. The corresponding CL for removing the
runtime flag in blink is https://codereview.chromium.org/562403002

R=jochen@chromium.org

Review URL: https://codereview.chromium.org/544163003

Cr-Commit-Position: refs/heads/master@{#294586}
fs
Move transient/temporary RenderSVGResource state out of SVGInlineTextBox
The SVGInlineTextBox member variable |m_paintingResource| is only set
temporarily within paintTextWithShadows and paintDecorationWithStyle, and
is only accessed from the methods that do setup and teardown of it. This
makes it possible to remove it from SVGInlineTextBox and instead manage it
in through a variable on the stack.
The lifetime management is kept manual/the same as previously. The
interaction with TextRun::RenderingContext is changed to be passed as a
parameter to the added "scope" object in order to simplify the interface
a bit.

Review URL: https://codereview.chromium.org/568723002

git-svn-id: svn://svn.chromium.org/blink/trunk@181904 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Generate simple code for "trivial" conversions
A trivial conversion is defined as one that cannot throw an exception,
and thus need no v8::TryCatch or ExceptionState, and no "did it succeed?"
check after the conversion.

For such conversions, generate the code

  Type variable = convertedValue()

instead of

  TONATIVE_VOID(Type, variable, convertedValue())

Also include all such conversions in the set of argument conversions that
don't require a v8::TryCatch, since they then no longer do.

BUG=413257

Review URL: https://codereview.chromium.org/564063002

git-svn-id: svn://svn.chromium.org/blink/trunk@181897 bbb929c8-8fbe-4397-9dbb-9b2b20218538
bratell
Shrink the binary by not super inlining all string concatenations.
String concatenation is used a lot to build error and exception
messages and it was larger than intended because of over eager
inlining.

Outlining template code saves 90 KB with clang and 65 KB with
gcc (lin64 content_shell). After this there is roughly 60 KB of
concatenation code left (clang).

clang:
Total change: -91866 bytes
==========================
  47 added, totalling +6264 bytes across 3 sources
  38 removed, totalling -18354 bytes across 2 sources
  79 grown, for a net change of +4604 bytes (98534 bytes before, 103138 bytes after) across 50 sources
  405 shrunk, for a net change of -84380 bytes (370130 bytes before, 285750 bytes after) across 134 sources

gcc:
Total change: -66849 bytes
==========================
  333 added, totalling +81561 bytes across 69 sources
  203 removed, totalling -65785 bytes across 76 sources
  211 grown, for a net change of +18666 bytes (228381 bytes before, 247047 bytes after) across 85 sources
  406 shrunk, for a net change of -101291 bytes (568083 bytes before, 466792 bytes after) across 160 sources

BUG=

Review URL: https://codereview.chromium.org/559133002

git-svn-id: svn://svn.chromium.org/blink/trunk@181896 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
remove main_render_frame(), use GetMainRenderFrame() instead
CL 93333002 added a main_render_frame() method to RenderFrameImpl,
then about a week later CL 107893003 added a virtual
GetMainRenderFrame() method with the same implementation.
To avoid confusion, we could just use the latter and remove
main_render_frame().

BUG=304341

Review URL: https://codereview.chromium.org/554743009

Cr-Commit-Position: refs/heads/master@{#294562}
joleksy
Add STATE_MAXIMIZED to the list of possible window states in MapWindow().
This gets rid of console warning on startup when maximized.

BUG=

Review URL: https://codereview.chromium.org/555723003

Cr-Commit-Position: refs/heads/master@{#294558}
jl
Use conversion helpers in V8Binding.cpp for [Clamp] method arguments
There was custom generated code specifically for handling arguments with
[Clamp], which is quite unnecessary since the toUInt*() have an integer
conversion configuration parameter that among other things can be used to
request clamping.

Related: Fix the somewhat broken handling the |Clamp| integer conversion
configuration in the toUInt*() helpers. An optimization code path for the
case that the V8 value is an int32 forgot to do clamping, there was no
clamping at all in toUInt64(), and +/- Infinity was converted to zero
instead of being clamped.

Clamping support is not added to toInt64(), since the clampTo<> helper in
Source/wtf/MathExtras.h explicitly doesn't support |long long int|, which
is int64_t on some platforms.

BUG=413257

Review URL: https://codereview.chromium.org/563793002

git-svn-id: svn://svn.chromium.org/blink/trunk@181882 bbb929c8-8fbe-4397-9dbb-9b2b20218538
joleksy
Handle _NET_ACTIVE_WINDOW or FocusIn & FocusOut, not both.
When WM supports _NET_ACTIVE_WINDOW notification, we get OnActiveWindowChanged() from two places:
 - X11DesktopHandler::ProcessXEvent (FocusIn)
 - X11DesktopHandler::DispatchEvent (PropertyNotify)

One is enough, two can lead to confusion. FocusIn/Out should not be handled if WM supports active window.

BUG=None
TEST=None

Review URL: https://codereview.chromium.org/549713003

Cr-Commit-Position: refs/heads/master@{#294550}
mostynb
use OVERRIDE macro consistently in quic
Followup to 475113005, use OVERRIDE macro instead of using override
directly.

Review URL: https://codereview.chromium.org/560353003

Cr-Commit-Position: refs/heads/master@{#294503}
sigbjornf
Oilpan: fix build after r181825.
TBR=oilpan-reviews
BUG=413341
NOTRY=true

Review URL: https://codereview.chromium.org/563923003

git-svn-id: svn://svn.chromium.org/blink/trunk@181852 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix PromiseTracker's handling of its persistent promise wrappers.
The handling of the PromiseDataWrapper in r181662 wasn't complete, as it
failed to keep an Oilpan-reachable persistent to the GCed wrapper object,
risking premature finalization. For Oilpan also, this wrapper object should 
only keep its references weakly alive.

To make the tracing of these relationships work out, PromiseTracker is
no longer a part object, but heap allocated.

R=haraken
BUG=340522

Review URL: https://codereview.chromium.org/561753002

git-svn-id: svn://svn.chromium.org/blink/trunk@181845 bbb929c8-8fbe-4397-9dbb-9b2b20218538
henriks
Allow setting different memory limits for different stream types
BUG=413214
R=acolwell@chromium.org

Review URL: https://codereview.chromium.org/563773002

Cr-Commit-Position: refs/heads/master@{#294427}
mmaliszkiewicz
PersonalDataManagerTest should delete temporary directory AFTER WebDataServiceBackend stops using it.
Tests tried to delete temporary directory while it was still in use which
on Windows caused SHFileOperation to block for around 1 second and finally fail.

After this patch test runs at least 15 times faster on Windows.

Review URL: https://codereview.chromium.org/560093002

Cr-Commit-Position: refs/heads/master@{#294384}
joleksy
Do not rely on XDG_CURRENT_DESKTOP only when testing for Unity.
gnome-fallback sessions set XDG_CURRENT_DESKTOP to Unity,
DESKTOP_SESSION needs to be tested as well.

BUG=

Review URL: https://codereview.chromium.org/550173006

Cr-Commit-Position: refs/heads/master@{#294381}
jl
Add toDouble() helper, and use toFloat()/toDouble() for conversions
Like we do for all integer types, use helper functions from V8Binding.h
to convert from v8::Value to native types. These helper functions throw
all exceptions via their ExceptionState& argument, which means we don't
need to initialize a v8::TryCatch in the caller.

The helpers initialize a v8::TryCatch if they call in to V8 to convert
a value, but they do not do this if the value is already of the correct
type.

Review URL: https://codereview.chromium.org/567503002

git-svn-id: svn://svn.chromium.org/blink/trunk@181812 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
remove c++11 enum scope in copy_or_move_operation_delegate.cc
Followup to CL 469993007, which added a c++11 style enum scope,
but we haven't officially switched to c++11 yet.

BUG=360088

Review URL: https://codereview.chromium.org/562513005

Cr-Commit-Position: refs/heads/master@{#294358}
rune
Use invalidation set for :empty pseudo changes.
Schedule an invalidation set for :empty on an element when the pseudo state
changes instead of a SubtreeStyleChange.

R=chrishtr@chromium.org,esprehn@chromium.org
BUG=412999

Review URL: https://codereview.chromium.org/565493002

git-svn-id: svn://svn.chromium.org/blink/trunk@181805 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Removed stray declared method.
Left-over from the removal of diffNeedsRecompositeLayer [1].

[1] https://codereview.chromium.org/360103008

R=abarth@chromium.org

Review URL: https://codereview.chromium.org/565583002

git-svn-id: svn://svn.chromium.org/blink/trunk@181801 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Don't clear StyleAffectedByEmpty before recalc.
ElementRareData::resetStyleState() cleared the StyleAffectedByEmpty flag
before recalculating style for an Element. However, this flag can be set by
style recalc for any of the sibling subtree elements in the presence of
adjacent combinators. If you have a LocalStyleChange for the element that
may become empty/non-empty, the flag can not be cleared since it may never
be set again unless the siblings affected by the :empty state are
recalculated.

R=esprehn@chromium.org
BUG=412950

Review URL: https://codereview.chromium.org/558333002

git-svn-id: svn://svn.chromium.org/blink/trunk@181799 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Simplify TONATIVE_*_EXCEPTIONSTATE* macros
By assuming that the |value| expression throws exceptions via the
ExceptionState object, and only via it, we can skip the v8::TryCatch
declaration and check. This is good since it is less code, and since
v8::TryCatch objects cost a bit of CPU time to initialize.

The correctness of this patch depends on
  https://codereview.chromium.org/559553003/
and
  https://codereview.chromium.org/556273003/
that make sure all type conversion helpers with an ExceptionState&
argument actually throw all exceptions via it.

Review URL: https://codereview.chromium.org/552143004

git-svn-id: svn://svn.chromium.org/blink/trunk@181796 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
remove c++11 enum scope in ServiceWorkerRegistration::OnRestoreFinished
Followup to CL 506043002: remove unneeded c++11 enum scope for
consistency (and since we haven't officially switched to c++11 yet).

BUG=398355

Review URL: https://codereview.chromium.org/560993002

Cr-Commit-Position: refs/heads/master@{#294311}
mostynb
remove lambda expression in quic
Followup to CL 478153003 which added a lambda expression even
though we haven't officially switched to c++11 yet.

Review URL: https://codereview.chromium.org/565443002

Cr-Commit-Position: refs/heads/master@{#294269}
mostynb
Avoid ambiguous overload for operator= in FrameView.h
Followup to CL 459633002, this fixes a compile error with some
older toolchains.

BUG=401254

Review URL: https://codereview.chromium.org/558283003

git-svn-id: svn://svn.chromium.org/blink/trunk@181772 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Simplify DOMWindowProperty and its unregistration.
As LocalDOMWindow controls the registration lifetime of its
DOMWindowProperties, there's no need to offer a separate unregistration
mechanism. Remove it, simplify notification code + retire now unused
LocalDOMWindow back reference on DOMWindowProperty.

R=haraken,ager
BUG=

Review URL: https://codereview.chromium.org/558213002

git-svn-id: svn://svn.chromium.org/blink/trunk@181758 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Use correct viewport for intrinsic size-less SVG images in <svg:image>
Prior to https://codereview.chromium.org/403393002, an SVG image which had
no intrinsic size specified, would (somewhat accidentally) get the
<image>'s bounds set as their container size. After said CL, the container
size would never be set, and hence remain as 300x150. This will result in
incorrect scale factors being used when painting, and hence an incorrectly
scaled result.
Revert to setting the <image>'s bounds when the SVG image does not have an
intrinsic size.

BUG=411906

Review URL: https://codereview.chromium.org/551043006

git-svn-id: svn://svn.chromium.org/blink/trunk@181752 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jiangj
Clean up security_wrappers.cc/.h
It was introduced by https://codereview.chromium.org/10344009 for
keychain reauthorization, now that keychain reauthorization was
removed by https://codereview.chromium.org/183713003 we no longer
need most of it.

BUG=411926

Review URL: https://codereview.chromium.org/558233002

Cr-Commit-Position: refs/heads/master@{#294187}
bratell
Shrink canonicalizedTitle a bit.
Noticed that it was (in content_shell x64 for Linux) 421 and 425 bytes
which seemed excessive. Just rewrote it a bit to do less work for the
same result.

gcc (not even going to guess why createQualifiedName changed):
---------------------------------------------------------------------------------------------------------------------
 -635 - Source: /home/bratell/src/chromium/src/third_party/WebKit/Source/core/dom/Document.cpp - (gained 8, lost 643)
---------------------------------------------------------------------------------------------------------------------
  Grown symbols:
         +8: WebCore::Document::didChangeVisibilityState() type=t, (was 299 bytes, now 307 bytes)
  Shrunk symbols:
        -64: WebCore::createQualifiedName(WTF::AtomicString const&, WTF::AtomicString const&, WebCore::ExceptionState&) type=t, (was 1112 bytes, now 1048 bytes)
       -579: WebCore::Document::updateTitle(WTF::String const&) type=t, (was 1541 bytes, now 962 bytes)

clang:
  Shrunk symbols:
       -241: WebCore::Document::updateTitle(WTF::String const&) type=t, (was 1124 bytes, now 883 bytes)

Review URL: https://codereview.chromium.org/390003003

git-svn-id: svn://svn.chromium.org/blink/trunk@181746 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
In generated dictionary toImpl(), throw all exceptions via ExceptionState
This allows us to simplify callers by not having a v8::TryCatch there, and
instead only check the ExceptionState object.

Review URL: https://codereview.chromium.org/556273003

git-svn-id: svn://svn.chromium.org/blink/trunk@181738 bbb929c8-8fbe-4397-9dbb-9b2b20218538
bratell
Binary size tool: Don't escape text that won't be parsed.
Only text that will be sent through an HTML parser needs to be parsed.
Escaping more than that results in &amp; and &lt; and similar in the
output.

R=andrewhayden@chromium.org

BUG=412708

Review URL: https://codereview.chromium.org/562623002

Cr-Commit-Position: refs/heads/master@{#294176}
fs
Adjust error-handling for invalid filter primitive references
When a filter primitive has an 'in' (or, where applicable, 'in2') attribute
that references a non-existent result, treat that reference as having the
default value (==no value) instead of producing an error.
This aligns with Presto and IE.

BUG=411833

Review URL: https://codereview.chromium.org/558693002

git-svn-id: svn://svn.chromium.org/blink/trunk@181733 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ed
[SVG2] Add support for marker orient="auto-start-reverse".
Spec: https://svgwg.org/svg2-draft/painting.html#OrientAttribute

BUG=367748

Review URL: https://codereview.chromium.org/539833004

git-svn-id: svn://svn.chromium.org/blink/trunk@181732 bbb929c8-8fbe-4397-9dbb-9b2b20218538
joleksy
Rename gyp variable use_titlecase_in_grd_files -> use_titlecase_in_grd
See tools/gyp/pylib/gyp/input.py:
"Sections mathing the regexp '_(dir|file|path)s?$' are also considered PathSections."

Standard gyp variables should not be named like this.

BUG=

Review URL: https://codereview.chromium.org/552203002

Cr-Commit-Position: refs/heads/master@{#294166}
jl
Make 'crossOrigin' IDL attributes nullable
This affects the 'crossOrigin' IDL attributes in the interfaces
HTMLImageElement, HTMLLinkElement, HTMLMediaElement and HTMLScriptElement,
and is done to match the corresponding specification change:
  http://html5.org/r/8727

The effect is that on setting the IDL attribute to null, the content
attribute is removed (if present) instead of set to the string "null", and
on getting null is returned instead of the empty string if the content
attribute is not present.

BUG=409524

Review URL: https://codereview.chromium.org/529933002

git-svn-id: svn://svn.chromium.org/blink/trunk@181728 bbb929c8-8fbe-4397-9dbb-9b2b20218538
henriks
Make ffmpeg specific unit_tests depend on media_use_ffmpeg
Media unit tests depending on ffmpeg are currently only removed
using OS=="android", but let's remove them based on
media_use_ffmpeg==0 instead.

BUG=410779
R=acolwell@chromium.org

Review URL: https://codereview.chromium.org/541553003

Cr-Commit-Position: refs/heads/master@{#294148}
mostynb
remove template c++11'ism in Heap.h
Followup to CL 486193002 to remove default arguments from template types,
which is only allowed in c++11 and later (and we haven't officially switched
to c++11 yet afaik).

Review URL: https://codereview.chromium.org/559733004

git-svn-id: svn://svn.chromium.org/blink/trunk@181719 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: make DOMWindowProperty a GC mixin.
As all objects deriving from DOMWindowProperty are on the heap, make
it a GC mixin and have it trace its Window reference. The registered
DOMWindowProperty instances on a LocalDOMWindow live at least as long
it.

The benefit is that we can remove its destructor. Deriving objects can
as a consequence remove their empty finalizers.

R=ager@chromium.org, haraken@chromium.org
BUG=340522

Review URL: https://codereview.chromium.org/552733003

git-svn-id: svn://svn.chromium.org/blink/trunk@181717 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
In V8Binding.cpp, throw all exceptions via ExceptionState& argument
In those the conversion functions that take an ExceptionState& argument,
always throw via the ExceptionState object, and never directly to V8.
Various existing callers assume this, and fail to detect exceptions that
were thrown directly to V8.

This misbehavior is a regression from
  https://codereview.chromium.org/313033002/
which changed the definition of the TONATIVE_DEFAULT_EXCEPTIONSTATE()
macro, but these functions were somewhat tricky to use even before then,
since exceptions were sometimes thrown to V8 and sometimes not, while
always stored in the ExceptionState object.

Review URL: https://codereview.chromium.org/559553003

git-svn-id: svn://svn.chromium.org/blink/trunk@181709 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
remove >> ambiguity in quic_protocol.h
Resolve c++03 ambiguity introduced by CL 478153003 and 497553004, since
we haven't officially switched over to c++11 yet.

Review URL: https://codereview.chromium.org/561463002

Cr-Commit-Position: refs/heads/master@{#294094}
jiangj
Fix SDK forward declarations after CL 530193004
The APIs that need forward declarations were actually introduced in
OS X 10.7 SDK instead of 10.9 SDK, forward declare them in the wrong
place will cause build issue when using older SDKs like 10.7 or 10.8.

BUG=390212

Review URL: https://codereview.chromium.org/555163002

Cr-Commit-Position: refs/heads/master@{#294013}
jl
Move IdlType.may_raise_exception_on_conversion to v8_types.py
Also rename it v8_conversion_needs_exception_state, which is exactly what
it means.  The old name is somewhat misleading, since other conversions
can typically also raise exceptions in practice; the difference is whether
the conversion function does so via (and thus expects) an ExceptionState
argument.

Defining it in v8_types.py makes sense since this is a property of the
V8 bindings layer's conversion API for the type, not of the type itself.

Review URL: https://codereview.chromium.org/556893002

git-svn-id: svn://svn.chromium.org/blink/trunk@181669 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: move PromiseTracker to the heap (fix build after r181646.)
Follow up r181646 and make PromiseTracker work better with Oilpan.

TBR=oilpan-reviews
BUG=340522
NOTRY=true

Review URL: https://codereview.chromium.org/558673003

git-svn-id: svn://svn.chromium.org/blink/trunk@181662 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
MIDIAccess::create(): add missing adoptRefCountedGarbageCollected().
R=ager@chromium.org,haraken@chromium.org
BUG=340522

Review URL: https://codereview.chromium.org/552143003

git-svn-id: svn://svn.chromium.org/blink/trunk@181653 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
IDL: Remove support for [LogPreviousValue] extended attribute
Also remove the logSetter() overload taking an old value parameter from
the WebDOMActivityLogger interface, since there are no calls to it.

BUG=388287

Review URL: https://codereview.chromium.org/497773004

git-svn-id: svn://svn.chromium.org/blink/trunk@181643 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Don't use rowIndex() if needsCellRecalc().
The row index may be bogus or even unset in that case.

Rows may be inserted with an initially unknown row index. This happens
when the row isn't inserted at the end of its table section, and also
when splitting an anonymous row. This would lead to an assertion failure
for row()->rowIndexWasSet() in RenderTableCell::styleDidChange().
rowIndex() is used there in a call to
RenderTableSection::rowLogicalHeightChanged(). rowIndex() is also used
in a similar way in RenderTableRow::styleDidChange(), albeit without
asserting first.

styleDidChange() may be called while needsCellRecalc() is set, which
may mean that row index hasn't been calculated yet (or is bogus). We
could of course just recalculate the cells (which also involves
calculating all row indices) in styleDidChange(), but it's not really
necessary, since the row index was just needed in order to call
rowLogicalHeightChanged(), which just bails anyway if cells need recalc.

So the solution is to pass a RenderTableRow instead of the row index to
rowLogicalHeightChanged(). This way we don't call rowIndex() when
row index is unknown.

BUG=397442

Review URL: https://codereview.chromium.org/532513002

git-svn-id: svn://svn.chromium.org/blink/trunk@181637 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jiangj
Fix wifi_component build with 10.9+ SDK
Use forward declaration to build on both 10.6 and 10.9 SDK and
runtime checking to make sure we don't call the wrong API.

BUG=390212

Review URL: https://codereview.chromium.org/530193004

Cr-Commit-Position: refs/heads/master@{#293911}
arjanl
[Linux] Show preview contents for minimized windows
When minimizing a window, we hide the contents to prevent
unnecessary redrawing. However, this means that when the frame is
redrawn after the hiding, it is blank. Several desktop environments rely
on the window having contents when minimized, drawing the window
off-screen to be able to show preview content in overviews (Unity,
Gnome Shell).

This patch stops all drawing operations before hiding the
window, making sure that the content before hiding is retained and can
be shown by the window manager as a preview, but still avoiding unnecessary
redrawing of minimized windows.

BUG=156346

Review URL: https://codereview.chromium.org/542113004

Cr-Commit-Position: refs/heads/master@{#293909}
mstensho
Make vertical-lr and vertical-rl versions of the tests that replace border-padding-pagination.html
border-padding-pagination.html exists for both these writing modes, and it won't be
used in the new implementation, so better make sure that we don't lose coverage.

R=jchaffraix@chromium.org

Review URL: https://codereview.chromium.org/510123002

git-svn-id: svn://svn.chromium.org/blink/trunk@181622 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r181604.
TBR=oilpan-reviews
BUG=321462
NOTRY=true

Review URL: https://codereview.chromium.org/553993004

git-svn-id: svn://svn.chromium.org/blink/trunk@181611 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Add philipj@opera.com to Source/modules/mediasource/OWNERS
NOTRY=true

Review URL: https://codereview.chromium.org/550133002

git-svn-id: svn://svn.chromium.org/blink/trunk@181582 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Support scientific notation in CSS numbers/percentages/dimensions
Previously, scientific notation (scinot) was only supported for SVG
presentation attributes through a special tokenizer quirk. Since scinot
has now been added to the CSS syntax spec [1][2][3] and is already
supported by Gecko [4] and IE(11).
To harmonize, the call to parseSVGNumber(...) is replaced with a call to
charactersToDouble(...). This results in a small behavioral change, since
the former would reject numbers that were too large. These will now parse
as "Infinity" [5].
Since this removes the last caller of isSVGNumberParsingEnabledForMode()
that function is removed as well.

[1] http://dev.w3.org/csswg/css-syntax/#number-token-diagram
[2] http://lists.w3.org/Archives/Public/www-style/2012Aug/0900.html
[3] http://lists.w3.org/Archives/Public/www-style/2013Apr/0428.html
[4] https://bugzilla.mozilla.org/show_bug.cgi?id=964529
[5] Tested browsers were not entirely consistent in their treatment of
    infinities (Gecko: Infinity, IE: FLT_MAX).

BUG=388161
BUG=344645

Review URL: https://codereview.chromium.org/545173003

git-svn-id: svn://svn.chromium.org/blink/trunk@181560 bbb929c8-8fbe-4397-9dbb-9b2b20218538
arjanl
Fix maximize on some window managers
On some window managers the Maximize hints are not respected when they
are set on an unmapped window. There was an existing workaround for this
in the code, but the workaround failed whenever ShowWindowWithState
didn't happen to be called with the parameters needed to activate the
workaround. This meant that if a window was first made visible and later
activated, it would not get maximized at all.

This fix saves whether the maximize hints need to be sent to the window,
and makes sure it gets done after mapping the window.

BUG=

Review URL: https://codereview.chromium.org/543663003

Cr-Commit-Position: refs/heads/master@{#293698}
arjanl
Fix focus on popup GTK dialogs
Previously we didn't have a call to gtk_window_present(), which would
mean that the widgets would become visible, but the necessary actions to
focus weren't always taken. This resulted in the active window not being
correct after opening the file or print dialogs.

BUG=399514

Review URL: https://codereview.chromium.org/543093002

Cr-Commit-Position: refs/heads/master@{#293691}
sigbjornf
Oilpan: fix build after r181536.
TBR=oilpan-reviews
BUG=367689
NOTRY=true

Review URL: https://codereview.chromium.org/547323002

git-svn-id: svn://svn.chromium.org/blink/trunk@181544 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Make SVGElement::removeEventListener() mirror its addEventListener()
Simplify the implementation by having it mirror the addEventListener() version.

Which means creating a correct protector and passing it inwards.

Review URL: https://codereview.chromium.org/547103002

git-svn-id: svn://svn.chromium.org/blink/trunk@181510 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Remove TestExpectations duplicates after r181492, r181493.
ToT currently doesn't pass lint-test-expectations; address.

TBR=eae
BUG=
NOTRY=true

Review URL: https://codereview.chromium.org/547023003

git-svn-id: svn://svn.chromium.org/blink/trunk@181498 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r181472.
TBR=haraken,oilpan-reviews
BUG=404622
NOTRY=true

Review URL: https://codereview.chromium.org/547743002

git-svn-id: svn://svn.chromium.org/blink/trunk@181482 bbb929c8-8fbe-4397-9dbb-9b2b20218538
joleksy
Use changed_button_flags() when converting MouseEvent to blink::WebMouseEvent.
Event::flags() contains all the buttons that are being held down during the event, while MouseEvent::changed_button_flags() contains the buttons that are actually pressed/released during the event (and this is what we really are interested in).

This fixes the issue with LMB being pressed while RMB is being held down. Without the fix, we always get blink::WebMouseEvent::ButtonRight in blink::WebMouseEvent::button.

Review URL: https://codereview.chromium.org/302593002

Cr-Commit-Position: refs/heads/master@{#293487}
rune
Update :link/:visited style when changing href.
Previously, :link/:visited style was only updated when the href was changed
to/from a clickable anchor. The :enabled style still only needs updating
when wasLink and isLink differ.

BUG=63372

Review URL: https://codereview.chromium.org/537353002

git-svn-id: svn://svn.chromium.org/blink/trunk@181432 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Make markCaptionAndSubtitleTracksAsUnconfigured() do what the box say
Sink the call to configureTextTracks() out of
markCaptionAndSubtitleTracksAsUnconfigured() - this means the latter does
what it advertises and nothing more.
This also allows tightening the scope for when m_processingPreferenceChange
is set to true.

Review URL: https://codereview.chromium.org/541593004

git-svn-id: svn://svn.chromium.org/blink/trunk@181416 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Spec compliant url.search/url.hash setters over empty values.
Setting the URLUtils properties 'search' and 'hash' to empty strings
should result in null query and hash URL components, respectively.

R=arv
BUG=410395

Review URL: https://codereview.chromium.org/537103002

git-svn-id: svn://svn.chromium.org/blink/trunk@181410 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Simplify calls to HTMLMediaElement::createMediaControls()
All calls to the above method is currently guarded by a check of the
predicate hasMediaControls(). The first thing createMediaControls() does
though is to check the same predicate.
Remove the checks at the callsites and leave the checking to
createMediaControls().

Review URL: https://codereview.chromium.org/539003003

git-svn-id: svn://svn.chromium.org/blink/trunk@181403 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Rename HTMLMediaElement::closeCaptionTracksChanged to textTracksChanged
The name closeCaptionTracksChanged() is slightly misleading since this
method is called for all kinds of (text) tracks, and not just 'caption'
tracks (and the 'closed' needn't necessarily apply either...)
Rename to textTracksChanged() since that more accurately describe what it
does.
Also replace a few "manual" instances of textTracksChanged() with calls
to the method. In the case of HTMLMediaElement::didAddTrackElement, it
can be dropped altogether because addTextTrack already calls it (and
scheduleDelayedAction(LoadTextTrackResource) does not have side-effects
that would affect the result.)
Also do the same name-change for the closedCaptionTracksChanged() notifier
on MediaControls (same semantic meaning.)

Review URL: https://codereview.chromium.org/540853003

git-svn-id: svn://svn.chromium.org/blink/trunk@181401 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Mark fast/css/css-selector-deeply-nested.html as not flaky
It stopped crashing with the update of V8 to version 3.28.21:
https://codereview.chromium.org/381383003

BUG=392853
NOTRY=true

Review URL: https://codereview.chromium.org/532283002

git-svn-id: svn://svn.chromium.org/blink/trunk@181397 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Move pending async script to the correct resolved document.
Follow up r181081 and move the pending script load to the document we're
executing in the context of.

R=haraken
BUG=409618

Review URL: https://codereview.chromium.org/532643002

git-svn-id: svn://svn.chromium.org/blink/trunk@181374 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Work around GC bug to fix flaky audio/video track tests
BUG=400659

Review URL: https://codereview.chromium.org/533613002

git-svn-id: svn://svn.chromium.org/blink/trunk@181338 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r181322
R=haraken
BUG=399178
NOTRY=true

Review URL: https://codereview.chromium.org/534253004

git-svn-id: svn://svn.chromium.org/blink/trunk@181334 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Force layout to make a track rendering test non-flaky
While !textTracksAreReady(), readyState is constrained to
HAVE_CURRENT_DATA or lower. Once text tracks are ready, if the media
load has already progressed far, the canplaythrough event dispatch and
the text track rendering will be racy.

Since the rendering is not observable to Web content, it does not seem
worthwhile trying to make this deterministic.

The same fix was applied to WebKit:
http://trac.webkit.org/changeset/148050/trunk/LayoutTests/media/track/track-cue-container-rendering-position.html

BUG=330049

Review URL: https://codereview.chromium.org/533073003

git-svn-id: svn://svn.chromium.org/blink/trunk@181310 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove TestExpectations for a test that has not crashed recently
There have not been any crashes recorded recently:
http://test-results.appspot.com/dashboards/flakiness_dashboard.html#showAllRuns=true&tests=http%2Ftests%2Fsecurity%2FcontentSecurityPolicy%2Freport-only-from-header.php

There has been a timeout on WebKit Win Oilpan, so leave that alone.

BUG=282081
NOTRY=true

Review URL: https://codereview.chromium.org/528273002

git-svn-id: svn://svn.chromium.org/blink/trunk@181308 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Move navigator.sendBeacon() to stable.
R=
BUG=402991

Review URL: https://codereview.chromium.org/416283004

git-svn-id: svn://svn.chromium.org/blink/trunk@181307 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mharanczyk
Change VKEY_MENU to VKEY_LMENU in interactive ui tests key sequence sending.
On windows depending on system/keyboard setting right alt (alt gr) can be
seen as alt+ctrl. This is also true for sending VKEY_MENU via SendInput,
probably because it is treated as any alt key. To avoid intorducing
unwanted ctrl key in sequence use VKEY_LMENU which will only add alt key
without a risk of adding ctrl key regardless of system setup.
The change fixes CommandsApiTest.DontOverwriteSystemShortcuts test timout.
Test expected alt+shift+f, but what was received was ctrl+alt+shift+f.

BUG=409567

Review URL: https://codereview.chromium.org/526063002

Cr-Commit-Position: refs/heads/master@{#293112}
mboc
Use correct font for label in a drag image
The drag image, generated when dragging a link from web contents is
using the same font for both the title and its link, even though
different fonts (bold and regular) are created for those two elements
(accordingly). This change makes the title use the bold font as it is
supposed to do.

R=eae@chromium.org

Review URL: https://codereview.chromium.org/517193002

git-svn-id: svn://svn.chromium.org/blink/trunk@181293 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r181280.
R=haraken
BUG=396372
NOTRY=true

Review URL: https://codereview.chromium.org/535733003

git-svn-id: svn://svn.chromium.org/blink/trunk@181284 bbb929c8-8fbe-4397-9dbb-9b2b20218538
bratell
binarysize tool: Cleaning up some progress output.
R=primiano

BUG=

Review URL: https://codereview.chromium.org/399683004

Cr-Commit-Position: refs/heads/master@{#292999}
rune
Avoid auto-resize re-entrancy problems.
ASSERT(needsLayout()) failed in various layout() methods. The reason is
that autoSizeIfEnabled() will re-enter FrameView::layout(), and upon return,
the rootForThisLayout RenderObject has already been layed out.

This CL moves the auto-sizing up to the top of FrameView::layout() to avoid
the re-entrancy problem with rootForThisLayout.

BUG=403743

Review URL: https://codereview.chromium.org/473903002

git-svn-id: svn://svn.chromium.org/blink/trunk@181258 bbb929c8-8fbe-4397-9dbb-9b2b20218538
tmoniuszko
Further cleanup of RenderText
Remove redundant data member and include.
Followup after https://codereview.chromium.org/493363006

BUG=388084

Review URL: https://codereview.chromium.org/527103003

Cr-Commit-Position: refs/heads/master@{#292982}
philipj
Remove WebKitPoint
Intent to Deprecate and Remove:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/pIbpN_8Lqpg/tp9f71GsslIJ

BUG=409956

Review URL: https://codereview.chromium.org/521883003

git-svn-id: svn://svn.chromium.org/blink/trunk@181252 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Rewrote multicol/newmulticol/column-rules-fixed-height and moved it to fast/multicol/
It's a pure reftest now. It used to compare between the old and new
implementations, until settings.setRegionBasedColumnsEnabled(true)
got removed from a lot of tests a couple of months ago, at which point
the test and the ref essentially became identical.

R=jchaffraix@chromium.org

Review URL: https://codereview.chromium.org/508953004

git-svn-id: svn://svn.chromium.org/blink/trunk@181248 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Increase maxBeaconTransmission default to 64k bytes.
The implementation should impose an upper bound on the amount of
per-document data that sendBeacon() is allowed to transmit.

Increase the default setting to a larger 64k (was: 16k), taking feedback from
some Google internal projects into account.

R=jochen@chromium.org
BUG=402991

Review URL: https://codereview.chromium.org/503843002

git-svn-id: svn://svn.chromium.org/blink/trunk@181229 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Merge willEnter/willExitFullScreen into didEnter/didExitFullScreen
The will/did callback pairs came into being in 2011:
https://bugs.webkit.org/show_bug.cgi?id=70477
https://code.google.com/p/chromium/issues/detail?id=100264

The original problem was that the webkitfullscreenchange was
dispatched too early, but this is not affected since the did*
callbacks are the ones left in use.

The risk is that something done in the will* callbacks is too late if
done moved to the did* callbacks. That amounts to:

 - Saving placeholder style and unwrapping/wrapping the renderer in
   Fullscreen::willEnterFullScreenForElement().

 - The overlayFullscreenVideoEnabled() bits in
   HTMLMediaElement::willStopBeingFullscreenElement() and
   FullscreenController::willExitFullScreen().

Since the only difference between will* and did* is that the new size
is known and events aren't fired synchronously, this seems likely to
be safe.

BUG=407002

Review URL: https://codereview.chromium.org/497723002

git-svn-id: svn://svn.chromium.org/blink/trunk@181218 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
use c++03 style enum scope
Followup to https://codereview.chromium.org/411973004

We haven't officially switched over to using c++11 everywhere
yet, so this patch replaces c++11 style enum scope with c++03 style scope.

BUG=392621

Review URL: https://codereview.chromium.org/526193002

Cr-Commit-Position: refs/heads/master@{#292902}
sigbjornf
Remove geolocationDestroyed() client notification.
This WebGeolocationClient notification is no longer issued by Blink
to the embedder (Blink r180944), nor implemented (Chromium r292890.)

R=
BUG=

Review URL: https://codereview.chromium.org/521223003

git-svn-id: svn://svn.chromium.org/blink/trunk@181206 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
use c++03 style enum scope
Followup to https://codereview.chromium.org/473833002

We haven't officially switched over to using c++11 everywhere
yet, so this patch replaces c++11 style enum scope with c++03 style scope.

BUG=402749

Review URL: https://codereview.chromium.org/528843002

git-svn-id: svn://svn.chromium.org/blink/trunk@181202 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Remove unused GeolocationDispatcher::geolocationDestroyed().
As of Blink r180944, Blink is no longer notifying the embedder of its
GeolocationController reference going away (as there's no need.) Follow
up and retire the notification implementation on the embedder side.

R=mvanouwerkerk@chromium.org, jochen@chromium.org
BUG=

Review URL: https://codereview.chromium.org/526123002

Cr-Commit-Position: refs/heads/master@{#292890}
ed
[svg] getScreenCTM reporting incorrect transformation matrix.
BUG=402790

Review URL: https://codereview.chromium.org/464823003

git-svn-id: svn://svn.chromium.org/blink/trunk@181197 bbb929c8-8fbe-4397-9dbb-9b2b20218538
bratell
Stop inlining StringBuffer<CharType>::shrink().
Minor cleanup as part of looking at overly aggressive inlining. The default
for all code should be that no code is force-inlined unless it is
critical for some other reason.

This is a prerequisite for http://codereview.chromium.org/390003003/

Review URL: https://codereview.chromium.org/520723002

git-svn-id: svn://svn.chromium.org/blink/trunk@181193 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Add a comment about counter availability in M38 branch
NOTRY=true

Review URL: https://codereview.chromium.org/530643003

git-svn-id: svn://svn.chromium.org/blink/trunk@181171 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mboc
Aura: Don't activate menus and other non-activatable widgets on drop
BUG=none

Review URL: https://codereview.chromium.org/517103003

Cr-Commit-Position: refs/heads/master@{#292848}
rune
No need to re-parse empty set of injected stylesheets.
setCompatibilityMode invalidates the injected stylesheet cache which means
styleResolverChanged() and an updating of the active stylesheets list. The
reason is that the injected stylesheets need to be re-parsed with the
correct strict/quirks mode. If the list of injected stylesheets is empty,
there are no stylesheets to reparse, so avoid styleResolverChanged().

This might not mean much in practice, depending on where the compat mode
may change, but the styleResolverChanged was noise while trying to analyze
the bug in question.

BUG=393480

Review URL: https://codereview.chromium.org/468903002

git-svn-id: svn://svn.chromium.org/blink/trunk@181125 bbb929c8-8fbe-4397-9dbb-9b2b20218538
tmoniuszko
Remove deferred fade shader workaround from RenderText
BUG=388084

Review URL: https://codereview.chromium.org/493363006

Cr-Commit-Position: refs/heads/master@{#292650}
philipj
Work around GC bug to fix flaky track tests
BUG=400659

Review URL: https://codereview.chromium.org/518793002

git-svn-id: svn://svn.chromium.org/blink/trunk@181100 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Convert some Internals APIs to use DOMPoint instead of WebKitPoint
This is the only internal usage of WebKitPoint.

Review URL: https://codereview.chromium.org/517293002

git-svn-id: svn://svn.chromium.org/blink/trunk@181095 bbb929c8-8fbe-4397-9dbb-9b2b20218538
krzysztofc
Fix for a crash in NativeViewAccessibilityWin.
Review URL: https://codereview.chromium.org/521573003

Cr-Commit-Position: refs/heads/master@{#292605}
sigbjornf
Oilpan: fix build after r181083
Move FrameConsole and ConsoleMessageStorage to the heap in order to do so.

R=ager@chromium.org, zerny@chromium.org
BUG=408121
NOTRY=true

Review URL: https://codereview.chromium.org/517213003

git-svn-id: svn://svn.chromium.org/blink/trunk@181087 bbb929c8-8fbe-4397-9dbb-9b2b20218538
bratell
BitmapImage: Use the cheapest Vector constructor.
Vector() and Vector(0) will result in the same object
but Vector() is cheaper (unless the optimizer manages
to optimize away everything in Vector(size_t) ).

BUG=

Review URL: https://codereview.chromium.org/435913002

git-svn-id: svn://svn.chromium.org/blink/trunk@181084 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Transfer pending async script loader to new document.
If a script element is moved to a new document and it has a pending
async script being loaded in the old document, transfer the pending
script load to the new document.

R=japhet@chromium.org
BUG=407824

Review URL: https://codereview.chromium.org/496443008

git-svn-id: svn://svn.chromium.org/blink/trunk@181081 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r181070.
TBR=oilpan-reviews
BUG=
NOTRY=true

Review URL: https://codereview.chromium.org/523543002

git-svn-id: svn://svn.chromium.org/blink/trunk@181076 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Update the path to generate_breakpad_symbols.py
It was moved in https://crrev.com/55b8563

git grep 'components.*breakpad' did not find any other instances.

BUG=406410
R=rsesek@chromium.org

Review URL: https://codereview.chromium.org/512213002

git-svn-id: svn://svn.chromium.org/blink/trunk@181041 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Update some paths from components/breakpad/ to components/crash/
It was moved in https://crrev.com/55b8563

Found by git grep 'components.*breakpad'

BUG=406410
R=rsesek@chromium.org
TBR=jochen@chromium.org

Review URL: https://codereview.chromium.org/511223002

Cr-Commit-Position: refs/heads/master@{#292376}
mstensho
Re-enable test fast/multicol/cell-shrinkback.html and make it pass.
Preferred min/max widths are rounded up for table cells, but not for other
types of shrink-to-fit containers, so using a table cell in the test and
an abspos in the ref doesn't necessarily result in identical rendering.

Specify a fixed width on the containers instead, so that the test isn't
affected by this problem. The problem has nothing to do with multicol.

BUG=397257
R=pkasting@chromium.org

Review URL: https://codereview.chromium.org/501853003

git-svn-id: svn://svn.chromium.org/blink/trunk@180999 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Remove LayoutTests/fast/multicol/newmulticol/cell-shrinkback.html
The ref had become 100% identical to the test (after creation of the
virtual/regionbasedcolumns/ testsuite and removal of calls
to settings.setRegionBasedColumnsEnabled()).

Note that there's also a LayoutTests/fast/multicol/cell-shrinkback.html
which is in the process of being fixed. See issue 397257.

R=pkasting@chromium.org

Review URL: https://codereview.chromium.org/512783002

git-svn-id: svn://svn.chromium.org/blink/trunk@180998 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jiangj
Fix content build with OS X 10.9 SDK
Missing GL_TEXTURE_RECTANGLE_ARB definition if gl.h or glext.h is
not included.

Review URL: https://codereview.chromium.org/511793002

Cr-Commit-Position: refs/heads/master@{#292159}
mstensho
Remove prettyprinters for JSC::Identifier and JSC::JSString.
These classes are not part of Blink (or Chromium, for that matter).

R=tony@chromium.org

Review URL: https://codereview.chromium.org/507203003

git-svn-id: svn://svn.chromium.org/blink/trunk@180982 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Move GeolocationClient to the Oilpan heap.
And as a result, willBeDestroyed() over Supplementables and Supplements
can now be removed.

R=ager,haraken,tkent
BUG=340522

Review URL: https://codereview.chromium.org/490143002

git-svn-id: svn://svn.chromium.org/blink/trunk@180944 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Update python script for gdb to track namespace change from WebCore to blink.
Some prettyprinters didn't work.

Review URL: https://codereview.chromium.org/484003006

git-svn-id: svn://svn.chromium.org/blink/trunk@180938 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r180932.
TBR=oilpan-reviews
BUG=396585
NOTRY=true

Review URL: https://codereview.chromium.org/512623002

git-svn-id: svn://svn.chromium.org/blink/trunk@180935 bbb929c8-8fbe-4397-9dbb-9b2b20218538
auygun
cc: Do bitmap conversion for RasterBuffer in the worker thread.
- Moved RasterBuffer from ResourceProvider to its own file.
It's now the public interface used by raster tasks.
- Added Acquire/ReleaseSkCanvas() interface into
RasterBuffer.
- Bitmap conversion is now done in raster worker thread
through RasterBuffer interface.

BUG=None

Review URL: https://codereview.chromium.org/454843002

Cr-Commit-Position: refs/heads/master@{#291910}
jl
IDL: Avoid generating empty ConstantConfiguration arrays
If all constants in an interface are runtime enabled, an empty
(zero-length) C++ array would be generated, which isn't a good idea.

Review URL: https://codereview.chromium.org/499293003

git-svn-id: svn://svn.chromium.org/blink/trunk@180890 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Make some ScriptValue references const in modules/indexeddb
These functions are called from the bindings layer, so the non-const
references bind to its local variables, and thus limit what we can do
in the generated code; the parameter value must be an lvalue.

There was no obvious reason why these references should be non-const.

Review URL: https://codereview.chromium.org/497033002

git-svn-id: svn://svn.chromium.org/blink/trunk@180883 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Re-enable unit tests for auto-sizing.
Enabling these tests pass for me locally on Linux.

Review URL: https://codereview.chromium.org/500453003

git-svn-id: svn://svn.chromium.org/blink/trunk@180869 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Restructure handling of list type extended attributes
This patch does a number of things:

- Drops the [Attr=Some|Other] syntax, in favor of [Attr=(Some,Other)]
  which WebIDL defines, and converts all uses of the former in our IDL
  files. Also drops related grammar overrides from blink_idl_parser.py.

- Simplifies [Conditional] to only support single identifier form, which
  is the only way it's used in current (real) IDL files.

- Adds [Attr="value"] and [Attr=("some","other")] instead of the previous
  [Attr="some"|"other"] syntax, to better match the syntax of identifier
  lists.

- Changes the output from the parser to be Python lists for list type
  attributes, so that the rest of the code doesn't need to do string
  splitting operations. In the case of string literal values means we can
  now handle string literals containing ',' and '|' correctly, should
  that ever become an issue.

None of these changes affect code generation.

Review URL: https://codereview.chromium.org/464273003

git-svn-id: svn://svn.chromium.org/blink/trunk@180852 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Deprecate XHR progress event properties 'position' and 'totalSize'.
Use the properties 'loaded' and 'total' respectively instead.

R=tyoshino@chromium.org, haraken@chromium.org
BUG=357112

Review URL: https://codereview.chromium.org/492213004

git-svn-id: svn://svn.chromium.org/blink/trunk@180775 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix g++ (4.8) building after r180659.
Pin down the resolution of + to be over int by converting the enum value.

R=haraken,zerny
BUG=
NOTRY=true

Review URL: https://codereview.chromium.org/488923004

git-svn-id: svn://svn.chromium.org/blink/trunk@180774 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Test tidying: use "escape" and "backspace" with eventSender.keyDown()
R=keishi@chromium.org,yosin@chromium.org
BUG=392517
NOTRY=true

Review URL: https://codereview.chromium.org/484353004

git-svn-id: svn://svn.chromium.org/blink/trunk@180765 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Fix spelling of provideNotificationPermissionClientTo()
TBR=tkent
NOTRY=true

Review URL: https://codereview.chromium.org/489373002

git-svn-id: svn://svn.chromium.org/blink/trunk@180755 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
EventSender::KeyDown(): add "escape" and "backspace" key names.
..as their ASCII codes are used in various layout tests. Mapped to
VKEY_ESCAPE and VKEY_BACK, respectively.

R=tkent@chromium.org
BUG=392517

Review URL: https://codereview.chromium.org/488053002

Cr-Commit-Position: refs/heads/master@{#291110}
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@291110 0039d316-1c4b-4281-b951-d872f2087c98
jl
Make some ScriptValue references const
The functions FontFaceSet::forEach() and Headers::forEach() are called
from the bindings layer, and by having non-const reference arguments, they
somewhat restrict what we can do in the bindings layer.

Since there is no reason for the arguments to be non-const references,
just make them const.

Review URL: https://codereview.chromium.org/478233003

git-svn-id: svn://svn.chromium.org/blink/trunk@180719 bbb929c8-8fbe-4397-9dbb-9b2b20218538
haavardm
Fix mapping of weak DH key and remove unused error codes.
None of these error codes are actually reported back by BoringSSL.

SSL_R_WRONG_NUMBER_OF_KEY_BITS is changed to the proper
error code SSL_R_BAD_DH_P_LENGTH.

Test DH issue by loading https://demo.cmrg.net/

BUG=353579

Review URL: https://codereview.chromium.org/495553002

Cr-Commit-Position: refs/heads/master@{#291051}
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@291051 0039d316-1c4b-4281-b951-d872f2087c98
mostynb
parameterize http response header tests
Followup to https://codereview.chromium.org/391763002 to allow this
to build on more compilers (which can fail when using structs defined
in funtions in arraysize calls- as mentioned in base/macros.h).

By refactoring to use TEST_P we can skip the manual loop entirely.

BUG=348877
TEST=net_unittests --gtest_filter=Http*

Review URL: https://codereview.chromium.org/448373003

Cr-Commit-Position: refs/heads/master@{#291025}
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@291025 0039d316-1c4b-4281-b951-d872f2087c98
philipj
Add tests for removing the parent/child of the fullscreen element
The parent test would fail if Fullscreen::elementRemoved() were only
called for the top-most removed element.

The child test would require a more serious misinterpretation of "in
fullscreen element stack".

BUG=383813

Review URL: https://codereview.chromium.org/479113003

git-svn-id: svn://svn.chromium.org/blink/trunk@180700 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Make the fullscreen element ready check static
Also, use Element instead of HTMLFrameOwnerElement.

BUG=402376

Review URL: https://codereview.chromium.org/494743002

git-svn-id: svn://svn.chromium.org/blink/trunk@180692 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r180648.
TBR=oilpan-reviews,mkwst@chromium.org
BUG=400674
NOTRY=true

Review URL: https://codereview.chromium.org/489903002

git-svn-id: svn://svn.chromium.org/blink/trunk@180674 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r180653.
Need an explicit RawPtr<> conversion to resolve toV8() overloading.

TBR=oilpan-reviews
BUG=
NOTRY=true

Review URL: https://codereview.chromium.org/493783002

git-svn-id: svn://svn.chromium.org/blink/trunk@180671 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove the Notation interface
Neither Firefox Nightly nor IE11 has the Notation interface,
and it doesn't actually do anything in Blink/WebKit.

BUG=405525

Review URL: https://codereview.chromium.org/491693003

git-svn-id: svn://svn.chromium.org/blink/trunk@180662 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Move HTMLTable*Element.insert{Row,Cell}'s argument default into IDL file
They each take an index argument, that should default to -1.

This matches the specification, and doesn't change behavior since these
defaults were already implemented in the C++ code.

BUG=258153

Review URL: https://codereview.chromium.org/494653002

git-svn-id: svn://svn.chromium.org/blink/trunk@180656 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Move HTMLInputElement method argument defaults into IDL file
The stepUp()/stepDown() methods' argument should default to 1, and the
setRangeText() method's selectionMode argument should default to
"preserve".

This matches the specification, and doesn't change behavior since these
defaults were already implemented in the C++ code.

BUG=258153

Review URL: https://codereview.chromium.org/471163006

git-svn-id: svn://svn.chromium.org/blink/trunk@180647 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Gracefully handle drag cancellation during drag start.
Should the dispatching of a dragstart cause the drag to be reset, take
that into account when trying to handle follow-on drag operations.

The test is imported from https://bugs.webkit.org/show_bug.cgi?id=115296

R=dcheng@chromium.org
BUG=405442

Review URL: https://codereview.chromium.org/488923003

git-svn-id: svn://svn.chromium.org/blink/trunk@180646 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Support invalidation sets for negated selectors.
Add invalidation set features to invalidation sets for negated classes, ids,
etc. But still treat negated features as universal selectors and trigger
subtree recalc.

Example selector -> invalidation set mappings:

":not(.a)"    -> ".a {}"
":not(.a) .b" -> ".b {}, .a { .b }"
".a :not(.b)"  -> ".a { * }, .b {}"
".a .b:not(.c)" -> ".a { .b }, .b {}, .c {}"

BUG=377939

Review URL: https://codereview.chromium.org/462593002

git-svn-id: svn://svn.chromium.org/blink/trunk@180632 bbb929c8-8fbe-4397-9dbb-9b2b20218538
joleksy
Fix KDE Wallet backward compatibility when (de)serializing FormData.
The problem was introduced by https://codereview.chromium.org/365783002

BUG=404615

Review URL: https://codereview.chromium.org/443873011

Cr-Commit-Position: refs/heads/master@{#290677}
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@290677 0039d316-1c4b-4281-b951-d872f2087c98
sigbjornf
Oilpan: fix MSVC compilation after r180556.
Have the "same-size" class inherit from the same classes as CSSRule, so
as to have the MSVC-specific alignment constraints of the parent
ScriptWrappableBase class apply in equal measure.

TBR=oilpan-reviews@chromium.org,yukishiino@chromium.org
BUG=235436
NOTRY=true

Review URL: https://codereview.chromium.org/487923002

git-svn-id: svn://svn.chromium.org/blink/trunk@180601 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r180659.
TBR=oilpan-reviews
BUG=404107
NOTRY=true

Review URL: https://codereview.chromium.org/487313003

git-svn-id: svn://svn.chromium.org/blink/trunk@180591 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
All selectors in :-webkit-any must have an invalidation set feature.
In order to avoid subtree style recalc for a :-webkit-any selector in the
rightmost compound selector, all of its selectors must contain an
invalidation set feature. In terms of invalidation sets, these selectors
are all universal in the rightmost compound:

.x :-webkit-any(*)
.x :-webkit-any(.y, *)
.x :-webkit-any(.y, :hover)

The fix is to set foundIdent to true when all selectors in the selector
list have found one.

BUG=392852

Review URL: https://codereview.chromium.org/383833002

git-svn-id: svn://svn.chromium.org/blink/trunk@180566 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
IDL: Use IdlNullableType wrapper to represent nullable types
Replaces the |is_nullable| flag previously stored in IdlTypeBase.

Review URL: https://codereview.chromium.org/474173002

git-svn-id: svn://svn.chromium.org/blink/trunk@180564 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Make Fullscreen::fullyExitFullscreen() static
The implementation may not need the Fullscreen instance for the Document
fullyExitFullscreen() is given, and can avoid creating one for the
top-level Document in case there is no fullscreen element, which is >99%
of time.

BUG=403763

Review URL: https://codereview.chromium.org/485953003

git-svn-id: svn://svn.chromium.org/blink/trunk@180563 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Use SpecialWrapFor over HTMLMediaElement.
To appropriately delegate the creation of a wrapper to
subclasses of HTMLMediaElement, annotate HTMLMediaElement's
interface with SpecialWrapFor.

R=haraken@chromium.org
BUG=379499

Review URL: https://codereview.chromium.org/483863003

git-svn-id: svn://svn.chromium.org/blink/trunk@180555 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
refer to WebServiceWorkerCacheError values in c++03 style
Since WebServiceWorkerCacheError values are prefixed with
"WebServiceWorkerCacheError", the c++11 style enum prefix
is a bit redundant.

BUG=392621

Review URL: https://codereview.chromium.org/489473002

git-svn-id: svn://svn.chromium.org/blink/trunk@180548 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r180544.
TBR=oilpan-reviews
BUG=
NOTRY=true

Review URL: https://codereview.chromium.org/488543002

git-svn-id: svn://svn.chromium.org/blink/trunk@180545 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Stop RenderProgress timer on destruction.
To handle the Oilpan case where the RenderObject stays
around until the next GC after the object has been
destroy()ed, stop the RenderProgress animation timer.

R=tkent@chromium.org
BUG=

Review URL: https://codereview.chromium.org/476543003

git-svn-id: svn://svn.chromium.org/blink/trunk@180536 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
IDL: Fix overload resolution for dictionary types
Overload resolution only handled the "Dictionary" type correctly, not
actual declared dictionary types.

BUG=321462

Review URL: https://codereview.chromium.org/474813004

git-svn-id: svn://svn.chromium.org/blink/trunk@180527 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Sync "fully exit fullscreen" with the spec
http://fullscreen.spec.whatwg.org/#fully-exit-fullscreen
https://www.w3.org/Bugs/Public/show_bug.cgi?id=26587

This should not change observable behavior.

When to actually invoke "fully exit fullscreen" is not finalized:
https://www.w3.org/Bugs/Public/show_bug.cgi?id=26584

TEST=LayoutTests/fullscreen/full-screen-exit-when-popup.html (old)
TEST=LayoutTests/fullscreen/model/fully-exit-fullscreen-*.html (new)

The old test enters the fullyExitFullscreen() code path, but passes even
if fullyExitFullscreen() is made an alias of exitFullscreen().

The new tests will fail if a non-top-level document is used or if more
than one element is on the stack when exitFullscreen() is called.

BUG=403763

Review URL: https://codereview.chromium.org/470723002

git-svn-id: svn://svn.chromium.org/blink/trunk@180506 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Invalidation set features recognized left of adjacent.
Only recognize features (foundIdent) up until we see a relation different
from SubSelector.

After we allowed selectors with adjacent combinators to use invalidation
sets, we started to acknowledge id/class/attribute to the left of adjacent
combinators as features of the rightmost compound selector because we only
looked for descendant type of selectors.

For instance, the class 'b' below were recognized as an invalidation set
feature in this selector: ".a .b + *".

R=esprehn@chromium.org,chrishtr@chromium.org
BUG=391244,391193

Review URL: https://codereview.chromium.org/365063005

git-svn-id: svn://svn.chromium.org/blink/trunk@180500 bbb929c8-8fbe-4397-9dbb-9b2b20218538
andersr
Remove custom style building functions for 'clip'.
The property 'clip' is (with some modifications) compatible with the
apply_auto-properties.

Changes in this commit:

 * Use apply_auto + converter instead of custom building functions.
 * StyleVisualData::hasClip -> hasAutoClip (meaning reversed).
 * Remove unnecessary RenderStyle::setClip*-functions.

Review URL: https://codereview.chromium.org/462133002

git-svn-id: svn://svn.chromium.org/blink/trunk@180465 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Invalidation set features are not skippable.
Ids, attributes, tag names, and custom pseudo elements are handled as
invalidation set features and not skippable. Should be unnecessary to check
for them in isSkippableComponentForInvalidation.

R=chrishtr@chromium.org, esprehn@chromium.org

Review URL: https://codereview.chromium.org/450293002

git-svn-id: svn://svn.chromium.org/blink/trunk@180463 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Prevent mis-nested fullscreen in iframes
http://fullscreen.spec.whatwg.org/#fullscreen-element-ready-check
https://www.w3.org/Bugs/Public/show_bug.cgi?id=26568

BUG=403741

Review URL: https://codereview.chromium.org/485443002

git-svn-id: svn://svn.chromium.org/blink/trunk@180460 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
IDL: Improve "argument needs v8::TryCatch" logic slightly
Enumeration types are effectively strings, and should thus be handled the
same, meaning they don't need a v8::TryCatch object.

This changes generated code for a few methods that take at least one
enumeration type argument, and don't otherwise need a v8::TryCatch, by
eliminating the unnecessary v8::TryCatch locals.

Also refactor slightly: pass in the IdlOperation object and check whether
the return type is Promise inside argument_needs_try_catch(), instead
of passing in that fact as an argument. This keeps the logic localized in
argument_needs_try_catch().

R=haraken@chromium.org
BUG=

Review URL: https://codereview.chromium.org/482713002

git-svn-id: svn://svn.chromium.org/blink/trunk@180459 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
FileReader: switch to using TypeChecking=Interface
Let generated bindings code handle the type checking of Blob arguments.

R=tzik@chromium.org
BUG=

Review URL: https://codereview.chromium.org/474353004

git-svn-id: svn://svn.chromium.org/blink/trunk@180454 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Avoid GCing an aborting and stopped FileReader.
If a FileReader is abort()ed, a task is scheduled to perform the actual
abort operation. Should the containing Document's ActiveDOMObjects be
stopped before that task gets to run, the FileReader would already
advance to a DONE state and be at risk from being GCed before the abort
task gets to run. If so, it would then access a dead object.

The provided test elicits an assert that shows up the problem, but
doesn't trigger the GC and subsequent access of the dead object.

R=kouhei@chromium.org, tzik@chromium.org
BUG=404513

Review URL: https://codereview.chromium.org/478263002

git-svn-id: svn://svn.chromium.org/blink/trunk@180450 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Ignore fullscreen requests for the current fullscreen element
http://fullscreen.spec.whatwg.org/#dom-element-requestfullscreen

This spec change was made in order to simplify the fix for mis-nested
fullscreen in iframes:
https://www.w3.org/Bugs/Public/show_bug.cgi?id=26568 (comments 9-13)

The requestFullscreen() implementation is not in sync with the spec, but
an early return is equivalent until the "run the remaining steps
asynchronously" bit is implemented.

In order to be affected by this change, one would have to request
fullscreen for the same element twice and do something meaningful in the
fullscreenerror event, which is likely rare.

Note that exitFullscreen() already does nothing if the fullscreen
element stack is empty, so there is some symmetry to this.

TEST=LayoutTests/fullscreen/api/element-request-fullscreen-top.html
TEST=LayoutTests/fullscreen/api/element-request-fullscreen-non-top.html

BUG=403741

Review URL: https://codereview.chromium.org/482543002

git-svn-id: svn://svn.chromium.org/blink/trunk@180444 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove webkitIsFullScreen everywhere except in bindings
It's equivalent to webkitCurrentFullScreenElement != null.

BUG=383813

Review URL: https://codereview.chromium.org/476353002

git-svn-id: svn://svn.chromium.org/blink/trunk@180439 bbb929c8-8fbe-4397-9dbb-9b2b20218538
andersr
Use common converter for -webkit-column-[gap, width].
This patch adds support for the 'converter' attribute for a group of
semi-custom CSS properties handled by the 'apply_auto' macro. This gets
rid of the redundant 'compute_length=true/false' argument, plus the code
related to that.

It also makes it easier to add other things to the apply_auto-list which
can't be converted with computeLength or a primitive value mapping.

Review URL: https://codereview.chromium.org/454133004

git-svn-id: svn://svn.chromium.org/blink/trunk@180437 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Sync fullscreen element removal with the spec (again)
http://fullscreen.spec.whatwg.org/#model
https://www.w3.org/Bugs/Public/show_bug.cgi?id=26568#c12
https://www.w3.org/Bugs/Public/show_bug.cgi?id=26568#c16

BUG=383813
NOTRY=true

Review URL: https://codereview.chromium.org/477133002

git-svn-id: svn://svn.chromium.org/blink/trunk@180435 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Rename FullscreenElementStack to just Fullscreen
This class does more than just manage the fullscreen element stack, and
the shorter name makes the code more readable in many places. In the
renamed Fullscreen class, it also makes it more obvious when the actual
fullscreen element stack is being manipulated.

BUG=383813

Review URL: https://codereview.chromium.org/476763004

git-svn-id: svn://svn.chromium.org/blink/trunk@180433 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Revert "Add IPC benchmarking API to Blink TestRunner" (patchset #3 of https://codereview.chromium.org/478483005/ , commit 345949391e63d5237326eb16771ae48af0a2e881.)
Reason for revert:
Breaks fast/dom/Window LayoutTests

 http://build.chromium.org/p/chromium.webkit/builders/WebKit%20Linux/builds/35621
 http://build.chromium.org/p/chromium.webkit/builders/WebKit%20Mac10.9/builds/10059

Original issue's description:
> Add IPC benchmarking API to Blink TestRunner
> 
> This add an window.testRunner API that sends do-nothing IPC message
> roundtrip. This API can be used to build IPC benchmark using
> JavaScript.
> 
> TEST=none (Will add blink-side LayoutTest once this is landed)
> BUG=402185
> R=darin@chromium.org, jam@chromim.org, jochen@chromium.org
>
> Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=290063

TBR=morrita@chromium.org, darin@chromium.org, jochen@chromium.org, jam@chromium.org
BUG=402185
NOTRY=true

Review URL: https://codereview.chromium.org/477343002

Cr-Commit-Position: refs/heads/master@{#290153}
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@290153 0039d316-1c4b-4281-b951-d872f2087c98
philipj
Remove unused bits of Internals
Review URL: https://codereview.chromium.org/471863002

git-svn-id: svn://svn.chromium.org/blink/trunk@180406 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
IDL: initialize union member variables (to null/zero)
Since we now use non-null to represent union member presence, either by
wrapping with Nullable<> or using the implicit null value (for pointers
and strings,) we must make sure the locals we pass to the implementation
are all properly initialized to null.

For strings and RefPtr<>/OwnPtr<>, this requires no special care due to
default constructors taking care of it. For RawPtr<> (when used in
practice, i.e. mostly in Oilpan builds) we need to initialize explicitly.

This fixes Oilpan crashes introduced by this CL:
  https://codereview.chromium.org/466323002/

Review URL: https://codereview.chromium.org/474323002

git-svn-id: svn://svn.chromium.org/blink/trunk@180405 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Simplify full-screen-test.js's runWithKeyDown()
Review URL: https://codereview.chromium.org/469203002

git-svn-id: svn://svn.chromium.org/blink/trunk@180373 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: update test expectations after r179905.
With the shutdown crashes involving InjectedScriptManager::CallbackData
having been addressed, remove some crash test expectations.

R=ager@chromium.org
BUG=398472
NOTRY=true

Review URL: https://codereview.chromium.org/478643002

git-svn-id: svn://svn.chromium.org/blink/trunk@180357 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Revert of Add lextab.pyc as an output of the cached_lex_yacc_tables action (patchset #1 of https://codereview.chromium.org/463063003/)
Reason for revert:
This CL added the assumption that Python will write the lextab.pyc file. If that's a wrong assumption, which seems to be the case in some situations, the result is that the cached_lex_yacc_tables target never becomes clean, which in turn means that all IDL files are recompiled on each build.

The problem fixed by this CL was cosmetic only, so is not worth the risk.

Original issue's description:
> Add lextab.pyc as an output of the cached_lex_yacc_tables action
> 
> The primary output is lextab.py, but since it is imported, Python also
> writes lextab.pyc. Listing it too as an output means it won't be left
> around by "ninja -t clean" (and not much else, I think.)
> 
> Prior to the patch
>   https://codereview.chromium.org/425953002/
> the result of not having lextab.pyc listed as an output and running
> "ninja -t clean" was a tree that would build correctly, but that would
> always rerun all the IDL code generation scripts, and thus never become
> "clean".
> 
> BUG=397909
> 
> Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=180142

TBR=haraken@chromium.org,nbarth@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=397909

Review URL: https://codereview.chromium.org/468743003

git-svn-id: svn://svn.chromium.org/blink/trunk@180329 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jiangj
Fix Mac sandbox meta data access (reland)
We currently allow all metadata access due to
https://codereview.chromium.org/10539009/ made the for loop comparison
in Sandbox::AllowMetadataForPath() always false, when we actually only
want to allow access to the path and all its parent path until root.

Turn the for loop to a do/while loop instead as it's a better fit, also
add a test case for Sandbox::AllowMetadataForPath().

We also need file read meta data access to all the .dylibs we linked to.

It should only affect component builds on OS X 10.6 and utility process
as no other process is using this mechanism.

BUG=403801

Review URL: https://codereview.chromium.org/469383002

Cr-Commit-Position: refs/heads/master@{#289738}
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@289738 0039d316-1c4b-4281-b951-d872f2087c98
jl
IDL: Use IdlArrayOrSequenceType for array/sequence IDL types
Representing array and sequence types this way, rather than via auxiliary
flags on the member type, means exotic types like array-of-arrays,
array-of-sequences, arrays-of-nullables and similar can be supported.

More importantly, this also means that an array or sequence type can't be
mistaken for its member type if you forget to check the "is array" and
"is sequence" flags, and thus lets us remove a bunch of "is this an array
or sequence type" checks from code that has nothing to do with supporting
arrays or sequences.

This patch doesn't change code generation.

Review URL: https://codereview.chromium.org/470063003

git-svn-id: svn://svn.chromium.org/blink/trunk@180298 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
IDL: Clean-up "should use Nullable<>" logic a little
Some duplication had sneaked in as part of the IDL dictionary work, with
IdlTypeBase.impl_should_use_nullable_container meaning almost the same
thing as IdlTypeBase.is_explicit_nullable, except the latter also implies
that the type is nullable.

Common up the actual logic in the new IdlTypeBase.cpp_type_has_null_value
property, and use it for both impl_should_use_nullable_container and
is_{implicit,explicit}_nullable.

Review URL: https://codereview.chromium.org/472803002

git-svn-id: svn://svn.chromium.org/blink/trunk@180287 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
IDL: Prefer to extend IdlTypeBase instead of IdlType
In v8_types.py and elsewhere, we extend the classes defined in idl_types.py
by adding properties or methods. Usually, these properties or methods are
supposed to be available on all type objects. Since all type objects now
have a common base class, IdlTypeBase, prefer to set new properties and
methods on it instead of on IdlType.

This doesn't change CG, and is done to simplify the process of adding new
IdlTypeBase sub-classes in the future.

Review URL: https://codereview.chromium.org/469243002

git-svn-id: svn://svn.chromium.org/blink/trunk@180276 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Gracefully handle property enumeration over deleted plugins.
R=haraken
BUG=397473

Review URL: https://codereview.chromium.org/476663002

git-svn-id: svn://svn.chromium.org/blink/trunk@180274 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Sync fullscreen element removal with the spec
http://fullscreen.spec.whatwg.org/#model
https://www.w3.org/Bugs/Public/show_bug.cgi?id=26326

TEST=LayoutTests/fullscreen/model/remove-*.html (new)
TEST=LayoutTests/fullscreen/full-screen-remove-*.html (no regression)

The distinction between fullyExitFullscreen() and exitFullscreen() was
not tested, but the new remove-last.html test fails with the old code.

BUG=383813

Review URL: https://codereview.chromium.org/476433002

git-svn-id: svn://svn.chromium.org/blink/trunk@180259 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove early returns in fullscreen tests
These checks make the tests longer and don't seem particularly useful.

Review URL: https://codereview.chromium.org/462253003

git-svn-id: svn://svn.chromium.org/blink/trunk@180256 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jiangj
Fix Mac sandbox meta data access
Sandbox::AllowMetadataForPath() currently allow all metadata access due to
https://codereview.chromium.org/10539009/ made the for loop comparison
in Sandbox::AllowMetadataForPath() always false, when we actually only
want to allow access to the path and all its parent path until root.

Turn the for loop to a do/while loop instead as it's a better fit, also
add a test case for Sandbox::AllowMetadataForPath().

It should only affect component builds on OS X 10.6 and utility process
as no other process is using this mechanism.

Review URL: https://codereview.chromium.org/472513002

Cr-Commit-Position: refs/heads/master@{#289526}
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@289526 0039d316-1c4b-4281-b951-d872f2087c98
philipj
Tweak the documentation of "fullscreen element ready check"
Use |element| for the variable (italic in spec) and add missing word:
https://www.w3.org/Bugs/Public/show_bug.cgi?id=26580

NOTRY=true

Review URL: https://codereview.chromium.org/473803002

git-svn-id: svn://svn.chromium.org/blink/trunk@180249 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove the fullscreen element stack exemption for webkitRequestFullScreen()
This exemption allowed the fullscreen element stack to get into a state
not otherwise possible, namely with elements in any order as opposed to
in tree order. It also seemed possible to enter fullscreen in a sibling
iframe, leading to a (cross-document) set of fullscreen elements forming
a tree instead of a simple chain, a case without any test coverage.

Removing the exemption means that a webkitfullscreenerror event will be
fired if one is already in fullscreen and requests fullscreen for an
element other than a descendant of the current fullscreen element.

The use counter was intended to tell whether any content depends on this
or not, but data will not be available for a long time yet. In order to
be affected one needs to, in fullscreen, have a currently visible button
request fullscreen for an element currently not visible, which seems
far-fetched, so site compat is probably not a problem.

The use counter for webkitRequestFullScreen() provides an upper bound:
http://www.chromestatus.com/metrics/feature/timeline/popularity/177

BUG=383813

Review URL: https://codereview.chromium.org/458223003

git-svn-id: svn://svn.chromium.org/blink/trunk@180243 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r180238
R=haraken
BUG=
NOTRY=true

Review URL: https://codereview.chromium.org/471823002

git-svn-id: svn://svn.chromium.org/blink/trunk@180242 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove the needsSiteSpecificQuirks setting
It does nothing as of Blink r178756:
https://codereview.chromium.org/414443006

It's never set as of Chromium r289294:
https://codereview.chromium.org/449393002

BUG=401887

Review URL: https://codereview.chromium.org/453813003

git-svn-id: svn://svn.chromium.org/blink/trunk@180193 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ljagielski
Getting rid of net::LOAD_ENABLE_LOAD_CONTENT.
There are too many load flags. This one is only used by loader code.

BUG=

Review URL: https://codereview.chromium.org/451623002

Cr-Commit-Position: refs/heads/master@{#289318}
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@289318 0039d316-1c4b-4281-b951-d872f2087c98
philipj
Stop using the needsSiteSpecificQuirks setting
It does nothing as of Blink r178756:
https://codereview.chromium.org/414443006

BUG=401887

Review URL: https://codereview.chromium.org/449393002

Cr-Commit-Position: refs/heads/master@{#289294}
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@289294 0039d316-1c4b-4281-b951-d872f2087c98
sigbjornf
Use a precise target type for Beacon requests.
To allow the embedder to distinguish POST requests emanating from
sendBeacon() from those from a <a ping>, assign a more precise target
type to the former.

This is done in preparation for adding Beacon-Age: headers to Beacon
requests.

R=mkwst@chromium.org
BUG=398167

Review URL: https://codereview.chromium.org/468853002

git-svn-id: svn://svn.chromium.org/blink/trunk@180179 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
make it possible to disable the use of libpci on linux again
When CL 430573002 landed, it forced the use of libpci on linux, but
many embedded systems lack this library (and probably lack a pci bus
altogether). Let's add a new config variable to make it possible to
disable the use of libpci.

BUG=398416

Review URL: https://codereview.chromium.org/462433002

Cr-Commit-Position: refs/heads/master@{#289262}
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@289262 0039d316-1c4b-4281-b951-d872f2087c98
msimonides
Don't increment lazy keep alive count on redirects.
The ChromeExtensionNetworkDelegate::OnBeforeURLRequest is called for new
requests as well as for redirects. This results in the lazy keep alive
count in extensions to be incremented several times if there is a redirect
but then it is decremented only ones when the request finishes. In consequence
the lazy extension page never shuts down because the count never reaches
zero.

With this commit requests that have been redirected at least once are
ignored when incrementing the keep alive count.

BUG=175279

Review URL: https://codereview.chromium.org/464933002

Cr-Commit-Position: refs/heads/master@{#289260}
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@289260 0039d316-1c4b-4281-b951-d872f2087c98
philipj
Extract "fullscreen element ready check" from requestFullscreen()
http://fullscreen.spec.whatwg.org/#fullscreen-element-ready-check

This is a change in behavior for what was previously "a descendant
browsing context's document has a non-empty fullscreen element stack,"
now "element has no ancestor element whose local name is iframe and
namespace is the HTML namespace."

It's now never possible to go fullscreen with a descendant of an iframe,
whereas previously it would be possible as long as that iframe's
document had an empty fullscreen element stack.

Since the difference is very unlikely to affect any real content, the
LegacyFullScreenErrorExemption was dropped for this case. There was
apparently no test coverage for that exemption.

BUG=402376

Review URL: https://codereview.chromium.org/462103002

git-svn-id: svn://svn.chromium.org/blink/trunk@180162 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Rename parameter providedleastNumMandatoryParams => provided
The name is probably a copy/paste typo originally; the expression used
for the |expected| parameter's value in code_generator_v8.pm originally
was $leastNumMandatoryParams, and this identifier somehow ended up
concatenated to the |provided| parameter's name on the C++ side.

Since then, the strange name has spread a bit, and had been "fixed" into
|providedLeastNumMandatoryParams| in some places along the way.

BUG=

Review URL: https://codereview.chromium.org/466283002

git-svn-id: svn://svn.chromium.org/blink/trunk@180154 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: trace part objects as per the GC plugin's wishes.
Following https://src.chromium.org/viewvc/chrome?view=rev&revision=287310,
the Blink clang plugin insists that part objects are to be traced
via Visitor's fallback method

  template<typename T>void trace(const T& t);

Fix up some uses that were not.

R=haraken
BUG=340522
NOTRY=true

Review URL: https://codereview.chromium.org/471463002

git-svn-id: svn://svn.chromium.org/blink/trunk@180152 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix (release) builds after r180088.
R=haraken
BUG=340522
NOTRY=true

Review URL: https://codereview.chromium.org/469713002

git-svn-id: svn://svn.chromium.org/blink/trunk@180149 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: make r180096's FIXME comment accurate.
The underlying cause described in r180096 wasn't correct; update the
FIXME comment to make it more accurate.

R=haraken
BUG=
NOTRY=true

Review URL: https://codereview.chromium.org/461373002

git-svn-id: svn://svn.chromium.org/blink/trunk@180147 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Add lextab.pyc as an output of the cached_lex_yacc_tables action
The primary output is lextab.py, but since it is imported, Python also
writes lextab.pyc. Listing it too as an output means it won't be left
around by "ninja -t clean" (and not much else, I think.)

Prior to the patch
  https://codereview.chromium.org/425953002/
the result of not having lextab.pyc listed as an output and running
"ninja -t clean" was a tree that would build correctly, but that would
always rerun all the IDL code generation scripts, and thus never become
"clean".

BUG=397909

Review URL: https://codereview.chromium.org/463063003

git-svn-id: svn://svn.chromium.org/blink/trunk@180142 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
avoid >> ambiguity in gin test
Followup from https://codereview.chromium.org/419673004

BUG=397554

Review URL: https://codereview.chromium.org/460583002

Cr-Commit-Position: refs/heads/master@{#289129}
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@289129 0039d316-1c4b-4281-b951-d872f2087c98
sigbjornf
Handle empty title attribute tooltips.
The spec tells us that if an element has a title attribute, its value
should be returned as its tooltip/advisory information:

  http://www.whatwg.org/specs/web-apps/current-work/#the-title-attribute

Align with how other browsers behave for <foo title> and return the
empty string rather than consult the parent element.

R=
BUG=399255

Review URL: https://codereview.chromium.org/462073003

git-svn-id: svn://svn.chromium.org/blink/trunk@180109 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
Use ARRAYSIZE_UNSAFE when using types defined in a function
Small followup from https://codereview.chromium.org/423333002

This allows the test to compile on a greater range of toolchains (some
of which break when using types defined in a function with arraysize).

Review URL: https://codereview.chromium.org/456403002

Cr-Commit-Position: refs/heads/master@{#289051}
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@289051 0039d316-1c4b-4281-b951-d872f2087c98
sigbjornf
Oilpan: fix build after r180084.
Address type conversion subtlety over RawPtr<>s. We have at hand:

 Handle<Value> toV8(PassRefPtrWillBeRawPtr<NodeList>, ...);

 template<NodeType>class StaticNodeTypeList : public NodeList {
   public:
       static PassRefPtrWillBeRawPtr<StaticNodeTypeList> adopt(..);
       ...
   }

 typedef StaticNodeTypeList<Element> StaticElementList;

and the call

 toV8(StaticElementList::adopt(namedItems), ....);

For the toV8() call to be successfully resolved, the adopt() result
must be convertible to PassRefPtrWillBeRawPtr<NodeList>. For the non-Oilpan
case, we do have the

   PassRefPtr(const PassRefPtr<U>, EnsurePtrConvertibleArgDecl(U, T))

constructor at hand, which will convert the PassRefPtr<StaticElementList>
into PassRefPtr<NodeList>. We do not have the corresponding type-convertible
constructor over RawPtr<>, as providing that runs into problems when
using RawPtr<> as part of the PassOwnPtrWillBeRawPtr transition type.

Address/step-around-the-issue by being explicit about the conversion.

TBR=haraken,oilpan-reviews
BUG=
NOTRY=true

Review URL: https://codereview.chromium.org/451303003

git-svn-id: svn://svn.chromium.org/blink/trunk@180096 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
include <limits> for std::numeric_limits
CL 435583003 adds usage of std::numeric_limits without including the
required header "limits" header.  Let's fix that.

BUG=398712
NOTRY=true

Review URL: https://codereview.chromium.org/454413002

Cr-Commit-Position: refs/heads/master@{#288986}
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@288986 0039d316-1c4b-4281-b951-d872f2087c98
sigbjornf
Oilpan: fix build after r180052.
R=haraken
BUG=383813

Review URL: https://codereview.chromium.org/463633004

git-svn-id: svn://svn.chromium.org/blink/trunk@180070 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r180052.
TBR=haraken,oilpan-reviews
BUG=383813
NOTRY=true

Review URL: https://codereview.chromium.org/460983002

git-svn-id: svn://svn.chromium.org/blink/trunk@180061 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Implement the unprefixed the Fullscreen API
Intent to Implement and Ship:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/GLl6aWs9-EM/uTqxEmM4iGcJ

The API is only enabled for testing, to allow the recent spec changes
to be implemented with tests for the new API: http://crbug.com/402376

This does not add support for the :fullscreen pseudo-class, which is
tracked by a dedicate issue: http://crbug.com/402378

BUG=383813

Review URL: https://codereview.chromium.org/395633011

git-svn-id: svn://svn.chromium.org/blink/trunk@180052 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Convert more fullscreen tests to reftests
This removes ~242 KB of *-expected.png and leaves only a few
platform-specific expectations left in
LayoutTests/platform/linux/virtual/android/fullscreen/

Some tests were simultaneously pixel tests and text tests, which is
not great for a reftest. To avoid having the (formated) log output in
*-expected.html, instead make those tests time out if any check fails.

Review URL: https://codereview.chromium.org/457663002

git-svn-id: svn://svn.chromium.org/blink/trunk@180036 bbb929c8-8fbe-4397-9dbb-9b2b20218538
henriks
Check HTMLMediaElement::supportsType() in MediaSource.isTypeSupported()
MediaSource.isTypeSupported() should not return true without making sure
that the HTMLMediaElement supports the content type as well.

BUG=402386
R=acolwell@chromium.org

Review URL: https://codereview.chromium.org/456313003

git-svn-id: svn://svn.chromium.org/blink/trunk@180035 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Invalidation tests for :host-context.
We did not have any test coverage on :host-context and targeted style
recalc. Added a few tests.

R=chrishtr@chromium.org,esprehn@chromium.org

Review URL: https://codereview.chromium.org/458943002

git-svn-id: svn://svn.chromium.org/blink/trunk@179999 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
IDL parser: clean up cached lexer table updating code
Follow-up to
  https://codereview.chromium.org/425953002/
addressing some late comments.

BUG=397909

Review URL: https://codereview.chromium.org/462613004

git-svn-id: svn://svn.chromium.org/blink/trunk@179971 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: remove unnecessary TextTrackList finalization.
R=haraken@chromium.org
BUG=

Review URL: https://codereview.chromium.org/462653002

git-svn-id: svn://svn.chromium.org/blink/trunk@179954 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Remove custom getters for File.lastModified{Date}
No particular need for these to be custom, so turned into File accessors
instead.

Also drop a runtime feature check for FileConstructor; it is now stable.

R=haraken
BUG=

Review URL: https://codereview.chromium.org/458953002

git-svn-id: svn://svn.chromium.org/blink/trunk@179944 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r179934.
TBR=haraken,oilpan-reviews
BUG=
NOTRY=true

Review URL: https://codereview.chromium.org/463433002

git-svn-id: svn://svn.chromium.org/blink/trunk@179935 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Avoid preloader-induced test flakiness.
If a preload request for <img> preload fails, the request will be retried
on parsing the element as per normal. This might result in more than
one request for the same resource, and consequently more than one console
error message might be output.

For img-crossorigin-no-credentials-prompt.html, avoid having the preloader
kick in by not relying on an external script.

R=
BUG=239918

Review URL: https://codereview.chromium.org/461563002

git-svn-id: svn://svn.chromium.org/blink/trunk@179918 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Invert the pass condition of fullscreen/full-screen-render-inline-expected.html
The bug hasn't been fixed, but now any unrelated change to the test
result will result in a failure, instead of being silently ignored.

BUG=246077

Review URL: https://codereview.chromium.org/456743002

git-svn-id: svn://svn.chromium.org/blink/trunk@179914 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove flaky expectations for parent-flow-inline-with-block-child.html
It's been green since it was converted to a reftest in r179707:
https://codereview.chromium.org/451483004
http://test-results.appspot.com/dashboards/flakiness_dashboard.html#tests=parent-flow-inline-with-block-child.html

BUG=331576

Review URL: https://codereview.chromium.org/455803002

git-svn-id: svn://svn.chromium.org/blink/trunk@179912 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r179903.
TBR=haraken,oilpan-reviews
BUG=396400
NOTRY=true

Review URL: https://codereview.chromium.org/458053004

git-svn-id: svn://svn.chromium.org/blink/trunk@179907 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Remove left-overs from -webkit-marquee-speed removal.
The slow, normal, and fast keywords, and the seconds unit, are not used by
the presentational style for the marquee element.

R=jchaffraix@chromium.org

Review URL: https://codereview.chromium.org/457633002

git-svn-id: svn://svn.chromium.org/blink/trunk@179896 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: Move ConsoleMessage to the heap.
And fix compilation breakage from r179850.

TBR=haraken,oilpan-reviews
BUG=340522
NOTRY=true

Review URL: https://codereview.chromium.org/451153002

git-svn-id: svn://svn.chromium.org/blink/trunk@179873 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r179871
TBR=haraken,oilpan-reviews
BUG=399178
NOTRY=true

Review URL: https://codereview.chromium.org/453713004

git-svn-id: svn://svn.chromium.org/blink/trunk@179872 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Test <img crossorigin> handling of 401 responses.
A CORS-enabled fetch to a resource that isn't CORS enabled, but returns a
401 should fail without offering up a UA dialog to supply credentials.

Blink already implements this; add test coverage over <img>.

R=
BUG=239918

Review URL: https://codereview.chromium.org/450263002

git-svn-id: svn://svn.chromium.org/blink/trunk@179834 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Add jl@opera.com to Source/bindings/OWNERS
R=haraken
NOTRY=true

Review URL: https://codereview.chromium.org/456773002

git-svn-id: svn://svn.chromium.org/blink/trunk@179832 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Update OilpanExpectations after r179695
fetch-event.html no longer needs an exception.

TBR=haraken,oilpan-reviews
BUG=400645
NOTRY=true

Review URL: https://codereview.chromium.org/454583004

git-svn-id: svn://svn.chromium.org/blink/trunk@179825 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ed
[SVG2] Harmonize the IDLs of SVGStyleElement and HTMLStyleElement.
Add "readonly attribute StyleSheet sheet" to SVGStyleElement's IDL.

Spec:
https://svgwg.org/svg2-draft/styling.html#InterfaceSVGStyleElement

BUG=399271

Review URL: https://codereview.chromium.org/451663003

git-svn-id: svn://svn.chromium.org/blink/trunk@179819 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ed
[SVG2] Svg elements that overflow the viewport should also be hittested.
When we have an svg that doesn't clip to its viewport (aka
overflow:visible), and there is some overflowing content, we
need to consider the overflowing elements when hit testing.
Otherwise it becomes impossible to interact with svg
elements outside the viewport rect.

BUG=401443

Review URL: https://codereview.chromium.org/444223005

git-svn-id: svn://svn.chromium.org/blink/trunk@179806 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Move Web-facing fullscreen APIs to DocumentFullscreen and ElementFullscreen
This is closer to the partial interfaces of the spec:
http://fullscreen.spec.whatwg.org/#api

As a side-effect, the prefixed functions are now only used for bindings,
forcing internal clients to pick a request type more explicitly.

BUG=383813

Review URL: https://codereview.chromium.org/449133003

git-svn-id: svn://svn.chromium.org/blink/trunk@179805 bbb929c8-8fbe-4397-9dbb-9b2b20218538
kolczyk
Make it possible to have <object>'s scriptableObject as a v8 object instead of NPObject.
It is well-known that Chromium is gradually deprecating NPAPI
with the goal of removing it completely by the end of 2014.
This is said to include NPObject class as well.

However, currently, for blink::WebPlugin implementators
(for <object> tag), it is only possible to return the corresponding
scriptable object (to back properties of the <object> tag
as visible from JavaScript) as an NPObject*.

This CL introduces the possibility to provide the plain v8 object,
instead. This lets the embedder to provide scripting facilities
for plugins (or whatever else provides <object> tags)
using v8 api or modern means like gin.

On top of it, the compatibility with current NPObject-based
features like nsplugins is kept
which simply can be removed once NPAPI is fully deprecated.


BUG=351636

Review URL: https://codereview.chromium.org/230813002

git-svn-id: svn://svn.chromium.org/blink/trunk@179794 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Rename FullscreenElementStack::requestFullScreenForElement to requestFullscreen
It's unambigious without the suffix, and now matches the spec:
http://fullscreen.spec.whatwg.org/#dom-element-requestfullscreen

If there ever was any disambiguity about document fullscreen vs.
element fullscreen, there isn't any longer, at least not here.

BUG=383813

Review URL: https://codereview.chromium.org/444033003

git-svn-id: svn://svn.chromium.org/blink/trunk@179787 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove WebMediaPlayerClient::preload() and volume()
They are unused as of Chromium r288080.

The WebMediaPlayerClientImpl::m_preload member became unused, so remove
it. This makes WebMediaPlayerClientImpl::setPreload look fragile, and
it's possible that there are existing bugs where the preload state is
not propagated correctly. However, HTMLMediaElement should eventually
call WebMediaPlayer::setPreload() directly, so the removed code will be
of no use.

BUG=401415

Review URL: https://codereview.chromium.org/455453002

git-svn-id: svn://svn.chromium.org/blink/trunk@179773 bbb929c8-8fbe-4397-9dbb-9b2b20218538
andersr
Remove custom style building for -webkit-font-feature-settings.
This patch replaces the custom style application for
-webkit-font-feature-settings with a function in StyleBuilderConverter.

Also:

 * Less use of CSSValue in FontBuilder.
 * We now handle 'initial' and 'inherit'.
 * Eliminates FontDescription::makeNormalFeatureSettings.

Note that in StyleBuilderConverter::convertFontFeatureSettings, the check
for isFontFeatureValue() is removed. Asserting (via toCSSFontFeatureValue)
should be enough, since the parser will only add CSSFontFeatureValues to the
list.

Review URL: https://codereview.chromium.org/444333005

git-svn-id: svn://svn.chromium.org/blink/trunk@179764 bbb929c8-8fbe-4397-9dbb-9b2b20218538
andersr
Make style building for font-weight less custom.
This patch lets the StyleBuilderConverter produce the final values
for CSSValueBolder and CSSValueLighter, instead of first setting the
weight on FontBuilder, and then setting the weight again.

This is more in line with how the rest of the style building works.

Review URL: https://codereview.chromium.org/444413003

git-svn-id: svn://svn.chromium.org/blink/trunk@179755 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Let the effective media volume be 0 if the media element is muted
The bug was with a muted media element slaved to an unmuted media
controller, in which case the media element's muted state was ignored.

Attaching a media controller to an already-playing media element also
wouldn't update the volume, so do that in bringElementUpToSpeed().

BUG=399623

Review URL: https://codereview.chromium.org/444173002

git-svn-id: svn://svn.chromium.org/blink/trunk@179738 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ed
Add support for additional blend modes to SVGFEBlendElement
New modes to be supported are:

  overlay,
  color-dodge,
  color-burn,
  hard-light,
  soft-light,
  difference,
  exclusion,
  hue,
  saturation,
  color and
  luminosity

Since the new modes don't have any corresponding IDL constants exposed
on the SVGFEBlendElement interface, a mechanism is added to be able to
differentiate between "internal" and "exposed" enumeration values, and
reject those that are "internal-only" from being read or written
through SVGAnimatedEnumeration.

Test feBlend-all-modes.html evolved from test in WebKit commit
http://trac.webkit.org/changeset/170433 by Dirk Schulze.

BUG=389594

Review URL: https://codereview.chromium.org/447193002

git-svn-id: svn://svn.chromium.org/blink/trunk@179732 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Stop using WebMediaPlayerClient::preload() and volume()
There is a "FIXME: Remove once calls on the Chromium-side have been
removed" for volume() in WebMediaPlayerClient.h. preload() is
similarly strange layering-wise, so get rid of that as well.

Simply store the values when they cannot immediately be forwarded to
the internal object.

In the case of WebMediaPlayerImpl::setVolume(), the value can always
be used immediately, so the setVolume() in DoLoad() appears to simply
have been unnecessary.

BUG=401415

Review URL: https://codereview.chromium.org/443393002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@288080 0039d316-1c4b-4281-b951-d872f2087c98
philipj
Convert fullscreen pixel tests to reftests
Review URL: https://codereview.chromium.org/451483004

git-svn-id: svn://svn.chromium.org/blink/trunk@179707 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Clean up testing.internals argument type checking.
Make use of [TypeChecking=Interface] where possible, fixing null pointer
deref over internals.addTextMatchMarker in the process.

R=haraken@chromium.org
BUG=375712

Review URL: https://codereview.chromium.org/445933003

git-svn-id: svn://svn.chromium.org/blink/trunk@179706 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ed
[SVG2] Make transform, gradientTransform and patternTransform presentation attributes.
Spec:
http://www.w3.org/TR/css3-transforms/#svg-transform
http://www.w3.org/TR/css3-transforms/#svg-syntax
http://www.w3.org/TR/css3-transforms/#svg-gradient-transform-pattern-transform

BUG=369942

Review URL: https://codereview.chromium.org/423093014

git-svn-id: svn://svn.chromium.org/blink/trunk@179702 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
don't pretend to support dbus on windows in dbus_export.h
Since dbus is only used on linux, don't bother with windows specific symbol exporting.

BUG=398644

Review URL: https://codereview.chromium.org/429043003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@288034 0039d316-1c4b-4281-b951-d872f2087c98
rune
Removed -webkit-marquee-increment leftovers.
Only html attribute lengths are now supported remove recognition of keywords
from the CSS property. Gets rid of the custom style builder function by
using generated length conversion method instead.

Review URL: https://codereview.chromium.org/444803002

git-svn-id: svn://svn.chromium.org/blink/trunk@179698 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Revert the UseCounter for HTMLPreElement.width
This was missing from the multipage spec because of a bug:
https://www.w3.org/Bugs/Public/show_bug.cgi?id=26475

There's no point in measuring usage as it's per spec.

Review URL: https://codereview.chromium.org/449643003

git-svn-id: svn://svn.chromium.org/blink/trunk@179696 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
fix libgio-2.0 deps in browser_ui
browser_desktop_root_window_host_x11.cc uses g_dbus_proxy_call which
is provided by libgio-2.0, so we should depend on the gio target too.

BUG=265560

Review URL: https://codereview.chromium.org/439613002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@287981 0039d316-1c4b-4281-b951-d872f2087c98
philipj
Make webkitCancelFullScreen() an alias of webkitExitFullscreen()
It appears to be an accident of history that webkitCancelFullScreen()
behaves differently from webkitExitFullscreen(), as it was implemented
before the concept of a fullscreen element stack.

In Gecko, mozCancelFullScreen() pops only one element from the stack.

In the spec, "fully exit fullscreen" is now reserved for user escape
and page navigation, so any other instances should be changed where
possible.

There was no test coverage for the distinction, and it's very unlikely
that Web content could meaningfully depend on it.

BUG=399556

Review URL: https://codereview.chromium.org/434903002

git-svn-id: svn://svn.chromium.org/blink/trunk@179656 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove a few unused resources from Opera <track> tests
Review URL: https://codereview.chromium.org/441383002

git-svn-id: svn://svn.chromium.org/blink/trunk@179652 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Work around GC bug to fix flaky autoplay tests
With these changes both tests appear to be reliable.

BUG=357080
BUG=400659

Review URL: https://codereview.chromium.org/441253003

git-svn-id: svn://svn.chromium.org/blink/trunk@179647 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove unused UseCounter features
These are the reviews in which the enum values became unused:

SVGInstanceRoot:
https://codereview.chromium.org/272523002

PromiseConstructor/PromiseCast/PromiseReject/PromiseResolve:
https://codereview.chromium.org/293933002

TextAutosizingLayout:
https://codereview.chromium.org/346603005

PrefixedElementRequestPointerLock/PrefixedDocumentExitPointerLock/PrefixedDocumentPointerLockElement:
https://codereview.chromium.org/437443005

PrefixedConvertPointFromPageToNode/PrefixedConvertPointFromNodeToPage:
https://codereview.chromium.org/428533003

MixedContentTextTrack:
https://codereview.chromium.org/348853009

Review URL: https://codereview.chromium.org/442323002

git-svn-id: svn://svn.chromium.org/blink/trunk@179627 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mboc
Initialize the global message center instance to NULL
BUG=Uninitialized global message center instance leads to trouble when
modifying gyps.

Review URL: https://codereview.chromium.org/444463007

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@287763 0039d316-1c4b-4281-b951-d872f2087c98
ed
Update histogram enums after UseCounter change.
BUG=399271

Review URL: https://codereview.chromium.org/442773002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@287759 0039d316-1c4b-4281-b951-d872f2087c98
philipj
Remove TestExpectations for some no-longer-flaky fullscreen tests
None of these appear to have any recent failures in the flakiness dashboard:
http://test-results.appspot.com/dashboards/flakiness_dashboard.html#tests=full-screen-remove-ancestor.html
http://test-results.appspot.com/dashboards/flakiness_dashboard.html#tests=full-screen-iframe-allowed.html

To verify, the affected tests were run with --iterations=1000 on Linux
Debug/Release and Mac Debug builds with no failures or timeouts.

BUG=100798
BUG=243782

Review URL: https://codereview.chromium.org/448463002

git-svn-id: svn://svn.chromium.org/blink/trunk@179592 bbb929c8-8fbe-4397-9dbb-9b2b20218538
andersr
Remove custom style building for font-variant-ligatures.
This patch uses a small, in-flight structure 'VariantLigatures' to
transfer the font-variant-ligatures data during style building.

This makes font style building less custom, and it removes some use of
CSSValue inside FontBuilder.

Review URL: https://codereview.chromium.org/447443003

git-svn-id: svn://svn.chromium.org/blink/trunk@179588 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Add min-width/max-width/min-height/max-height to the fullscreen UA style sheet
The spec has :fullscreen and obviously not :-webkit-full-screen, but
this is the closest thing we can do before unprefixing.

BUG=399543

Review URL: https://codereview.chromium.org/432323002

git-svn-id: svn://svn.chromium.org/blink/trunk@179580 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ed
Add a UseCounter for SVGStyleElement.title.
BUG=399271
NOTRY=true

Review URL: https://codereview.chromium.org/438173004

git-svn-id: svn://svn.chromium.org/blink/trunk@179575 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove WheelEvent.webkitDirectionInvertedFromDevice
Intent to Deprecate... and Remove:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/jQjCy5ynZ58/bpfowBXCsDMJ
https://groups.google.com/a/chromium.org/d/msg/blink-dev/jQjCy5ynZ58/TrNqY9VJ42MJ

BUG=400794

Review URL: https://codereview.chromium.org/440963002

git-svn-id: svn://svn.chromium.org/blink/trunk@179565 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Work around GC bug to fix a flaky AudioTrackList/VideoTrackList test
BUG=397324
BUG=400659

Review URL: https://codereview.chromium.org/440033003

git-svn-id: svn://svn.chromium.org/blink/trunk@179558 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove KeyboardEvent.altGraphKey
Added to WebKit in 2003:
http://trac.webkit.org/changeset/5402

But never standardized:
http://www.w3.org/TR/DOM-Level-3-Events/#interface-KeyboardEvent

It is always false for real events in Chromium. Synthetic events can be
created where it is true using initKeyboardEvent, which is also not per
spec.

Ad-hoc testing with document.createEvent('KeyboardEvent').altGraphKey
shows that this attribute is not supported in IE11, Firefox Nightly or
Opera 12.16, i.e. only WebKit ever added this.

All in all, it seems very unlikely that content could depend on this,
and thus the deprecation process is skipped.

BUG= 399451

Review URL: https://codereview.chromium.org/434683002

git-svn-id: svn://svn.chromium.org/blink/trunk@179545 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jiangj
Fix GMOCK warnings in AutofillExternalDelegateUnitTest
Review URL: https://codereview.chromium.org/445573002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@287598 0039d316-1c4b-4281-b951-d872f2087c98
rune
Hashless hex color quirk for color/background/border only.
According to the quirks mode spec[1], the hashless hex color quirk only
applies to a few properties including color, background-color (not from
short-hand), and various border-color properties.

This aligns the Blink implementation with Gecko and the spec.

The duplicated code and early break is there to avoid regressions in blink
performance tests (there were cases in the CSS and SVG directories that
detected regressions locally).

[1] http://quirks.spec.whatwg.org/#the-hashless-hex-color-quirk

BUG=391343

Review URL: https://codereview.chromium.org/373603004

git-svn-id: svn://svn.chromium.org/blink/trunk@179524 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Rename a prefixed fullscreen test to full-screen-* for consistency
This way, fullscreen-* can be used for the unprefixed API tests.

BUG=383813

Review URL: https://codereview.chromium.org/440673003

git-svn-id: svn://svn.chromium.org/blink/trunk@179511 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove the last remnant of <style scoped>
This code was added while <style scoped> was still supported:
http://trac.webkit.org/changeset/125955

The scoped attribute now does nothing anywhere else, so special behavior
for editing doesn't make sense.

TEST=LayoutTests/editing/execCommand/delete-selection-has-style.html

BUG=379096

Review URL: https://codereview.chromium.org/433663002

git-svn-id: svn://svn.chromium.org/blink/trunk@179498 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
leveldatabase.gyp cleanup
Followup for some style issues identified in https://codereview.chromium.org/432083003/

* move windows source files into the main list
  (and filter *_win.{cc,h} on non-windows platforms for all targets)
* remove exclusions of files that don't exist (*_android.cc & *_portable.cc)
* exclude header files corresponding to excluded .cc files

BUG=381456

Review URL: https://codereview.chromium.org/433203002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@287374 0039d316-1c4b-4281-b951-d872f2087c98
sigbjornf
Remove destructors from ScriptWrappable objects in modules/
R=haraken@chromium.org
BUG=340522

Review URL: https://codereview.chromium.org/367113005

git-svn-id: svn://svn.chromium.org/blink/trunk@179446 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
spelling-should-replace-second-word.html: update expected output.
http://codereview.chromium.org/424183004 changed the test runnner's
spell check client to post an spellcheck event with a different
casing -- FinishSpellCheckEvent (was: finishSpellCheckEvent.) Update
expected test output accordingly.

TBR=jochen@chromium.org,yosin@chromium.org
BUG=399847
NOTRY=true

Review URL: https://codereview.chromium.org/437563003

git-svn-id: svn://svn.chromium.org/blink/trunk@179445 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
webrtc deps in remoting should be inside a webrtc condition
If you try to build with enable_webrtc=0 and remoting=1, gyp will fail:
libjingle.gyp:libpeerconnection#target' when processing
remoting.gyp:remoting_host#target.  This happens because the
libpeerconnnection target is defined inside an enable_webrtc==1 condition.
Therefore, these dependencies in remoting.gyp should be too.

BUG=399413

Review URL: https://codereview.chromium.org/431163002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@287193 0039d316-1c4b-4281-b951-d872f2087c98
sigbjornf
Oilpan: fix build after r179341.
TBR=haraken@chromium.org,oilpan-reviews@chromium.org
BUG=370696
NOTRY=true

Review URL: https://codereview.chromium.org/435103002

git-svn-id: svn://svn.chromium.org/blink/trunk@179442 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r179422.
TBR=haraken@chromium.org,oilpan-reviews@chromium.org
BUG=392474
NOTRY=true

Review URL: https://codereview.chromium.org/434203002

git-svn-id: svn://svn.chromium.org/blink/trunk@179441 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Use exitFullscreen(), not fullyExitFullscreen(), in HTMLMediaElement
For both <video controls> and HTMLVideoElement.webkitExitFullscreen()
it makes more sense to only exit one level of fullscreen.

There was no test coverage for the distinction, and it's very unlikely
that Web content could meaningfully depend on this.

BUG=399556

Review URL: https://codereview.chromium.org/422023007

git-svn-id: svn://svn.chromium.org/blink/trunk@179440 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Fix use-after-free related to RenderFullScreen
BUG=357452

Review URL: https://codereview.chromium.org/414303006

git-svn-id: svn://svn.chromium.org/blink/trunk@179436 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
fix warning in third_party/leveldatabase/chromium_logger.h
Cast thread_id to uint64 to make sure the PRIu64 printf format works.
Otherwise gcc 4.8 gives an error like so:
warning: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 11 has type ‘long long unsigned int’ [-Wformat=]

Followup to https://codereview.chromium.org/416633002

BUG=381456

Review URL: https://codereview.chromium.org/432083003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@287094 0039d316-1c4b-4281-b951-d872f2087c98
philipj
Use the unprefixed Pointer Lock API
BUG=398457

Review URL: https://codereview.chromium.org/438693003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@287053 0039d316-1c4b-4281-b951-d872f2087c98
jiangj
Fix BookmarkNode MetaInfoMap copypasting for Mac
Bookmark node meta info APIs is exposed Chrome to the Bookmark
Manager extension for storing extra meta data for bookmarks.

This API is also used by
//components/enhanced_bookmarks/metadata_accessor.cc to
store/access extra meta data such as associated image URL for
a bookmark.

Without this patch the meta data stored along with the bookmark
will be lost when it has been cut/pasted.

The same functionality works perfectly fine on non-Mac platforms,
here we add the missing implementation for Mac.

BUG=399010

Review URL: https://codereview.chromium.org/428183004

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@287024 0039d316-1c4b-4281-b951-d872f2087c98
mostynb
fix locales for linux but desktop_linux=0
Fixup after https://codereview.chromium.org/146963007 for non desktop
linux.

Review URL: https://codereview.chromium.org/431993002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@287018 0039d316-1c4b-4281-b951-d872f2087c98
fs
Use explicit case-insensitive attribute-value matching in UA-stylesheets
With the "i" (case-insensitive) matching modifier introduced in
https://codereview.chromium.org/330043003/, it becomes possible to
refine the hits on the CaseInsensitiveAttrSelectorMatch use-counter
by applying the modifier to all rules in the UA-stylesheets which
perform an attribute-value match on one of the attributes that - due
to legacy reasons - should be matched case-insensitively.

Most of the modified rules involve the 'type' attribute on <input>
elements, but there are a few others as well ('dir' and 'align').

The goal of this is to be able to get rid of the legacy-induced case-
insensitive cases and leave the "i" flag as a mechanism to opt-in to
case-insensitive matching. See https://crbug.com/327060 for further info.

BUG=327060, 366563

Review URL: https://codereview.chromium.org/417353004

git-svn-id: svn://svn.chromium.org/blink/trunk@179401 bbb929c8-8fbe-4397-9dbb-9b2b20218538
andersr
Add StyleBuilderConverter::convertFlags.
This gets rid of the special style building for text-decoration(-line)
and touch-action properties.

Review URL: https://codereview.chromium.org/424683004

git-svn-id: svn://svn.chromium.org/blink/trunk@179388 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove unused WebSettings getters
Review URL: https://codereview.chromium.org/434873002

git-svn-id: svn://svn.chromium.org/blink/trunk@179387 bbb929c8-8fbe-4397-9dbb-9b2b20218538
andersr
Remove value packing and custom style building for text-underline-position.
The user of this property (currently only computeUnderlineOffset) is
oblivious to the fact that RenderStyle::textUnderlinePosition may be a
packed value. (It looks like we'll ASSERT_NOT_REACHED if we actually pack
values during style building).

This was probably done in anticipation of the currently missing left|right
values defined by CSS3 Text Decoration.

I suggest that we remove the custom behavior until support for the
properties are added. When/if support for left|right is added, it should
probably go through StyleBuilderConverter anyway.

Review URL: https://codereview.chromium.org/436563002

git-svn-id: svn://svn.chromium.org/blink/trunk@179384 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Add support for case-insensitive attribute value selectors
Selectors Level 4 adds the syntax '*[foo="bar" i]' for making an attribute
value selector case-insensitive. Add support for that.

Does not alter the actual case-sensitivity match - i.e. matching is
performed using Unicode case-insensitivity rather than ASCII which
the spec expects.

Based on patch by <jl@opera.com>.

BUG=366563

Review URL: https://codereview.chromium.org/330043003

git-svn-id: svn://svn.chromium.org/blink/trunk@179370 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Add a UseCounter for the composite attribute on <img>
This was added for Apple's Dashboard in 2004:
http://trac.webkit.org/changeset/6491

Hopefully it's not used on the Web and can be removed.

Remove the FIXME as it certainly shouldn't be expanded.

Review URL: https://codereview.chromium.org/438623002

git-svn-id: svn://svn.chromium.org/blink/trunk@179326 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Add a UseCounter for <body bgproperties=fixed>
This is a survivor of the first browser wars, implemented by Internet
Explorer but not Netscape. It was never standardized, so measure usage
to figure out the best path forward.

For the archaeologist:
http://lists.w3.org/Archives/Public/www-talk/1996JulAug/0177.html
http://lists.w3.org/Archives/Public/www-talk/1997SepOct/0008.html
http://lists.w3.org/Archives/Public/www-html/1998Oct/0016.html
https://bugzilla.mozilla.org/show_bug.cgi?id=7474
https://projects.kde.org/projects/kde/kdelibs/repository/revisions/34867245

Review URL: https://codereview.chromium.org/428363002

git-svn-id: svn://svn.chromium.org/blink/trunk@179314 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Add UseCounters for non-standard UIEvent IDL attributes
R=rbyers@chromium.org

Review URL: https://codereview.chromium.org/425263007

git-svn-id: svn://svn.chromium.org/blink/trunk@179298 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Revert of Add UseCounters for non-standard, internally unused reflected attributes (https://codereview.chromium.org/428893002/)
Reason for revert:
These IDL attributes are actually in the HTML spec:
http://www.whatwg.org/specs/web-apps/current-work/#obsolete

Original issue's description:
> Add UseCounters for non-standard, internally unused reflected attributes
> 
> http://whatwg.org/html#htmlhtmlelement
> http://whatwg.org/html#htmlmetaelement
> http://whatwg.org/html#htmlobjectelement
> http://whatwg.org/html#htmltablecellelement
> 
> None of these attributes are used internally, so the only way sites
> can depend on them is via these bindings.
> 
> Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=179140

TBR=jochen@chromium.org
NOTRY=true

Review URL: https://codereview.chromium.org/427353002

git-svn-id: svn://svn.chromium.org/blink/trunk@179256 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Add UseCounters for non-standard MouseEvent IDL attributes
Review URL: https://codereview.chromium.org/431653003

git-svn-id: svn://svn.chromium.org/blink/trunk@179247 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
dbus: don't add attributes in extern template class specialization
This previous CL added attributes to some template specializations:
https://codereview.chromium.org/408143012

This breaks gcc 4.8, which gives the following warning:
  ../../dbus/property.h:412:62: error: type attributes ignored after type is already defined [-Werror=attributes]

Since the template class already has the attribute, I suspect that the
additional attribute specifications are redundant.  ie I think we can
remove them.

Review URL: https://codereview.chromium.org/423233003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@286567 0039d316-1c4b-4281-b951-d872f2087c98
philipj
Reland "Remove WheelEvent.initWebKitWheelEvent()"
Intent to Deprecate and Remove:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/h_GoezQ4MQ4/Q5abFkhA76sJ

The failing test in Chromium has been fixed.

BUG=398422, 398738

Review URL: https://codereview.chromium.org/426123004

git-svn-id: svn://svn.chromium.org/blink/trunk@179230 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove HTMLOptionsCollection.remove(element)
Intent to Deprecate and Remove:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/Iyc84XnZl8w/JiOO3znf-L4J

BUG=398627

Review URL: https://codereview.chromium.org/426513002

git-svn-id: svn://svn.chromium.org/blink/trunk@179219 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove SVGFEMorphologyElement.setRadius(radiusX, radiusY)
Intent to Deprecate and Remove:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/cQWSsX1jHMQ/h-sAaqRqnbUJ

BUG=398791

Review URL: https://codereview.chromium.org/421823002

git-svn-id: svn://svn.chromium.org/blink/trunk@179216 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
use a gcc version check in 4.9 warning workaround
Only disable the spurious warning on versions of GCC that
need it, so we don't hide real warnings or break older
compilers unnecessarily.

Followup from https://codereview.chromium.org/384843002/

BUG=392872

Review URL: https://codereview.chromium.org/413023002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@286347 0039d316-1c4b-4281-b951-d872f2087c98
philipj
Remove WheelEvent.initWebKitWheelEvent()
Intent to Deprecate and Remove:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/h_GoezQ4MQ4/Q5abFkhA76sJ

BUG=398422

Review URL: https://codereview.chromium.org/425633002

git-svn-id: svn://svn.chromium.org/blink/trunk@179183 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove unused HTML attribute names
Review URL: https://codereview.chromium.org/426873003

git-svn-id: svn://svn.chromium.org/blink/trunk@179149 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Deprecate the hspace/vspace attributes on table
Intent to Deprecate:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/l3rZbX-BUaM/3iSlHsjmW0wJ

BUG=277080
R=jochen@chromium.org

Review URL: https://codereview.chromium.org/421263002

git-svn-id: svn://svn.chromium.org/blink/trunk@179142 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Add UseCounters for non-standard, internally unused reflected attributes
http://whatwg.org/html#htmlhtmlelement
http://whatwg.org/html#htmlmetaelement
http://whatwg.org/html#htmlobjectelement
http://whatwg.org/html#htmltablecellelement

None of these attributes are used internally, so the only way sites
can depend on them is via these bindings.

Review URL: https://codereview.chromium.org/428893002

git-svn-id: svn://svn.chromium.org/blink/trunk@179140 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove webkitConvertPointFromPageToNode() and webkitConvertPointFromNodeToPage()
Intent to Deprecate and Remove:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/KS5GAM7JXtg/7KyhsqQFZMkJ

BUG=398352

Review URL: https://codereview.chromium.org/428533003

git-svn-id: svn://svn.chromium.org/blink/trunk@179135 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove Element.scrollByLines() and Element.scrollByPages()
Intent to Deprecate and Remove:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/KYJoVzmi_tw/OsTpm27Ty9YJ

BUG=398356

Review URL: https://codereview.chromium.org/416403013

git-svn-id: svn://svn.chromium.org/blink/trunk@179134 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove HTMLPreElement.wrap IDL attribute
Intent to Deprecate and Remove:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/XiDb0IKd2rw/Bb8IPddHejMJ

BUG=398353

Review URL: https://codereview.chromium.org/427533003

git-svn-id: svn://svn.chromium.org/blink/trunk@179131 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove HTMLFrameElement.width/height
Intent to Deprecate and Remove:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/nECqqvgxIek/poPQf2KX3jMJ

BUG=398351

Review URL: https://codereview.chromium.org/427563002

git-svn-id: svn://svn.chromium.org/blink/trunk@179130 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
IDL parser: fix rebuilding of (stale) cached lexer tables
The PLY lexer caches its table as a Python module (lextab.py). The
cache is loaded by attempting to import the module, which succeeds
if there's a lextab.py{,c,o} anywhere in the Python path. If the
import succeeds, the cache is assumed by PLY to be up-to-date, so
to update the cache, we need to remove those files before calling
PLY to initialize the lexer.

This patch makes blink_idl_lexer.main() do just that. It also
extends blink_idl_parser.main() to call the former, since the GYP
(and GN) build systems only actually call the latter script.

BUG=397909

Review URL: https://codereview.chromium.org/425953002

git-svn-id: svn://svn.chromium.org/blink/trunk@179129 bbb929c8-8fbe-4397-9dbb-9b2b20218538
andersr
Remove unused and incorrect RenderStyle::initialTextEmphasisColor.
Initial -webkit-text-emphasis-color (correctly) uses
StyleColor::currentColor, like most of the other colors.

Also, initialTextEmphasisColor returns TextEmphasisFillFilled, which is not a Color.

Review URL: https://codereview.chromium.org/425763002

git-svn-id: svn://svn.chromium.org/blink/trunk@179046 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Deprecate EventSource.URL and WebSocket.URL
Intent to Deprecate:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/1m47rW4w7dc/MOf_2kgb2wIJw

Review URL: https://codereview.chromium.org/422743002

git-svn-id: svn://svn.chromium.org/blink/trunk@179032 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
HTMLImageElement.natural{Width,Height} should return intrinsic dimensions
HTML says:

 "The IDL attributes naturalWidth and naturalHeight must return the
  intrinsic width and height of the image, in CSS pixels, if the image is
  available, or else 0."

Change HTMLImageElement::natural{Width,Height} to request the intrinsic
size from ImageResource::imageSizeForRenderer by passing IntrinsicSize as
the third parameter. This makes the attributes return more appropriate
values for SVG-images in <img>.

BUG=396955

Review URL: https://codereview.chromium.org/422503002

git-svn-id: svn://svn.chromium.org/blink/trunk@179030 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Use WebBlendMode in FEBlend
This replaces the BlendModeType enumeration with the WebBlendMode for
FEBlend::m_mode. The former is moved to SVGFEBlendElement.
This enables FEBlend to use all of the blend modes available in
WebBlendMode, and leave any subset selection to the client of FEBlend
(which is SVGFEBlendElement).
The BlendModeType->string mapping is replaced by compositeOperatorName().

BUG=389594

Review URL: https://codereview.chromium.org/419253002

git-svn-id: svn://svn.chromium.org/blink/trunk@179029 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Stop using controller as a variable name for FullscreenElementStack
This was probably originally FullscreenController.

Also fix a typo and simplify isActiveFullScreenElement.

Review URL: https://codereview.chromium.org/421693003

git-svn-id: svn://svn.chromium.org/blink/trunk@179009 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Use GraphicContext::drawImageBuffer in FEBlend
Get rid of the "local" implementation of the blend modes in favor of the
Skia implementation.
Still uses the ARM NEON specific implementation for when
ARM_NEON_INTRINSICS is enabled.
Also change so that createImageFilter uses WebCoreCompositeToSkiaComposite
to map to the Skia Xfermode.

Inspired by WebKit commit http://trac.webkit.org/changeset/170433 by
Dirk Schulze.

BUG=389594

Review URL: https://codereview.chromium.org/416093002

git-svn-id: svn://svn.chromium.org/blink/trunk@178936 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Handle a terminating context in messageHandlerinWorker().
If execution is terminated while constructing the ErrorEvent representing
the incoming v8::Message, do not attempt to report the exception.

R=haraken@chromium.org
BUG=393273

Review URL: https://codereview.chromium.org/405933002

git-svn-id: svn://svn.chromium.org/blink/trunk@178929 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r178904.
R=haraken@chromium.org
BUG=373120
NOTRY=true

Review URL: https://codereview.chromium.org/422473002

git-svn-id: svn://svn.chromium.org/blink/trunk@178909 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: mark fast/forms/select/menulist-appearance-basic.html as slow (dbg)
R=haraken@chromium.org
BUG=397425
NOTRY=true

Review URL: https://codereview.chromium.org/419193002

git-svn-id: svn://svn.chromium.org/blink/trunk@178906 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Add navigator.sendBeacon() use counters.
Count API sendBeacon() use, and should its transmission quota be
exceeded, count that too.

R=tkent@chromium.org
BUG=

Review URL: https://codereview.chromium.org/417943005

git-svn-id: svn://svn.chromium.org/blink/trunk@178903 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ljagielski
Added SERVER_UNAUTHORIZED download interrupt reason.
chrome/app/generated_resources.grd: added messages for
DOWNLOAD_INTERRUPT_REASON_SERVER_UNAUTHORIZED
content/browser/download: handling of
DOWNLOAD_INTERRUPT_REASON_SERVER_UNAUTHORIZED

BUG=386146

Review URL: https://codereview.chromium.org/351863002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@285359 0039d316-1c4b-4281-b951-d872f2087c98
fs
Make DRT output for FEBlend::m_mode lowercase
This is in preparation for switching FEBlend to use WebBlendMode instead
of BlendModeType - which will enable using compositeOperatorName from
GraphicsTypes.h

BUG=389594

Review URL: https://codereview.chromium.org/419533002

git-svn-id: svn://svn.chromium.org/blink/trunk@178853 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Add UseCounters for non-standard WheelEvent.wheelDelta* attributes
In ad-hoc testing neither Firefox nor IE11 support these attributes,
making them good candidates for deprecation and eventual removal.

Review URL: https://codereview.chromium.org/416103003

git-svn-id: svn://svn.chromium.org/blink/trunk@178849 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove dead code backing WheelEvent.webkitDirectionInvertedFromDevice
It always returns false. Make that explicit.

Review URL: https://codereview.chromium.org/415773008

git-svn-id: svn://svn.chromium.org/blink/trunk@178846 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Add a UseCounter for HTMLElement.webkitdropzone
The unprefixed attribute is not supported yet, but knowing the usage of
the prefixed attribute is still valuable.

R=jochen@chromium.org

Review URL: https://codereview.chromium.org/415093002

git-svn-id: svn://svn.chromium.org/blink/trunk@178839 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove WebSettings::setDisallowFullscreenForNonMediaElements(bool)
It is never called from Chromium.

Review URL: https://codereview.chromium.org/416013002

git-svn-id: svn://svn.chromium.org/blink/trunk@178831 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix reported unit test leaks.
Make some unit tests not rely on any external code triggering a GC to
tidy up the resources they allocate on the heap. Prevents reporting of
leaked test objects.

R=haraken@chromium.org
BUG=
NOTRY=true

Review URL: https://codereview.chromium.org/412173002

git-svn-id: svn://svn.chromium.org/blink/trunk@178830 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix WebSockets unit test GC plugin failure.
The MockWebSocketChannelClient's trace() method must delegate to the
mixin's trace() method (even if it is empty.)

R=haraken@chromium.org
BUG=
NOTRY=true

Review URL: https://codereview.chromium.org/418803003

git-svn-id: svn://svn.chromium.org/blink/trunk@178826 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ljagielski
Removed potential memory leak in PasswordFormManager::OnRequestDone
BUG=395190

Review URL: https://codereview.chromium.org/405083004

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@285140 0039d316-1c4b-4281-b951-d872f2087c98
sigbjornf
LocalWindow::printErrorMessage(): check if frame is available.
If there's no frame, there's no console to add message to either.

R=haraken@chromium.org
BUG=376704

Review URL: https://codereview.chromium.org/413683002

git-svn-id: svn://svn.chromium.org/blink/trunk@178779 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix WebSockets unit tests after r178758.
Explicitly disconnect the channel on test completion, putting the heap
object in the expected state by the time the next GC sweep happens.

TBR=oilpan-reviews@chromium.org,tyoshino@chromium.org,yhirano@chromium.org,hiroshige@chromium.org
BUG=
NOTRY=true

Review URL: https://codereview.chromium.org/410263002

git-svn-id: svn://svn.chromium.org/blink/trunk@178778 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Use the mediaControlsButton() helper more in media tests
Review URL: https://codereview.chromium.org/411833006

git-svn-id: svn://svn.chromium.org/blink/trunk@178777 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Add a UseCounter for HTMLPreElement.width
The content attribute has no effect, so this API is completely useless.
It is widely implemented, but was removed from spec, so attempting
removal seems worthwhile, as it could leave HTMLPreElement empty.

http://whatwg.org/html#the-pre-element

Review URL: https://codereview.chromium.org/415533002

git-svn-id: svn://svn.chromium.org/blink/trunk@178773 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r178753.
TBR=haraken@chromium.org,oilpan-reviews@chromium.org
BUG=
NOTRY=true

Review URL: https://codereview.chromium.org/410933002

git-svn-id: svn://svn.chromium.org/blink/trunk@178757 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
[SVG] Reject hit-test queries when the element has a singular transform
When an SVG element was affected by a transform that was singular,
AffineTransform::inverse() would return the identity transform, and the
query point would not actually be transformed to the local user-space.

Make sure all calls to said method is guarded by a check to
AffineTransform::isInvertible(), and fail the hit-test if it returns false.
Add a new SVGRenderSupport-helper that does the point-transformation and
checks against the clipping area, since this is a recurring pattern in
various implementations of RenderSVG*::nodeAtFloatPoint.

RenderSVGRoot has the logic added, but still does not reject queries. This
is due to special-case handling of empty viewBoxes in
SVGFitToViewBox::viewBoxToViewTransform.

BUG=395675

Review URL: https://codereview.chromium.org/411613002

git-svn-id: svn://svn.chromium.org/blink/trunk@178745 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Add missing id/name check over img-based RadioNodeLists.
For named lookups on forms, the spec tells us (step 2)

 http://www.whatwg.org/specs/web-apps/current-work/#dom-form-nameditem

that the RadioNodeList returned for the <img> only case should be
constrained to only those matching the given name/id.

R=
BUG=387312

Review URL: https://codereview.chromium.org/405383003

git-svn-id: svn://svn.chromium.org/blink/trunk@178721 bbb929c8-8fbe-4397-9dbb-9b2b20218538
bratell
Different SPDY Hpack constant table for startup time and footprint (60KB).
The hpack constant table was 40-60 KB (gcc: 40 KB, clang: 60KB), for 
storing 2 KB of data. Not optimal.

By making it an ordinary static data table we save 60 KB with clang:

Total change: -64153 bytes
==========================
  1 added, totalling +2056 bytes across 1 sources
  1 removed, totalling -66215 bytes across 1 sources
  1 grown, for a net change of +14 bytes (367 bytes before, 381 bytes after) across 1 sources
  1 shrunk, for a net change of -8 bytes (10504 bytes before, 10496 bytes after) across 1 sources

and save 40 KB with gcc:

Total change: -41382 bytes
==========================
  1 added, totalling +2056 bytes across 1 sources
  2 removed, totalling -43597 bytes across 2 sources
  1 grown, for a net change of +167 bytes (341 bytes before, 508 bytes after) across 1 sources
  1 shrunk, for a net change of -8 bytes (10576 bytes before, 10568 bytes after) across 1 sources

BUG=394269

Review URL: https://codereview.chromium.org/393573002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@284698 0039d316-1c4b-4281-b951-d872f2087c98
philipj
Remove unused event type names
Review URL: https://codereview.chromium.org/405423002

git-svn-id: svn://svn.chromium.org/blink/trunk@178666 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Internals.selectColorInColorChooser(): type check element argument.
Avoid trouble and verify that the incoming element is indeed an Element.

R=keishi@chromium.org
BUG=395970

Review URL: https://codereview.chromium.org/409833003

git-svn-id: svn://svn.chromium.org/blink/trunk@178662 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix compilation after r178648.
R=haraken@chromium.org
BUG=
NOTRY=true
NOTREECHECKS=true

Review URL: https://codereview.chromium.org/413463002

git-svn-id: svn://svn.chromium.org/blink/trunk@178651 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: move 2D Canvas and WebGL objects to the heap.
This adds Oilpan transition types to the WebGL object hierarchy, along
with some remaining Canvas 2D objects. 

Notes:

- Oilpan does not allow destructors to access other garbage collected
  objects and we want all WebGL script accessible objects to be under
  the control of Oilpan and be garbage collected. To follow and
  fulfill both, we cannot make the objects that the destructors depend
  on for fetching out the graphics context (which they use to finalize
  their platform resources) be garbage collected. For
  WebGLSharedObjects (and WebGLRenderingContextBase) that means that
  WebGLContextGroup cannot be on the heap/garbage-collected, and for
  WebGLContextObjects, the WebGLRenderingContextBase's DrawingBuffer
  cannot be on the heap either.
  
  See details below for how this is done for WebGLContextObject's; the
  changes to WebGLContextGroup and WebGLSharedObject is along similar
  lines.
  
- In terms of file footprint of the changes here, the WebGLExtension-derived
  objects make up a significant portion. Their switch in transition
  types for their create() constructor method is all standard and
  repetitive.

- The release of platform resources when finalizing WebGL objects
  requires some extra care with Oilpan. That release is done using a
  platform graphics context object (blink::WebGraphicsContext3D), which
  is owned by a DrawingBuffer. As finalization order isn't deterministic
  with Oilpan, we have to arrange for that DrawingBuffer's context
  object to remain alive until all objects that need it for platform
  resource release have been finalized. And we cannot rely on fetching
  the context object from another WebGL object on the Oilpan heap, as it
  may or may not have been finalized.

  To address, the (off heap) DrawingBuffer is shared among all objects 
  that need it for finalization, using an off-heap RefCounted abstraction 
  (WebGLSharedWebGraphicsContext3D). When all objects have been finalized, 
  that shared object will be destructed and its underlying DrawingBuffer 
  (and, indirectly, its blink::WebGraphicsContext3D object) is let go of. 

  As a result, each WebGLContextObject adds a RefPtr<> to this shared 
  DrawingBuffer/WebGraphicsContext3D with Oilpan enabled. 

R=haraken@chromium.org,ager@chromium.org,junov@chromium.org,bajones@chromium.org,kbr@chromium.org
BUG=340522

Review URL: https://codereview.chromium.org/365653002

git-svn-id: svn://svn.chromium.org/blink/trunk@178647 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Always set the container size for a pAR=none image to the intrinsic size
When updating the viewport for an <svg:image> that has preserveAspectRatio
set to 'none' only update the container size from the intrinsic size, and
never the actual viewport (size) as specified by the 'width' and 'height'
attributes. Previously a change to the actual viewport (when pAR=none)
would cause an update to the container size from the actual viewport size,
since the image/container size was previously set to the intrinsic size.
Also simplify the request for the intrinsic size a bit.

BUG=395139

Review URL: https://codereview.chromium.org/403393002

git-svn-id: svn://svn.chromium.org/blink/trunk@178629 bbb929c8-8fbe-4397-9dbb-9b2b20218538
bratell
Include a pak file in the binary_size output if requested.
By adding --pak out/Release/content_shell.pak at the command line
the contents of it will be added to the visual output.

BUG=370383

Review URL: https://codereview.chromium.org/380693002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@284440 0039d316-1c4b-4281-b951-d872f2087c98
bratell
Save some gcc footprint (15 KB) in ExplodedFrameState.
Inlining the assignment and copy constructor for a class
like ExplodedFrameState exploded the machine code in stl::vector.

gcc:
Total change: -14969 bytes
==========================
  2 added, totalling +504 bytes across 1 sources
  1 removed, totalling -3387 bytes across 1 sources
  0 added, totalling 0 bytes across 0 sources
  3 shrunk, for a net change of -12086 bytes (14716 bytes before, 2630 bytes after) across 2 sources

It also helps for clang which normally ignores programmers hints to inline anyway:
clang:
Total change: -918 bytes
========================
  1 added, totalling +263 bytes across 1 sources
  3 removed, totalling -1098 bytes across 2 sources
  2 grown, for a net change of +161 bytes (1822 bytes before, 1983 bytes after) across 1 sources
  1 shrunk, for a net change of -244 bytes (1401 bytes before, 1157 bytes after) across 1 sources

BUG=

Review URL: https://codereview.chromium.org/400923002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@284424 0039d316-1c4b-4281-b951-d872f2087c98
philipj
Add the HTMLIFrameElement.allowFullscreen reflected attribute
http://whatwg.org/html#dom-iframe-allowfullscreen

BUG=383813

Review URL: https://codereview.chromium.org/398843002

git-svn-id: svn://svn.chromium.org/blink/trunk@178555 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Remove unused threading includes from FileReader.
Tidy up after r178426 and remove now-unused includes.

R=haraken@chromium.org
BUG=394828

Review URL: https://codereview.chromium.org/409433002

git-svn-id: svn://svn.chromium.org/blink/trunk@178525 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: tidy up transition type usage after r178508.
The Image object is not on the heap, adjust transition type usage to
reflect that. Not doing so lead to

  virtual/threaded/compositing/webgl/webgl-copy-image.html

failing in Oilpan builds --

 http://test-results.appspot.com/dashboards/flakiness_dashboard.html#tests=virtual%2Fthreaded%2Fcompositing%2Fwebgl%2Fwebgl-copy-image.html

TBR=haraken@chromium.org,oilpan-reviews@chromium.org
BUG=392765
NOTRY=true

Review URL: https://codereview.chromium.org/401013003

git-svn-id: svn://svn.chromium.org/blink/trunk@178514 bbb929c8-8fbe-4397-9dbb-9b2b20218538
kolczyk
Added IsConstructorCall to gin::Arguments.
It simply forwards the flag from v8::FunctionCallbackInfo and allows
the function handler that accept gin::Arguments argument to distinguish
between normal function invocation and call as an object construction.

BUG=

Review URL: https://codereview.chromium.org/401823002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@284123 0039d316-1c4b-4281-b951-d872f2087c98
sigbjornf
Handle "frame-less" creation of Touch objects.
Should an empty LocalFrame be used, handle this gracefully.

R=
BUG=395032

Review URL: https://codereview.chromium.org/392223003

git-svn-id: svn://svn.chromium.org/blink/trunk@178444 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix Windows build after r178431.
With http://crrev.com/406523002 making GarbageCollectedMixin a non-abstract
class, MSVC elicits a warning that DLL exported GCMixin classes have a
base class that isn't DLL exported.

Add the needed annotation to GarbageCollectedMixin to address (as warnings
are considered as errors.)

R=haraken@chromium.org,wibling@chromium.org
BUG=382557
NOTRY=true

Review URL: https://codereview.chromium.org/396153003

git-svn-id: svn://svn.chromium.org/blink/trunk@178439 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Propagate nested importScripts() error events outwards.
If importScripts() evaluation fails, we report the exception wrt the
URL and location of the failing script. Extend that to handle the
nested case, propagating any inner importScripts-induced error event
outwards rather than construct a new one wrt the outer script URL.

R=haraken@chromium.org
BUG=394615

Review URL: https://codereview.chromium.org/404513002

git-svn-id: svn://svn.chromium.org/blink/trunk@178432 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Gracefully handle FileReader() read operations when in a detached state.
Follow up r178274 and have FileReader handle the case when it becomes
detached from its document and its frame. Read operations can no longer
go ahead when that is the case, as the throttling controller isn't
available.

R=haraken@chromium.org,horo@chromium.org,nhiroki@chromium.org,kinuko@chromium.org
BUG=394828

Review URL: https://codereview.chromium.org/399863002

git-svn-id: svn://svn.chromium.org/blink/trunk@178426 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jiangj
Avoid merging chrome_browser_desktop_linux_sources lists
chrome_browser_desktop_linux_sources variable is defined in both
chrome_browser.gypi and chrome_browser_ui.gypi. If we keep the same
name the lists will be merged in gyp builds, resulting the same list
compiling twice for both browser and browser_ui targets.

Review URL: https://codereview.chromium.org/403503003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@284044 0039d316-1c4b-4281-b951-d872f2087c98
philipj
Add UseCounter for <iframe allowfullscreen> exemption for <video>
The video-specific fullscreen API can hopefully be retired soon, but
if it can't it would still be valuable to get rid of this exemption,
which could incentivise people to use the API.

BUG=346236
R=falken@chromium.org

Review URL: https://codereview.chromium.org/399933002

git-svn-id: svn://svn.chromium.org/blink/trunk@178420 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jiangj
Allow building search_engines component with configuration_policy==0
Review URL: https://codereview.chromium.org/396303002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@284009 0039d316-1c4b-4281-b951-d872f2087c98
jiangj
Fix GMOCK warnings in PasswordManagerTest
Review URL: https://codereview.chromium.org/390393002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@283933 0039d316-1c4b-4281-b951-d872f2087c98
sigbjornf
Gracefully handle ScriptProcessorNode event processing when detached.
Check that we have an ExecutionContext to deliver a process event to
before dispatching.

R=haraken@chromium.org
BUG=394718

Review URL: https://codereview.chromium.org/398573005

git-svn-id: svn://svn.chromium.org/blink/trunk@178385 bbb929c8-8fbe-4397-9dbb-9b2b20218538
bratell
Make ObserverList non-inline to save 90KB with gcc
With gcc, ObserverList expands to 6-700 bytes every time it is 
iterated. By not trying to force OberservListBase to be inline
that shrinks some. clang already ignores the hints to inline 
the code and actually doesn't change a single bit in the generated
program with this change.

raw data:
Total change: -90875 bytes
==========================
  262 added, totalling +39188 bytes across 2 sources
  49 removed, totalling -27573 bytes across 16 sources
  23 grown, for a net change of +3600 bytes (34968 bytes before, 38568 bytes after) across 8 sources
  228 shrunk, for a net change of -106090 bytes (239819 bytes before, 133729 bytes after) across 53 sources

The additions is about 2-300 different flavours of ObserverListBase, 100-300 bytes each.

The savings are 200-600 bytes each every time an observer list is used. For example:

-870: content::RenderFrameImpl::didFailLoad(blink::WebLocalFrame*, blink::WebURLError const&) type=t, (was 1635 bytes, 
now 765 bytes)
-895: content::RenderFrameImpl::didFinishLoad(blink::WebLocalFrame*) type=t, (was 1646 bytes, now 751 bytes)
-583: content::WebContentsImpl::DidFailProvisionalLoadWithError(content::RenderFrameHostImpl*, FrameHostMsg_DidFailProvisionalLoadWithError_Params const&) type=t, (was 768 bytes, now 185 bytes)
-611: content::WebContentsImpl::DidStartProvisionalLoad(content::RenderFrameHostImpl*, GURL const&, bool, bool) type=t, (was 895 bytes, now 284 bytes)

BUG=394311

Review URL: https://codereview.chromium.org/396473004

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@283762 0039d316-1c4b-4281-b951-d872f2087c98
philipj
Simplify an error condition in requestFullScreenForElement()
Use the existing getter for the top element and do the ancestor test
in a more direct manner.

BUG=383813
R=falken@chromium.org

Review URL: https://codereview.chromium.org/392913002

git-svn-id: svn://svn.chromium.org/blink/trunk@178360 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jiangj
Fix header inclusion of chrome_template_url_service_client.cc
chrome_template_url_service_client.cc should include
chrome/browser/history/history_notifications.h as it's using
history::URLVisitedDetails declared there.

Review URL: https://codereview.chromium.org/396313002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@283747 0039d316-1c4b-4281-b951-d872f2087c98
sigbjornf
Rework CORS <link rel=stylesheet> tests as js-tests.
Attempt to get at the flakiness exhibited by one or more of these tests,
on Windows mainly.

R=tyoshino@chromium.org
BUG=394208

Review URL: https://codereview.chromium.org/399653002

git-svn-id: svn://svn.chromium.org/blink/trunk@178341 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Unprefix most methods on FullscreenElementStack
fullscreenEnabled no longer even considers the webkitallowfullscreen
attribute, and the prefixes do no good internally anyway. They are
left only on the Mozilla-style API since they should generally not be
used other than for bindings.

It turned out that the Internals wrappers were unused. They were added
in http://trac.webkit.org/changeset/114790 "to facilitate writing
reproducible LayoutTests", but no tests using them were ever added.

BUG=383813

Review URL: https://codereview.chromium.org/390363002

git-svn-id: svn://svn.chromium.org/blink/trunk@178339 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r178304
TBR=haraken@chromium.org,oilpan-reviews@chromium.org
BUG=393595
NOTRY=true
NOTREECHECKS=true

Review URL: https://codereview.chromium.org/398053006

git-svn-id: svn://svn.chromium.org/blink/trunk@178324 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Improve the declared IDL type for postMessage()'s transferables
Make the postMessage() IDL type for the transferables argument be
equal to what the specs and the custom binding code actually
supports. That is, a sequence of Transferables.

Accurately defining the Transferable typedef is dependent on better
union type support (http://crbug.com/240176); provide an incomplete 
typedef until that is in place.

R=haraken@chromium.org,jsbell@chromium.org
BUG=393245

Review URL: https://codereview.chromium.org/393353003

git-svn-id: svn://svn.chromium.org/blink/trunk@178322 bbb929c8-8fbe-4397-9dbb-9b2b20218538
bratell
Polishing binary_size tool output.
Doing some sorting and splitting of data to make large amounts
of changes easier to study.

BUG=

Review URL: https://codereview.chromium.org/375063002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@283540 0039d316-1c4b-4281-b951-d872f2087c98
sigbjornf
Oilpan: remove now-unused WebNode(Member<T>) constructor.
The (implicit) construction of a WebNode from a Member<T> (where T is
convertible to a Node) was introduced to allow for assignment of a
Member<Element> to a WebNode (as needed by http://crrev.com/280123002/)

With http://crrev.com/313813002 (r175522), an operator conversion from
Member<T> to RawPtr<T> was introduced, which makes the reason for having
the above WebNode() constructor fall away. Remove it here.

R=abarth@chromium.org
BUG=357163
NOTRY=true

Review URL: https://codereview.chromium.org/400473002

git-svn-id: svn://svn.chromium.org/blink/trunk@178296 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: improve ScriptPromiseProperty<>'s argument types.
The ScriptPromiseProperty<> template will instantiate three fields holding
references to objects. In order to ensure lifetime safety, supply better
transition types where it is used.

R=ager@chromium.org,haraken@chromium.org
BUG=

Review URL: https://codereview.chromium.org/393773004

git-svn-id: svn://svn.chromium.org/blink/trunk@178278 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Make FileReader's throttle controller a supplement.
Avoid using thread-local state to hold the per-ExecutionContext instance
of this controller object.

By doing so, we can also move the controller object to the heap with
Oilpan, enabling the tracing of the collections that the controller
keeps.

R=haraken@chromium.org
BUG=

Review URL: https://codereview.chromium.org/395143002

git-svn-id: svn://svn.chromium.org/blink/trunk@178274 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
initialize result variables in v8 bindings
https://codereview.chromium.org/360703003 and
https://codereview.chromium.org/362993004 can falsely trigger
use of uninitialized variable warnings in some toolchains,
for integer "return" variables.  Let's explicitly initialize
these variables.

BUG=341031

Review URL: https://codereview.chromium.org/390223004

git-svn-id: svn://svn.chromium.org/blink/trunk@178263 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: make ViewportAnchor fully stack allocated.
Mark this class with STACK_ALLOCATED() and convert its on-heap references
into Members as a result.

R=ager@chromium.org,haraken@chromium.org
BUG=357163

Review URL: https://codereview.chromium.org/395843002

git-svn-id: svn://svn.chromium.org/blink/trunk@178250 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
fix narrowing conversion warning in SpdyFramerTest.CreatePriority
Avoid narrowing conversion warnings by not trying to put 
a char in an unsigned char array.

BUG=345769

Review URL: https://codereview.chromium.org/392883002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@283352 0039d316-1c4b-4281-b951-d872f2087c98
mostynb
disable inline ARM saturated arithmetic assembly for debug builds
When building third_party/WebKit/Source/wtf/asm/SaturatedArithmeticARM.h
in debug builds, we get this error:
cc1plus: warnings being treated as errors
 SaturatedArithmeticARM.h: In function 'int saturatedSet(int, int)':
 SaturatedArithmeticARM.h:70:43: error: asm operand 2 probably doesn't match constraints
 SaturatedArithmeticARM.h:70:43: error: asm operand 3 probably doesn't match constraints

By switching -O0 to -O1 or -O2 in the compile command, the compile
succeeds. So let's disable the inline ARM assembly unless the build
is optimized- gcc defines _OPTIMIZE_=1 in this case.
I think this is a reasonable workaround until we can find a "proper"
solution.

BUG=325746

Review URL: https://codereview.chromium.org/396603002

git-svn-id: svn://svn.chromium.org/blink/trunk@178209 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Pass references to SVGTextLayoutEngine::layoutTextOnLineOrPath
|text| and |style| are dereferenced in the (single) caller, so pass them
as references instead of pointers.
Also make the reference to the RenderSVGInlineText const, since it
shouldn't be mutated in this context. This in turn requires some additional
const-accessors on RenderSVGInlineText and SVGTextLayoutAttributes.

Review URL: https://codereview.chromium.org/390373004

git-svn-id: svn://svn.chromium.org/blink/trunk@178173 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Resolve light-source position/direction when updated
When 'x'/'y'/'z' on fePointLight/feSpotLight, or
'pointsAtX'/'pointsAtY'/'pointsAtZ' on feSpotLight is mutated (animated,
changed through the DOM) and filter primitive units is 'objectBoundingBox',
the new coordinate needs to be resolved against the filter's bounding-box.
Also simplify getting these position/direction attributes of a light-source
element by adding new methods on SVGFELightElement.

BUG=393907

Review URL: https://codereview.chromium.org/395813002

git-svn-id: svn://svn.chromium.org/blink/trunk@178167 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
HTMLMediaElement::updateActiveTextTrackCues(): use on-heap local vectors
With Oilpan, use heap vectors to hold temporary references to other
heap objects (text tracks and text track cues.)

R=ager@chromium.org,haraken@chromium.org
BUG=357163

Review URL: https://codereview.chromium.org/387313011

git-svn-id: svn://svn.chromium.org/blink/trunk@178158 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r178153.
R=haraken@chromium.org
BUG=169721
NOTRY=true

Review URL: https://codereview.chromium.org/395623007

git-svn-id: svn://svn.chromium.org/blink/trunk@178156 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Introduce FullscreenElementStack::fullyExitFullscreen()
http://fullscreen.spec.whatwg.org/#fully-exit-fullscreen

BUG=383813

Review URL: https://codereview.chromium.org/387233002

git-svn-id: svn://svn.chromium.org/blink/trunk@178152 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
add double support to base::Pickle
Since WebTimeRange now uses doubles instead of floats[1], we should
probably add double support to base::Pickle.

[1] https://codereview.chromium.org/337923006

BUG=393552

Review URL: https://codereview.chromium.org/388213002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@283064 0039d316-1c4b-4281-b951-d872f2087c98
sigbjornf
Always report access control failure if accessing unsupported URL.
For attempted cross-origin requests to unsupported CORS URLs, extend the
error reporting to also apply to non-simple requests that would require
a preflight. It is also bound to fail.

R=abarth@chromium.org,tyoshino@chromium.org
BUG=389751

Review URL: https://codereview.chromium.org/389053003

git-svn-id: svn://svn.chromium.org/blink/trunk@178091 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Constify metrics list references in SVGTextLayoutEngine
The text layout engine should not mutate the metrics list, so make the
various references to it const to clarify this a bit.

Review URL: https://codereview.chromium.org/390873002

git-svn-id: svn://svn.chromium.org/blink/trunk@178082 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: have HTMLImport::recalcTreeState() use on-heap local variables.
R=wibling@chromium.org,haraken@chromium.org
BUG=357163

Review URL: https://codereview.chromium.org/394463003

git-svn-id: svn://svn.chromium.org/blink/trunk@178078 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
[SVG] Make metrics passed to calculateGlyphAdvanceAndOrientation const
Typical in-parameter - the method shouldn't need to mutate this object.

Review URL: https://codereview.chromium.org/392583003

git-svn-id: svn://svn.chromium.org/blink/trunk@178068 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ljagielski
Leaking CFData in ImageDecoder.h
third_party/WebKit/Source/platform/image-decoders/ImageDecoder.h: added missing
CFRelease.

BUG=

Review URL: https://codereview.chromium.org/389283004

git-svn-id: svn://svn.chromium.org/blink/trunk@178065 bbb929c8-8fbe-4397-9dbb-9b2b20218538
christiank
Add support for clearing the HTTP auth cache.
This patch adds an API so that the platform can clear the HTTP auth cache
at will. This can be useful when clearing private browsing data to prevent
cached credentials from being re-used.

BUG=63723

Review URL: https://codereview.chromium.org/351833002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@282944 0039d316-1c4b-4281-b951-d872f2087c98
sigbjornf
Replace uses of {un}setPendingActivity() in FetchBodyStream.
Follow up r178002 and provide FetchBodyStream::hasPendingActivity() rather
than updating ActiveDOMObject's refcount-based pending counts.

This lets the class derive from the simpler Oilpan GC class
(GarbageCollectedFinalized) rather than RefCountedGarbageCollected.

R=haraken@chromium.org,kouhei@chromium.org
BUG=354845

Review URL: https://codereview.chromium.org/390673002

git-svn-id: svn://svn.chromium.org/blink/trunk@178009 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: move FetchBodyStream to the heap.
Followup r177958 and move FetchBodyStream to the heap also.

R=haraken@chromium.org
BUG=340522

Review URL: https://codereview.chromium.org/389043002

git-svn-id: svn://svn.chromium.org/blink/trunk@178002 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
For font weights >= 600, create bold system fonts.
Adjust the weight threshold used for creating bold system fonts down
to 600, so as align with the weight matching specified by

  http://www.w3.org/TR/CSS21/fonts.html#propdef-font-weight

It also aligns better with others.

R=eae@chromium.org
BUG=335050

Review URL: https://codereview.chromium.org/387873002

git-svn-id: svn://svn.chromium.org/blink/trunk@177999 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r177984.
TBR=tkent@chromium.org,oilpan-reviews@chromium.org
BUG=388961
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/385343002

git-svn-id: svn://svn.chromium.org/blink/trunk@177994 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Implemented method for printing invalidation sets.
Add a show method to invalidation sets like we have for selectors for use
while debugging.

Review URL: https://codereview.chromium.org/381873002

git-svn-id: svn://svn.chromium.org/blink/trunk@177970 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Use code generator's argument processing in custom WebGL methods
The argument handling in these methods is not special, it's typically
their return values that need custom code, so align the argument
processing with what the code generator would have done.

This was done by temporarily dropping the [Custom] on these methods, and
then simply copy the corresponding blocks of code from the generated
methods.

This fixes exception handling in some cases where argument conversion
failed, for instance if getFramebufferAttachmentParameter() was called
with an object as the first argument, and that object had a valueOf()
function that threw an exception. The old custom code would simply
ignore that exception, for unknown reasons.

Review URL: https://codereview.chromium.org/389583002

git-svn-id: svn://svn.chromium.org/blink/trunk@177946 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: add transition types to remaining Fetch and ServiceWorker objects
R=dominicc@chromium.org,haraken@chromium.org,tkent@chromium.org
BUG=340522

Review URL: https://codereview.chromium.org/384633002

git-svn-id: svn://svn.chromium.org/blink/trunk@177938 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Make WebGLRenderingContext.getAttachedShaders() return type nullable
This allows it to return null when the context is lost or when an error
occurs, without resorting to a custom binding for the method.

BUG=390780

Review URL: https://codereview.chromium.org/386953002

git-svn-id: svn://svn.chromium.org/blink/trunk@177935 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
An empty SVG path string is not in error
Adaption of Rob Buis' (<rwlbuis@webkit.org> / <rob.buis@samsung.com>)
WebKit patch. (http://trac.webkit.org/changeset/154896)

BUG=264123

Review URL: https://codereview.chromium.org/380213002

git-svn-id: svn://svn.chromium.org/blink/trunk@177929 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
IDL: Treat undefined as missing for optional arguments with defaults
For optional arguments with defaults, treat undefined as missing simply
by checking 'info[N].IsUndefined()' instead of 'N <= info.Length()'.

This works since V8's indexing operator returns an undefined value for
all out-of-range indexes.

Changes in behavior that had (or now has) testing coverade matches
Firefox (Nightly), except in the case of WebKitCSSMatrix's constructor,
which Firefox naturally doesn't have.

BUG=335871

Review URL: https://codereview.chromium.org/373043004

git-svn-id: svn://svn.chromium.org/blink/trunk@177920 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
IDL clean-up: Rename is_nullable_simple => is_implicit_nullable
... and introduce is_explicit_nullable that is mutually exclusive (for
nullable types.)

It turns out that the only actual use of is_implicit_nullable right now
is in the definition of is_explicit_nullable, but having both is fine,
for symmetry.

Review URL: https://codereview.chromium.org/384773004

git-svn-id: svn://svn.chromium.org/blink/trunk@177912 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Make WebGLRenderingContext.getSupportedExtensions()'s return type nullable
This allows it to return null when the context is lost, without resorting
to a custom binding for the method.

BUG=390780

Review URL: https://codereview.chromium.org/377113003

git-svn-id: svn://svn.chromium.org/blink/trunk@177911 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Map all ContextDestroyed custom element exceptions to InvalidStateError.
For the exceptions that document.registerElement() may throw due to the
context having gone away, map them all to InvalidStateError.

Specifically, map ContextDestroyedRegisteringDefinition to InvalidStateError
rather than NotSupportedError.

R=haraken@chromium.org,ager@chromium.org,dominicc@chromium.org
BUG=

Review URL: https://codereview.chromium.org/375343003

git-svn-id: svn://svn.chromium.org/blink/trunk@177907 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
IDL: Support using nullable on any method return type
Previously, nullable string and wrapper types was supported, since those
types have a native/natural null representation in C++.  Other types,
like primitives (long, boolean) or complex types like sequence<>, could
not be nullable.

With this CL, nullable return types other than string or wrapper types
are handled using Nullable<T>, like so:

  Nullable<T> result = impl->method(...);
  if (result.isNull())
    v8SetReturnValueNull(info);
  else
    v8SetReturnValue...(info, ... result.get() ...);

This CL does not change code generation since currently no method return
such a nullable type.

BUG=390780

Review URL: https://codereview.chromium.org/385603002

git-svn-id: svn://svn.chromium.org/blink/trunk@177887 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r177880.
TBR=haraken@chromium.org,oilpan-reviews@chromium.org
BUG=
NOTRY=true

Review URL: https://codereview.chromium.org/385773002

git-svn-id: svn://svn.chromium.org/blink/trunk@177883 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: trace MediaControlElement's element reference.
R=ager@chromium.org,haraken@chromium.org
BUG=340522

Review URL: https://codereview.chromium.org/385593002

git-svn-id: svn://svn.chromium.org/blink/trunk@177858 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
IDL: Treat undefined as missing for optional arguments with defaults
For optional arguments with defaults, treat undefined as missing simply
by checking 'info[N].IsUndefined()' instead of 'N <= info.Length()'.

This works since V8's indexing operator returns an undefined value for
all out-of-range indexes.

Changes in behavior that had (or now has) testing coverade matches
Firefox (Nightly), except in the case of WebKitCSSMatrix's constructor,
which Firefox naturally doesn't have.

BUG=335871

Review URL: https://codereview.chromium.org/373043004

git-svn-id: svn://svn.chromium.org/blink/trunk@177857 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Followup to r177831.
Extend the nodeToIdMap by calling set() rather than update
the end() iterator.

R=haraken@chromium.org
BUG=340522
NOTRY=true

Review URL: https://codereview.chromium.org/382633008

git-svn-id: svn://svn.chromium.org/blink/trunk@177841 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Use [Reflect=value] for HTMLInputElement.defaultValue
The HTML specification describes the defaultValue as reflecting the value
content attribute. This was also how it was implemented, but unlike all
other HTMLInputElement attributes that reflect content attributes,
[Reflect] wasn't used for defaultValue.

The C++ getter HTMLInputElement::defaultValue() is kept since it is used
by other C++ code, and because it's name is a good documentation of what
it returns (even if it really just reads the value content attribute.)

This does not affect behavior in any way.

BUG=392471

Review URL: https://codereview.chromium.org/387493003

git-svn-id: svn://svn.chromium.org/blink/trunk@177838 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r177815
R=haraken@chromium.org,jochen@chromium.org
BUG=
NOTRY=true

Review URL: https://codereview.chromium.org/388463002

git-svn-id: svn://svn.chromium.org/blink/trunk@177829 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Don't dispatch '(SVG)load' to ancestors of <svg:image> after doc. 'load'
When an <svg:image> is inserted after document load has been dispatched,
we don't want to dispatch 'load' again to any ancestor 'svg' roots (inner
or outer). Hence only dispatch an event to the element itself in this
condition.

Take the opportunity to clean up SVGElement::sendSVGLoadEventIfPossible
a bit, by splitting it into send-to-self and send-to-self-and-ancestors
methods (most callers call the former). Also unravel the control-flow of
the ancestors-version a bit compared to the old version.

BUG=372946

Review URL: https://codereview.chromium.org/375923002

git-svn-id: svn://svn.chromium.org/blink/trunk@177814 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove superfluous LOG_DISABLED guard
NOTRY=true

Review URL: https://codereview.chromium.org/378233003

git-svn-id: svn://svn.chromium.org/blink/trunk@177775 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Return transform from transformationForTextBox instead of using out-param
Also simplify SVGTextChunkBuilder::transformationForTextBox while in
the neighborhood.

Review URL: https://codereview.chromium.org/370803002

git-svn-id: svn://svn.chromium.org/blink/trunk@177774 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Use [TreatNullAs=EmptyString] for DOMString attributes with [Reflect]
In cases where the HTML specification uses [TreatNullAs=EmptyString] on
an IDL attribute that reflects a content attribute, use the same in our
IDL files to get correct behavior when assigning null.

Previous incorrect behavior when assigning null was to remove the
reflected content attribute, if present, and otherwise do nothing.

The new behavior matches Firefox and Opera/Presto. IE11 behaves the same
when the content attribute is present, but doesn't create the content
attribute if it's missing and null is assigned to the IDL attribute.

This change impacts performance significantly (~4x slowdown) in the case
of assigning null to the IDL attribute when the reflected content
attribute is not present, i.e. the previous "do nothing" case. This ought
to be considered an irrelevant micro-benchmark, and the reason it slows
down is that the incorrect (web-facing) behavior is a no-op while the
correct behavior is not.

Performance in other cases, in particular the case of assigning null to
the IDL attribute when the reflected content attribute is present, show
no significant change.

BUG=391194

Review URL: https://codereview.chromium.org/371833004

git-svn-id: svn://svn.chromium.org/blink/trunk@177728 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: move MHTML objects to the heap.
R=haraken@chromium.org,ager@chromium.org,tkent@chromium.org
BUG=340522

Review URL: https://codereview.chromium.org/374053002

git-svn-id: svn://svn.chromium.org/blink/trunk@177719 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Remove obsolete make_file_array() uses from web/BUILD.gn
This is a simple follow-up to
  https://codereview.chromium.org/364323002/
removing from web/BUILD.gn what that CL removed from web.gyp.

BUG=312586

Review URL: https://codereview.chromium.org/372983004

git-svn-id: svn://svn.chromium.org/blink/trunk@177687 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Support ignorance of base class finalizers.
When checking if a class needs a finalizer, allow some of its base
classes to be ignored, even if they do have a declared destructor.

This is done so as to handle WebCore::ScriptWrappable use better while
in transition. i.e., WebCore::ScriptWrappable's destructor does not
have to be invoked when sweeping, and when Oilpan will be on by
default, ScriptWrappable will not define one. However, until that
time, it still provides a user-defined destructor, and to allow the
class to be used as base in conjunction with GarbageCollected<>, we
will now look past it when checking the finalizer requirement.

R=zerny@chromium.org
BUG=

Review URL: https://codereview.chromium.org/374593002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@281758 0039d316-1c4b-4281-b951-d872f2087c98
mostynb
simplify posix MappedFile::Init and add useful logs
This ancient CL suggested a simplication in mapped_file_posix.cc:
https://codereview.chromium.org/160288

After hitting this DCHECK on an embedded device where using a debugger
is difficult, I decided to make the suggested change and add some useful
logging while I was at it.

BUG=391937

Review URL: https://codereview.chromium.org/372113003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@281747 0039d316-1c4b-4281-b951-d872f2087c98
sigbjornf
Oilpan: have SharedWorker trace its message port.
Also remove the unused AbstractWorker::asID() helper.

R=haraken@chromium.org,ager@chromium.org
BUG=340522

Review URL: https://codereview.chromium.org/371403002

git-svn-id: svn://svn.chromium.org/blink/trunk@177673 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mmaliszkiewicz
HTMLParser should use current value of scriptEnabled flag
This CL adds caching  of scriptEnabled setting to Document.

When page is reloaded we create new parser throught DocumentLoader::ensureWriter
and set scriptEnabled flag. ContentSettingsObserver::allowScript method is
responsible for checking settings but it uses cache. Cache is cleared on
DidCommitProvisionalLoad but parser is already created before that. However we
can't clear cache earlier because unload events for old page might be fired and
it depends on old page settings (cached).

BUG=232410

Review URL: https://codereview.chromium.org/313173012

git-svn-id: svn://svn.chromium.org/blink/trunk@177664 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Remove EventSource tests from OilpanExpectations.
TBR=haraken@chromium.org
BUG=350316
NOTRY=true

Review URL: https://codereview.chromium.org/376823003

git-svn-id: svn://svn.chromium.org/blink/trunk@177663 bbb929c8-8fbe-4397-9dbb-9b2b20218538
andersr
[New Multicolumn] Support for paged overflow. (By mstensho).
This brings support for overflow-y:-webkit-paged-[xy] to the new
multicol implementation.

BUG=359976

Review URL: https://codereview.chromium.org/364233005

git-svn-id: svn://svn.chromium.org/blink/trunk@177654 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Display property as specified on svg elements.
The computed display of svg elements should be as for other elements. For
svg:svg elements, they should behave as other replaced elements when styled
with inline-block, table-cell, etc. For svg elements inside the root svg
element, they still get a computed value for display as other elements,
although the rendering is the same for all display values different from
'none'.

This change aligns the behavior with that of Gecko.

This change makes it possible to remove the custom style building for
display.

R=pdr@chromium.org,fs@opera.com
BUG=391959

Review URL: https://codereview.chromium.org/379463002

git-svn-id: svn://svn.chromium.org/blink/trunk@177649 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jiangj
Fix component build linking with notifications=0
We will get the following errors if not:

2>     Creating library ..\..\build\Debug\lib\message_center.lib and object ..\..\build\Debug\lib\message_center.exp
2>dummy_message_center.obj : error LNK2001: unresolved external symbol "public: virtual bool __thiscall message_center::NotificationDelegate::HasClickedListener(void)" (?HasClickedListener@NotificationDelegate@message_center@@UAE_NXZ)
2>dummy_message_center.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall message_center::NotificationDelegate::ButtonClick(int)" (?ButtonClick@NotificationDelegate@message_center@@UAEXH@Z)

Same fix for OS==android.

Done by Przemek Kudla <pkudla@opera.com>

Review URL: https://codereview.chromium.org/369243002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@281574 0039d316-1c4b-4281-b951-d872f2087c98
jl
Embed CSS/JS under Source/web/resources/ as GRD resources
Embed the CSS and JS used for the color chooser and date/time chooser
as GRD resources instead of as C++ arrays using make-file-array.py.

BUG=312586

Review URL: https://codereview.chromium.org/364323002

git-svn-id: svn://svn.chromium.org/blink/trunk@177591 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Add some Blink JS/CSS data resources
This makes the resources added in
  https://codereview.chromium.org/364323002/
available through blink::Platform::loadResource().

BUG=312586

Review URL: https://codereview.chromium.org/372473002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@281534 0039d316-1c4b-4281-b951-d872f2087c98
fs
Restore GC state after painting with a "reference" [url(#foo)] clip-path
If the referenced 'clipPath' is a simple (single shape), the GC state is
mutated with the clip-path shape. It's however not guaranteed that the
GC state is restored - and hence the clip removed - before painting later
content.
Make sure the state is restored at the exit of
RenderLayer::paintLayerContents by using a GCSS. Convert the
'clip-path: <shape>'-case to use the GCSS as well.

BUG=391291

Review URL: https://codereview.chromium.org/365293002

git-svn-id: svn://svn.chromium.org/blink/trunk@177586 bbb929c8-8fbe-4397-9dbb-9b2b20218538
tmoniuszko
Fix linking error in message_center
Fixup to 3e28d46ea1840c9d4dc451271dd7e6d3b510fc50
message_center now depends on aura even if 'use_ash=0'.

BUG=375466

Review URL: https://codereview.chromium.org/369303003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@281516 0039d316-1c4b-4281-b951-d872f2087c98
mostynb
gcc 4.7 workaround for __uint16_t
It seems that with my gcc 4.7 / eglibc 2.11 toolchain, sys/user.h uses
__uint16_t without it necessarily being defined first.  This can be
worked around by simply including sys/types.h first.

BUG=231000

Review URL: https://codereview.chromium.org/371573003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@281504 0039d316-1c4b-4281-b951-d872f2087c98
jl
Use [TreatNullAs=EmptyString] for HTMLInputElement.value
This is what the specification has. Previous behavior for setting the
value IDL attribute to null was effectively to reset the form control's
value to the default, which is wrong.

New behavior also matches that of Firefox and Opera/Presto.

BUG=391194

Review URL: https://codereview.chromium.org/372543002

git-svn-id: svn://svn.chromium.org/blink/trunk@177564 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
IDL: Add support for [TreatNullAs=EmptyString]
[TreatNullAs=NullString] was already supported, and still is, but is
non-standard.  [TreatNullAs=EmptyString] is what Web IDL has and what is
used in specifications to describe required behavior.

There are cases where web-exposed behavior relating to handling of null
is wrong today, and where using [TreatNullAs=EmptyString] instead would
be the natural fix.

BUG=391194

Review URL: https://codereview.chromium.org/368313005

git-svn-id: svn://svn.chromium.org/blink/trunk@177561 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Use correct destination rectangle in FEComposite w/ type='in'
When one of the inputs are larger than the other, the destination will
assume the size of the smaller. When drawing the input onto the
destination however, the size of the buffer itself is always used. This
means that the source will be stretched onto a (too large) destination
rectangle. Destination and sources should always be the same dimensions
in this particular case, so make sure they are by simply adjusting the
computed destination rectangle based by the effects paint rect, hence
retaining the computed dimensions.

BUG=391200

Review URL: https://codereview.chromium.org/365163002

git-svn-id: svn://svn.chromium.org/blink/trunk@177536 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: have the media element safely close its MediaSource.
The media element must notify its attached MediaSource upon being
finalized, as the MediaSource must then transition to a closed state
and fire the corresponding event. Hence, upon media element finalization,
it will conditionally notify its MediaSource (if any) object if the
latter survived the GC. If neither survived, an explicit close isn't
needed.

With that in place, the media element no longer keeps a RefPtr to its
MediaSource (with Oilpan enabled.) Consequently, ref-forwarding over
HTMLMediaSource is no longer needed nor supported.

R=haraken@chromium.org
BUG=340522

Review URL: https://codereview.chromium.org/363953002

git-svn-id: svn://svn.chromium.org/blink/trunk@177532 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r177520.
TBR=haraken@chromium.org
BUG=363967
NOTRY=true

Review URL: https://codereview.chromium.org/370703003

git-svn-id: svn://svn.chromium.org/blink/trunk@177529 bbb929c8-8fbe-4397-9dbb-9b2b20218538
andersr
[New Multicolumn] Remove unnecessary calls to setRegionBasedColumnsEnabled.
Tests which enable region based multicolumn behavior using Javascript
don't need to do that anymore, because they are run via
virtual/regionbasedmulticol, which enables the new behavior using a
command line flag.

Note that tests in fast/multicol/newmulticol/compare-with-old-impl still
need to call internals.settings.setRegionBasedColumnsEnabled(true). They
are now the only tests which need to do so. (And it should remain like
that until they are removed during Issue 350853).

BUG=334335
R=rune@opera.com

Review URL: https://codereview.chromium.org/341103002

git-svn-id: svn://svn.chromium.org/blink/trunk@177528 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Have the form control element directly handle validation message updating.
Remove the small ValidationMessage class, merging its functionality into
its owning form control element.

R=tkent@chromium.org
BUG=

Review URL: https://codereview.chromium.org/365223004

git-svn-id: svn://svn.chromium.org/blink/trunk@177527 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Move transformationForTextBox() call out of the fragment-loop
textBox is invariant, so no need to fetch and check the transform for each
fragment.

Review URL: https://codereview.chromium.org/362923007

git-svn-id: svn://svn.chromium.org/blink/trunk@177517 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r177509.
TBR=haraken@chromium.org
BUG=383813
NOTRY=true

Review URL: https://codereview.chromium.org/370693002

git-svn-id: svn://svn.chromium.org/blink/trunk@177512 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Merge the fullscreen event queues
The two queues are both processed by a single timer, so they might just
as well be a single queue, which also avoids looping over each queue
separately.

Instead of queuing Nodes, Events are created and queued. This means that
the event type is made explicit, which will make it simpler to support
both prefixed and unprefixed events using the same code.

BUG=383813

Review URL: https://codereview.chromium.org/365903006

git-svn-id: svn://svn.chromium.org/blink/trunk@177509 bbb929c8-8fbe-4397-9dbb-9b2b20218538
andersr
[New Multicolumn] Skip tests in fast/multicol intended for region based multicolumns.
A bunch of tests in fast/multicol have baselines generated based on the
region based multicolumn implementation. These tests currently enable the
new multicolumn implementation via Javascript.

This patch skips those tests in the regular fast/multicol suite, leaving
virtual/regionbasedmulticol to run those tests instead. The test suite
virtual/regionbasedmulticol enables the new multicolumn behavior via a
command line flag, so it's no longer necessary to enable it via Javascript
(although they still ineffectively do that, for now).

Note that (ref)tests in fast/multicol/newmulticol/compare-with-old-impl
are special, because the they require the region based multicol
implementation in the test itself, and the old implementation in the
expected result. Hence, these tests should still run in the regular
fast/multicol suite.

BUG=334335
R=rune@opera.com

Review URL: https://codereview.chromium.org/343973002

git-svn-id: svn://svn.chromium.org/blink/trunk@177493 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jiangj
Fix Mac bootstrap sandbox for 64-bit builds
Mach look_up2 message structs should be aligned by 4 bytes like
breakpad does, otherwise there will be a 192 bytes vs. 188 bytes
difference for look_up2_request_10_7 when compiling in 64-bit.

BUG=386330

Review URL: https://codereview.chromium.org/364233002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@281313 0039d316-1c4b-4281-b951-d872f2087c98
philipj
Simplify FullscreenElementStack::fullScreenChangeDelayTimerFired()
This function was needlessly complicated:

 1. A null pointer is never pushed to the queues outside of this
    function, so by adding a null check for the internal push, the
    initial null handling can be removed.

 2. !node->inDocument() implies !document()->contains(node.get()), so
    the latter can be dropped from the condition.

No observable change is expected from this simplication.

Review URL: https://codereview.chromium.org/365993002

git-svn-id: svn://svn.chromium.org/blink/trunk@177489 bbb929c8-8fbe-4397-9dbb-9b2b20218538
andersr
[New Multicolumn] Create a virtual testsuite for the region based multicol impl.
It is currently possible to switch between the old and the new multicol
implementation though Javascript. This means that individual tests may
"choose" in which implementation they should be evaluated. We wish to
remove the use of this Javascript toggle where it's not necessary
(ultimately everywhere), and use virtual test suites instead---even in the
transitional period where both implementations exist.

This patch is the first in a series which aims to fix this.

The virtual/regionbasedmulticol suite tests everything in fast/multicol,
except the tests which fail because the baseline is based on the old
implementation of multicol. The skipped tests should later be evaluated
individually, and baselined in the virtual/regionbasedmulticol suite, if
applicable.

I have verified that all the tests we skip in the virtual test suite use
the old multicol implementation.

Note: The tests fast/multicol/mixed-opacity-test.html and
multicol/mixed-opacity-fixed-test.html are "new" tests which fail due to a
known bug.

BUG=334335
R=rune@opera.com

Review URL: https://codereview.chromium.org/343963002

git-svn-id: svn://svn.chromium.org/blink/trunk@177488 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Have the Worker destructor handle non-started Workers better.
If the creation of a Worker fails early due to an invalid script URL, the
worker context proxy isn't created. Hence, the assumption that the
Worker's ExecutionContext is kept alive by it doesn't apply. Adjust
the asserting in the destructor to reflect that.

R=haraken@chromium.org
BUG=301575

Review URL: https://codereview.chromium.org/370553003

git-svn-id: svn://svn.chromium.org/blink/trunk@177474 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Fix typo in SVGTextLayoutEngine method name (characer -> character)
Review URL: https://codereview.chromium.org/366103002

git-svn-id: svn://svn.chromium.org/blink/trunk@177470 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Make buildSpacingAndGlyphsTransform static
Only used within SVGTextChunkBuilder, but does not use any state.

Review URL: https://codereview.chromium.org/361403004

git-svn-id: svn://svn.chromium.org/blink/trunk@177469 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r177450.
Update ScriptPromise tests to be Oilpan compatible.

R=haraken@chromium.org
BUG=363967
NOTRY=true

Review URL: https://codereview.chromium.org/367263004

git-svn-id: svn://svn.chromium.org/blink/trunk@177463 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Expose FileList in Worker contexts.
The File API spec exposes FileList in both Window and Worker contexts,

 http://dev.w3.org/2006/webapi/FileAPI/#filelist-section

Follow up and have the implementation also provide the latter.

R=michaeln@chromium.org,jsbell@chromium.org
BUG=339441

Review URL: https://codereview.chromium.org/349633005

git-svn-id: svn://svn.chromium.org/blink/trunk@177456 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove pointless uses of EventInit
Setting both bubbles and cancelable to false amounts to the same thing
as using the simpler Event::create, so do that intead.

Review URL: https://codereview.chromium.org/368123002

git-svn-id: svn://svn.chromium.org/blink/trunk@177446 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Remove ScriptWrappable's destructor in Oilpan builds.
r177389 (http://crrev.com/362963005) made ScriptWrappable's destructor
empty in Oilpan builds. Take the next step and do not define it at all.

R=
BUG=340522

Review URL: https://codereview.chromium.org/369633003

git-svn-id: svn://svn.chromium.org/blink/trunk@177436 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ohrn
Only show overlay play button when controls are enabled.
BUG=347105

Review URL: https://codereview.chromium.org/363563007

git-svn-id: svn://svn.chromium.org/blink/trunk@177418 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Make more [TreatNullAs=NullString] DOMString arguments nullable
Fix handling of DOMString? combined with [TreatUndefinedAs=NullString] to
behave the same as [TreatNullAs=NulllString] combined with it, and then
change method arguments with TreatNullAs+TreatUndefinedAs to nullable with
just TreatUndefinedAs.

This does not alter behavior or change generated code.

Review URL: https://codereview.chromium.org/367003002

git-svn-id: svn://svn.chromium.org/blink/trunk@177396 bbb929c8-8fbe-4397-9dbb-9b2b20218538
davve
Delete now unused StyleDifferenceContextSensitiveProperty enum
After https://src.chromium.org/viewvc/blink?view=rev&revision=177358
these enumeration values are unused.

Review URL: https://codereview.chromium.org/366813004

git-svn-id: svn://svn.chromium.org/blink/trunk@177391 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r177376.
Move implementation of create() into .cpp to bring the MediaQueryEvaluator
type completely into scope.

TBR=haraken@chromium.org,oilpan-reviews@chromium.org
BUG=
NOTRY=true

Review URL: https://codereview.chromium.org/366913007

git-svn-id: svn://svn.chromium.org/blink/trunk@177388 bbb929c8-8fbe-4397-9dbb-9b2b20218538
davve
Remove StyleEngine.h include from RenderObject.h
Achieves it by adding a header file, RenderObjectInlines.h, for use by
the compilation units that calls the inline methods.

Targets that depend on StyleEngine.h now cut in roughly half, from 678
to 278. Top ten list of other header files that are affected:

Source/core/dom/StyleEngine.h: 678 -> 278
Source/core/dom/DocumentStyleSheetCollection.h: 679 -> 279
Source/core/dom/StyleSheetCollection.h: 680 -> 280
Source/core/dom/TreeScopeStyleSheetCollection.h: 679 -> 279
Source/core/dom/StyleSheetScopingNodeList.h: 680 -> 280
Source/core/css/TreeBoundaryCrossingRules.h: 689 -> 297
Source/core/css/resolver/ScopedStyleTree.h: 690 -> 298
Source/core/css/SiblingTraversalStrategies.h: 691 -> 299
Source/core/css/SelectorFilter.h: 691 -> 299
Source/core/css/resolver/MatchRequest.h: 690 -> 298

Review URL: https://codereview.chromium.org/358603002

git-svn-id: svn://svn.chromium.org/blink/trunk@177376 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: insist that CompositeCreators be stack allocated.
And add missing Oilpan (transition) type to the heap allocated
MessagePortArray member of Deserializer.

R=haraken@chromium.org
BUG=340522

Review URL: https://codereview.chromium.org/362923003

git-svn-id: svn://svn.chromium.org/blink/trunk@177375 bbb929c8-8fbe-4397-9dbb-9b2b20218538
davve
Inapplicable top, bottom style shouldn't affect height calculation
Require an absolute or fixed positioned containing block before
examining the containing block top and bottom style values for
contributing a non-auto height. Otherwise we'll base the decision on
inapplicable values.

|top| and |left| only applies to positioned elements:

http://www.w3.org/TR/CSS2/visuren.html#propdef-top
http://www.w3.org/TR/CSS2/visuren.html#propdef-bottom

and only contribute to the element's height (when height is auto) for
absolute and fixed positioned elements:

http://www.w3.org/TR/CSS2/visudet.html#normal-block
http://www.w3.org/TR/CSS2/visudet.html#abs-non-replaced-height

BUG=390101

Review URL: https://codereview.chromium.org/359673003

git-svn-id: svn://svn.chromium.org/blink/trunk@177374 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove the webkitallowfullscreen content attribute
Intent to Deprecate and Remove:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/LupOLlogL-g/H8GsBEDGQeMJ

Tests were updated to use allowfullscreen instead of
webkitallowfullscreen, with a few exceptions:

fullscreen/full-screen-enabled-prefixed.html would have become redundant
with fullscreen/full-screen-enabled.html and was removed.

fullscreen/full-screen-iframe-with-mixed-allow-webkitallow-attribute.html
became a test for nested iframes with allowfullscreen and was renamed.

Finally, doctypes were added and whitespace cleaned up in touched test.

fullscreen/resources/full-screen-iframe-allowed-nested2.html depended on
being in quirks mode, since the size of the body element is smaller in
standards mode. Put the click event handler on window instead.

BUG=390008

Review URL: https://codereview.chromium.org/336313015

git-svn-id: svn://svn.chromium.org/blink/trunk@177332 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
MediaSource must use ref-counting to handle pending activity counting.
Switch MediaSource to deriving from RefCountedGarbageCollected, as
ActiveDOMObject::setPendingActivity() relies on ref-counting.

R=haraken@chromium.org
BUG=340522

Review URL: https://codereview.chromium.org/360323002

git-svn-id: svn://svn.chromium.org/blink/trunk@177324 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Make [TreatNullAs=NullString] DOMString arguments nullable instead
An IDL method declaration such as

  void f([TreatNullAs=NullString] DOMString x);

can be transformed into

  void f(DOMString? x);

without affecting behavior or generated code, so do that.

Arguments that also have [TreatUndefinedAs=NullString] can't be converted
this way (yet), so this CL leaves them unchanged for now.

Review URL: https://codereview.chromium.org/367663002

git-svn-id: svn://svn.chromium.org/blink/trunk@177322 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Use IDL default arguments for Window.confirm() and Window.prompt()
This doesn't change behavior.

BUG=258153

Review URL: https://codereview.chromium.org/368583004

git-svn-id: svn://svn.chromium.org/blink/trunk@177309 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Replace many [TreatReturnedNullStringAs=Null] with nullable DOMString
In IDL files, the attribute declarations

  [TreatReturnedNullStringAs=Null] readonly attribute DOMString X;
  [TreatReturnedNullStringAs=Null, TreatNullAs=NullString] attribute DOMString X;

can now be changed into

  readonly attribute DOMString? X;
  attribute DOMString? X;

without changing behavior or generated code, so do that.

Similarly for methods, the declaration

  [TreatReturnedNullStringAs=Null] DOMString f();

can be changed into

  DOMString? f();

without changing behavior or generated code, so do that too.

Review URL: https://codereview.chromium.org/361883004

git-svn-id: svn://svn.chromium.org/blink/trunk@177302 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
IDL: Drop redundant null check for string and wrapper type attributes
For nullable string and wrapper type attributes, we use a null string or
null pointer return value from the C++ getter to represent a null
Javascript value.

Rather than generating a separate null check and v8SetReturnValueNull()
call for these types, we can use v8SetReturnValueStringOrNull() for
strings, and for wrapper types, we can always use the per-type
v8SetReturnValue() overload, since they convert null pointers to null
Javascript values already.

Review URL: https://codereview.chromium.org/357413003

git-svn-id: svn://svn.chromium.org/blink/trunk@177292 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ohrn
Ensure that the controls attribute is correctly reflected in JS.
Review URL: https://codereview.chromium.org/351213007

git-svn-id: svn://svn.chromium.org/blink/trunk@177287 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ohrn
Increase storage for Java exception information.
Nested exceptions have multiple stack traces with the most important one at the end.

BUG=389474

Review URL: https://codereview.chromium.org/358853002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@280793 0039d316-1c4b-4281-b951-d872f2087c98
philipj
Add UseCounter for the Mozilla-style fullscreen error handling exemptions
webkitRequestFullScreen skips some checks that webkitRequestFullscreen
and other modes have.

It is unlikely that the prefixed fullscreen APIs can be removed any time
soon, so trying to reduce the differences between them is worthwhile.

Review URL: https://codereview.chromium.org/363493002

git-svn-id: svn://svn.chromium.org/blink/trunk@177284 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Test adding a <source> element after removing a failed candidate
Review URL: https://codereview.chromium.org/360103003

git-svn-id: svn://svn.chromium.org/blink/trunk@177255 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Use IDL default argument value for Range.collapse()'s toStart argument
Replace the existing [Default=Undefined] extended attribute, which since
undefined coerces to false means the same thing, with the actual default
value that's in the specification.

BUG=258153

Review URL: https://codereview.chromium.org/356103003

git-svn-id: svn://svn.chromium.org/blink/trunk@177235 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Simplify SVGTextQuery::modifyStartEndPositionsRespectingLigatures
Simplify this method by passing it the fragment in question, and then use
SVGTextFragment::metricsListOffset to get a reasonable starting point.
Rewrite the big loop into two simpler loops - one for each end-point.
This shaves another ~15% off the TC in the bug (on top of [1]).

[1] https://codereview.chromium.org/359783002/

BUG=267504

Review URL: https://codereview.chromium.org/355373003

git-svn-id: svn://svn.chromium.org/blink/trunk@177231 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Add per-fragment early-out for getCharNumAtPosition
Since this is a spatial query, and a SVGTextFragment already contain an
approximation of it's own bounds, we can use those to perform a reasonably
efficient early-rejection test.
As an example: A TC using the textPath-data from issue 267504 [1] and a
mouse-move handler that uses getCharNumAtPosition to check which
"character" (glyph) is under the pointer consumes 0.005-0.2ms, compared to
0.2-0.5ms without this patch (before the CL in [2], this was 5-10ms!).
The TC mentioned in [2] now also weighs in at a few thousand us at worst.

[1] http://jsbin.com/imajow/1/quiet
[2] https://codereview.chromium.org/353003002

Review URL: https://codereview.chromium.org/355173002

git-svn-id: svn://svn.chromium.org/blink/trunk@177230 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
IDL: For DOMString? attribute getters, use null string to represent null
Same as we do for wrapper type attributes, where a null pointer is used
to represent a null Javascript value, use a null string (one for which
WTF::String::isNull() returns true) to represent a null Javascript value
for nullable DOMString attributes.

Review URL: https://codereview.chromium.org/338843005

git-svn-id: svn://svn.chromium.org/blink/trunk@177221 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Update LeakExpectations wrt shared worker tests.
Sync expectations after r177178.

TBR=kouhei@chromium.org
BUG=364390
NOTRY=true

Review URL: https://codereview.chromium.org/344483004

git-svn-id: svn://svn.chromium.org/blink/trunk@177205 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Disallow fullscreen from within <frame>, even with allowfullscreen
This was fixed once before in WebKit:
http://trac.webkit.org/changeset/84706

Unfortunately, webkitfullscreenallowed was the wrong attribute name
and it was added to the wrong <frame> element, so the test didn't
catch when this regressed some time between then and now.

The updated test has been verified to fail without this fix.

BUG=390041

Review URL: https://codereview.chromium.org/356303004

git-svn-id: svn://svn.chromium.org/blink/trunk@177204 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Add a UseCounter for legacy fullscreen key event filtering
Mozilla have already dropped the flags argument to mozRequestFullScreen,
which is where ALLOW_KEYBOARD_INPUT is specified.

Review URL: https://codereview.chromium.org/358283002

git-svn-id: svn://svn.chromium.org/blink/trunk@177198 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Clarify FullscreenElementStack::addDocumentToFullScreenChangeEventQueue
Review URL: https://codereview.chromium.org/354393002

git-svn-id: svn://svn.chromium.org/blink/trunk@177197 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Harden a fullscreen transition test
Since the test uses only timeouts and no events, it passes even if the
webkitRequestFullScreen() call fails, as it would e.g. if the
webkitallowfullscreen attribute were simply removed.

BUG=390008

Review URL: https://codereview.chromium.org/355343002

git-svn-id: svn://svn.chromium.org/blink/trunk@177196 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Avoid leaking a shared worker global scope on a failed script load.
The spec tells us,

 http://whatwg.org/specs/web-apps/current-work/#run-a-worker

that in case of failure to load the script of a (shared) worker, we
should report the failure and abort (step 4.) The global scope's
closing flag will be left as false, meaning that we can safely shut
down and destroy the shared worker global scope. Do so.

R=
BUG=364390

Review URL: https://codereview.chromium.org/361443002

git-svn-id: svn://svn.chromium.org/blink/trunk@177178 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Make TextTrackCue's readonly attribute TextTrack? track nullable
http://whatwg.org/html#texttrackcue

TEST=LayoutTests/media/track/opera/interfaces/TextTrackCue/track.html

Review URL: https://codereview.chromium.org/356903006

git-svn-id: svn://svn.chromium.org/blink/trunk@177168 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Drop early-outs for "no boxes" in SVGTextQuery entrypoints
All entrypoints in SVGTextQuery start with check if the text content
element has any boxes. If it doesn't, a value representing "empty" is
returned. In all cases this value is the same as the default value of the
corresponding query-data. SVGTextQuery::executeQuery itself has no
problems handling this case (and will return 'false' as expected.)
Removing these early-outs means a few more cycles is needed in these
"degenerate" cases, although that seems like a small (and hopefully
reasonable) price to pay for less code (and duplication/exit-paths).

Review URL: https://codereview.chromium.org/358033005

git-svn-id: svn://svn.chromium.org/blink/trunk@177149 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Improve rejection test for character-based SVG text queries
Perform an intersection of the involved ranges to reject fragments early,
while still avoiding calls to mapStartEndPositionsIntoFragmentCoordinates.
This means the "cache" added in https://codereview.chromium.org/349223003
can be dropped, since we'll now never even reach it. This gives a moderate
speed-up - a few percent - on the original TC compared to using the cache.

BUG=267504

Review URL: https://codereview.chromium.org/359783002

git-svn-id: svn://svn.chromium.org/blink/trunk@177148 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Drop [TypeChecking=Nullable]; deduce from attribute type instead
[TypeChecking=Nullable] on a nullable attribute meant that the C++ getter
wasn't called with a "bool& isNull" argument, instead the C++ value in a
boolean context was used to determine nullness.

This was only used for attributes where the C++ value was a pointer, and
made perfect sense for such attributes. So much sense, in fact, that it
makes sense to let that be the default behavior for such attributes.

Review URL: https://codereview.chromium.org/352643005

git-svn-id: svn://svn.chromium.org/blink/trunk@177126 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Add [TypeChecking=Interface] on various methods in Document.idl
This adds type checks on some Node arguments in the generated bindings
code, and lets us drop the corresponding manual null checks and exception
throwing code in the implementations.

The type of exception thrown changes from DOMException (NOT_SUPPORTED_ERR)
to TypeError as a side-effect. This matches the Web IDL specification.

Review URL: https://codereview.chromium.org/360463005

git-svn-id: svn://svn.chromium.org/blink/trunk@177125 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Include error status code in console message for non-CORS response.
While CORS is concerned with the access control headers that come
back in the response and not its status code, an error response
(status code >= 400) containing no CORS headers is most likely an
indication of the server not being configured correctly.

To potentially help the user/developer more quickly diagnose that as
the problem, include the status code in the console message that's
emitted for the failed CORS resource sharing check.

R=
BUG=269192

Review URL: https://codereview.chromium.org/332633006

git-svn-id: svn://svn.chromium.org/blink/trunk@177116 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Remove meaningless uses of [TypeChecking=Nullable]
[TypeChecking=Nullable] only serves a purpose on nullable attributes.

Using it on interfaces without nullable attributes, or methods (even those
with nullable arguments) serves no purpose. Using it on individual
arguments also serves no purpose; in fact, the [TypeChecking] extended
attribute is not supported at all on arguments.

This patch does not change any generated code.

Review URL: https://codereview.chromium.org/356843007

git-svn-id: svn://svn.chromium.org/blink/trunk@177108 bbb929c8-8fbe-4397-9dbb-9b2b20218538
andersr
Resolve percent lengths for abs. positioned tables against padding box.
According to CSS2.1: "[...] absolutely positioned elements whose
containing block is based on a block container element, the percentage
is calculated with respect to the width of the padding box of that
element".

BUG=366123

Review URL: https://codereview.chromium.org/341523002

git-svn-id: svn://svn.chromium.org/blink/trunk@177101 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
IDL: Avoid double type-check for variadic interface type arguments
With [TypeChecking=Interface], two type-checks would be emitted for
variadic arguments; one as if the argument wasn't variadic, checking only
the first actual argument, and then another one checking each actual
argument.

Review URL: https://codereview.chromium.org/359763002

git-svn-id: svn://svn.chromium.org/blink/trunk@177094 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sebastianl
binary_size_tool: fix for ambiguous addr2line output
Sometimes the output of addr2line is ambiguous, example:
  unicode.cc:0
and does not include the absolute path of the source file. This fix
is mostly a port of andrewhaydens solution to disambiguate the path.

BUG=

Review URL: https://codereview.chromium.org/339853004

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@280303 0039d316-1c4b-4281-b951-d872f2087c98
fs
Simplify (and optimize) SVGTextQuery::characterNumberAtPositionCallback
This method needs to iterate the glyphs within a fragment and check if the
queried point is contained within any of them.
Currently a fragment offset is converted to a offset that's suitable for
passing to mapStartEndPositionsIntoFragmentCoordinates - which then in
turn maps it into a text box-relative offset and then runs (the costly)
modifyStartEndPositionsRespectingLigatures to check if the current range
happen to fall within a "multicharacter glyph" (ligatures etc.), and then
expand the range appropriately.
This is a lot of work, that is better performed by finding the index within
the text metrics list for the corresponding RenderSVGInlineText object,
and then step through the fragment using the lengths of the individual
glyphs.
The impact on performance will vary with the length of fragments and the
length of the text content.
For a case like:

  <text ...>(AAAAAAAAAA ){99}AAAAAAAAAA</text>

  (100 groups of ten A's separated by a single whitespace)

with a negative query, the speed-up is ~1.2x. With 'word-spacing' added
(to get more fragments) the speed-up becomes ~8.7x.

Review URL: https://codereview.chromium.org/353003002

git-svn-id: svn://svn.chromium.org/blink/trunk@177089 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
stub out debug::StackTrace().Print() when using uclibc
This is a followup from https://codereview.chromium.org/228753003 which expands the subset of chromium that should be possible to build with uClibc.

BUG=386961

Review URL: https://codereview.chromium.org/354873002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@280289 0039d316-1c4b-4281-b951-d872f2087c98
sigbjornf
Oilpan: fix build after r177060
Add missing & now-needed V8ValueTraits<> specialization for HeapVector.

R=haraken@chromium.org
BUG=369451

Review URL: https://codereview.chromium.org/350293004

git-svn-id: svn://svn.chromium.org/blink/trunk@177079 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Make FullscreenElementStack methods private where appropriate
Review URL: https://codereview.chromium.org/359473008

git-svn-id: svn://svn.chromium.org/blink/trunk@177063 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Introduce FullscreenElementStack::RequestType
This replaces flags + FullScreenCheckType, for a few reasons:

 1. An UnprefixedRequest will be added, for which neither
    ALLOW_KEYBOARD_INPUT nor FullScreenCheckType is possible. Not all
    previously possible combinations are possible, either.

 2. An enum is clearer than flags at the call site. In particular,
    0 was passed to HTMLMediaElement::enterFullscreen() which would
    disallow keyboard input, which was not obivous and possibly not
    even the original intention. The behavior was preserved but should
    probably be changed to allow keyboard input in a future patch.

 3. LEGACY_MOZILLA_REQUEST as a public part of Element.h is weird.

BUG=383813

Review URL: https://codereview.chromium.org/356933002

git-svn-id: svn://svn.chromium.org/blink/trunk@177061 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ed
Fixup for test (was missing a closing tag).
Add another test for empty (but rendered) paths.

BUG=388676

Review URL: https://codereview.chromium.org/357943002

git-svn-id: svn://svn.chromium.org/blink/trunk@177059 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Use HTMLMediaElement's helpers for the controls fullscreen button
This isolates ExemptIFrameAllowFullScreenRequirement to a single call
site and makes the code more readable.

R=acolwell@chromium.org

Review URL: https://codereview.chromium.org/339903005

git-svn-id: svn://svn.chromium.org/blink/trunk@177045 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Use IDL argument default values for Text()/Comment() constructors
The 'data' argument should default to "", not null.

BUG=258153

Review URL: https://codereview.chromium.org/346213004

git-svn-id: svn://svn.chromium.org/blink/trunk@177016 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Include wtf/RefCounted.h less often in modules/
With Oilpan enabled by default, tidy up #include use somewhat.

R=haraken@chromium.org
BUG=340522

Review URL: https://codereview.chromium.org/334263022

git-svn-id: svn://svn.chromium.org/blink/trunk@177014 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
IDL: Use V8StringResource<WithNullCheck> for nullable DOMString
For methods this means that the two methods

  void f(DOMString? arg)
  void g([TreatNullAs=NullString] DOMString arg)

behave the same. Before this fix, the nullability of f()'s argument was
simply ignored.

For attributes this means that the C++ setter is called with a null string
if a null value is assigned to the attribute.

There are no CG changes since there are neither nullable string arguments
nor writable nullable string attributes in our IDL files. There are such
things in specifications, so supporting this is meaningful.

Review URL: https://codereview.chromium.org/345883004

git-svn-id: svn://svn.chromium.org/blink/trunk@176998 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: update test expectations.
fast/dom/StyleSheet/gc-declaration-parent-rule.html is another expected
CSSRule wrapper failure.

TBR=haraken@chromium.org,wibling@chromium.org
BUG=370906
NOTRY=true

Review URL: https://codereview.chromium.org/339203008

git-svn-id: svn://svn.chromium.org/blink/trunk@176986 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
IDL: fix code generation for attributes with [PutForwards]
When an attribute forwards puts to another attribute, most details in the
generated setter code depend on the target (forwarded-to) attribute's type
and attributes rather than on those of the source attribute (that is being
forwarded.)

If the target attribute (or its interface) has [TypeChecking=Interface]
and an interface type, the value set should be checked against that
interface type. Likewise, if the source attribute (or its interface) has
[TypeChecking=Interface] and an interface type, the value set should *not*
be checked against it, since that's not what is being set.

For instance, given

  [TypeChecking=Interface]
  interface Document {
    [PutForwards=href] attribute Location location;
  }

the setter should not check that the value to set is a Location object,
since it will actually be converted to a string and assigned to the
location object's href attribute, which is a DOMString attribute.

Also, whether the setter needs an ExceptionState also depends on the
target attribute's type and [RaisesException], not the source attribute's,
since it's the conversion to the target attribute's type and/or the target
attribute's actual setter that would be needing (or not) the exception
state.

Review URL: https://codereview.chromium.org/353973002

git-svn-id: svn://svn.chromium.org/blink/trunk@176985 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Mark screen_orientation/page-visibility.html as flaky.
TBR=ch.dumez@samsung.com,mlamouri@chromium.org
BUG=389047
NOTRY=true

Review URL: https://codereview.chromium.org/336863006

git-svn-id: svn://svn.chromium.org/blink/trunk@176973 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ed
[SVG2] Elements that don't render shouldn't contribute to ancestor bboxes.
Based on Nikos Andronikos' patch in https://bugs.webkit.org/show_bug.cgi?id=134184.

SVG elements that have rendering disabled should not contribute to any ancestor elements bounding box.
Examples of elements with rendering disabled:
  - basic shape with width <= 0 or height <= 0
  - path with no path data (d attribute missing or empty)
  - polyline or polygon element with no point data (points attribute missing or empty)

BUG=388676

Review URL: https://codereview.chromium.org/355813004

git-svn-id: svn://svn.chromium.org/blink/trunk@176972 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Let FullscreenElementStack methods take references where possible
The main motivation is requestFullScreenForElement, which handled the
Element* argument being null even though there's no way that could
happen. The fallback to document()->documentElement() was unreachable.

Get rid of fullScreenIsAllowedForElement since it was only used in a
single place.

Review URL: https://codereview.chromium.org/359453002

git-svn-id: svn://svn.chromium.org/blink/trunk@176968 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: make shutdown of plugin container objects work better.
The plugin container object/widget that's kept by the plugin element has
a destructor that accesses its element's document in a couple of ways:

 - Optionally notifying that a touch event handler has been removed.
 - Tries to notify element (and its document) that compositing update
   is needed.
 - Indirectly clears out the script objects registered on the document
   frame's ScriptController when destroying the container's plugin object.

With Oilpan, none of these can be done during finalization as the document
cannot be assumed to be alive.

To address, introduce an explicit detach() step for when the element is
cleanly removed from the document (along with its container.) Otherwise,
the plugin container is assumed to go away at the same time as the
element (and the document.) The container's destructor will then only
notify any off-heap objects.

R=tkent@chromium.org,haraken@chromium.org
BUG=340522

Review URL: https://codereview.chromium.org/357443005

git-svn-id: svn://svn.chromium.org/blink/trunk@176967 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Add missing owner check to form's "named property retrieval" over images.
If the named lookup for a form doesn't match the id/name of any listed
elements, the <img> elements should be considered. But only those being
descendants of the form itself.

The owner check simply wasn't included; added here.

R=tkent@chromium.org
BUG=387312

Review URL: https://codereview.chromium.org/354813004

git-svn-id: svn://svn.chromium.org/blink/trunk@176960 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
socket_dispatcher_host.h uses webrtc, skip when webrtc is disabled
https://codereview.chromium.org/264793017 added some webrtc specific
code to socket_dispatcher_host.h, and it only appears to be used for
webrtc as far as I can see.  So we should only include this file
elsewhere when webrtc is enabled.

BUG=363459
TEST=build with enable_webrtc=0

Review URL: https://codereview.chromium.org/345823003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@279857 0039d316-1c4b-4281-b951-d872f2087c98
sigbjornf
Rework EventSource CORS tests to be usable from Workers.
Improve EventSource-in-Workers test coverage by recasting existing
CORS tests as js-test.js tests, enabling them to also be testable from
within Workers. As was, we had no such Worker test coverage.

Also add two new tests covering failure-on-redirect handling: one due
to the CORS access check, the other due to CSP connect-src's.

R=abarth@chromium.org,mkwst@chromium.org
BUG=386520

Review URL: https://codereview.chromium.org/345813005

git-svn-id: svn://svn.chromium.org/blink/trunk@176950 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Let ThreadableLoaderClientWrapper's client handle failures better.
If the ThreadableLoaderClientWrapper is notified of a redirect or
CORS access check failure, it forwards that notification to its client.

Do that without first moving the wrapper object to a 'done' state, so as
to allow the client to fully handle the failure -- the worker threadable
loader will for instance signal an error-cancellation failure back at
the wrapper.

R=abarth@chromium.org,tyoshino@chromium.org
BUG=386520

Review URL: https://codereview.chromium.org/340363003

git-svn-id: svn://svn.chromium.org/blink/trunk@176945 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
IDL: [Unforgeable] on operation should imply DontDelete+ReadOnly
Previously, the only effect of [Unforgeable] on an operation was to put
the property on instance objects instead of on the prototype object.

All actual unforgeable operations -- Location's assign(), replace(),
reload(), toString() and valueOf() -- were additionally declared read-
only using [ReadOnly], which as a side-effect also made the properties
unconfigurable ("dont-delete").

This CL fixes [Unforgeable] on operations, and drops the then redundant
[ReadOnly] attributes from Location.idl. No CG changes.

BUG=

Review URL: https://codereview.chromium.org/350683004

git-svn-id: svn://svn.chromium.org/blink/trunk@176940 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Use IDL argument default values in Document.idl
The 'whatToShow' and 'filter' arguments to the createNodeIterator() and
createTreeWalker() methods have default values in the specification.
Add those default values in Document.idl, and get rid of the extra
overloads of Document::createNodeIterator() and ::createTreeWalker().

BUG=258153

Review URL: https://codereview.chromium.org/342403007

git-svn-id: svn://svn.chromium.org/blink/trunk@176938 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Optimize SVGTextQuery's character offset ligature adjustment query
For queries that take a code unit to compute some property for (basically
all *OfChar calls), the <start, end> range is mapped to the closest
glyph-boundary to allow queries within ligatures.
This adjustment step is O(N), N=number of glyphs within a text node, and
is performed for each fragment within a text box.
This means that for text boxes with a large number of fragments - and,
consequently, a large number of glyphs - there'll be O(N^2) behavior.
Since the <start, end> range is invariant for most queries, it should
suffice to compute the adjusted range once per text node [1].
The easiest way to achieve this is by adding a simple cache and reuse the
result of an adjustment query (for every fragment in a text box.)

This improves the runtime of the test in the bug from ~13s to ~120ms (or
approximately a factor 100) locally.

[1] This CL however only perform caching per text box in order to minimize
modifications to the actual adjustment code.

BUG=267504

Review URL: https://codereview.chromium.org/349223003

git-svn-id: svn://svn.chromium.org/blink/trunk@176937 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Handle multiple fragments in the getCharNumberAtPosition SVGTextQuery
The start position (and thus indirectly end position) used to compute the
extents of a glyph to check against the point is computed based on the
'processedCharacter' query data state. Said state is only updated after
each text box has been processed, meaning that for a text box with
multiple fragments, the offset of the fragment within the box needs to be
included to get the correct start/end position.

BUG=387725

Review URL: https://codereview.chromium.org/349573005

git-svn-id: svn://svn.chromium.org/blink/trunk@176936 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Use IDL argument default values in modules/encoding/
Replace bogus 'null' default values for DOMString/ScalarValueString
arguments with the actual default values from the spec, and remove the
handling of null strings in the C++ implementation.

BUG=258153

Review URL: https://codereview.chromium.org/356703002

git-svn-id: svn://svn.chromium.org/blink/trunk@176934 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
IDL: Fix handling of nullable NodeFilter / XPathNSResolver arguments
Arguments of NodeFilter and XPathNSResolver have a special case that adds
a ".release()" suffix to the argument expression. This special case didn't
trigger if the argument was nullable.

Review URL: https://codereview.chromium.org/340783012

git-svn-id: svn://svn.chromium.org/blink/trunk@176933 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Use IDL argument default values in modules/indexeddb/
Replace bogus 'null' default values for DOMString arguments with the
actual default values from the spec, and remove the handling of null
strings in the C++ implementation.

Also replace [Default=Undefined] on some boolean arguments with the
default value 'false' from the spec, which has the same effect.

BUG=258153

Review URL: https://codereview.chromium.org/332613004

git-svn-id: svn://svn.chromium.org/blink/trunk@176930 bbb929c8-8fbe-4397-9dbb-9b2b20218538
davve
Use available width for replaced element with intrinsic ratio but no dimensions
Prior to this patch, we walked up the ancestor chain to find a
specified width for replaced content with intrinsic ratio but no
intrinsic size nor any specified dimensions.

This is clearly wrong when the containing block has no specified width
but an implicitly set width through the constraint equation. In that
case we would walk past the containing block and possible find an
ancestor with specified width to size against.

An other illustration of why it's wrong in the context of a stf
container where we would possibly go outside the stf container to
fetch a width.

Both scenarios illustrated by tests.

After this patch, we instead always use the available width of the
container, to properly size inside a container with no specified size.

http://www.w3.org/TR/CSS2/visudet.html#inline-replaced-width

BUG=387705

Review URL: https://codereview.chromium.org/341773004

git-svn-id: svn://svn.chromium.org/blink/trunk@176929 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Fix inheritance of baseline-shift <length> values
Needs custom_inherit because of the enum+length combination.

BUG=304006

Review URL: https://codereview.chromium.org/330913005

git-svn-id: svn://svn.chromium.org/blink/trunk@176928 bbb929c8-8fbe-4397-9dbb-9b2b20218538
tmoniuszko
Fix creating platform font on Windows
fdwCharSet param changed from 0 to DEFAULT_CHARSET (which is defined to
1). ScriptShape fails to generate glyphs on Windows XP for some complex
scripts (Hindi text for instance) if font is created with fdwCharSet=0.

Other paramaters are unchanged because they still expand to 0.

BUG=361994

TEST=On Windows XP, go to Control Panel and Regional and
Language Options. Under Languages tab check Install files
for Complex Script and right-to-left languages (including
Thai) and Install files for East Asian languages. Click
Details and install Hindi language. Launch Chromium. Go to
advanced settings and go to Languages. Add Hindi language
and click Display Chromium in this language button. Restart
Chromium. Expected result: Hindi font glyphs should be
properly generated for all UI elements (tabs, menus,
notification panels).

Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=263001

Review URL: https://codereview.chromium.org/230793003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@279719 0039d316-1c4b-4281-b951-d872f2087c98
jl
IDL: fix handling of non-decimal and unsigned default values
The operation Document.createNodeIterator() has the argument
  optional unsigned long whatToShow = 0xFFFFFFFF
which exposes a few problems in the IDL scripts.

First, "0xFFFFFFFF" is rejected by int(x) in default_node_to_idl_literal().
Using int(x, base=0) solves this; int() then selects base 8, 10 or 16
automatically.

Second, for unsigned integer types, we should add a 'u' suffix to the
C++ integer literal, or it's not guaranteed to be valid, in particular not
in 32-bit builds. This is implemented by adding a utility function on
IdlType for converting an IdlLiteral to a C++ expression. This utility
function is also a natural place to add type compatibility checks in the
future, so include a FIXME about that.

BUG=258153

Review URL: https://codereview.chromium.org/352133002

git-svn-id: svn://svn.chromium.org/blink/trunk@176926 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove forward declared NSMenu/NSResponder from ChromeClient.h
This was added in http://trac.webkit.org/changeset/30740

Neither symbol is used in ChromeClient.h.

core/rendering/RenderThemeChromiumMac.h uses NSMenu, but appears to
get the declaration/definition from elsewhere, together with a few
other NS* symbols.

Review URL: https://codereview.chromium.org/352783003

git-svn-id: svn://svn.chromium.org/blink/trunk@176923 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove the ChromeClient.h include from RenderLayerCompositor.h
ChromeClient isn't used in RenderLayerCompositor.h at all, so put the
includes where they belong and reduce header dependencies somewhat.

Review URL: https://codereview.chromium.org/351003002

git-svn-id: svn://svn.chromium.org/blink/trunk@176922 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
IDL: Generate all constructor callbacks with the same template macro
Regular constructors and named constructors are similar enough that using
separate template macros to generate them mostly leads to duplicated code.

The actual difference is now more visible, since it takes the explicit
form

  {% if constructor.is_named_constructor %}
  // the difference
  {% endif %}

in the shared macro.

Review URL: https://codereview.chromium.org/349523004

git-svn-id: svn://svn.chromium.org/blink/trunk@176920 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Clarify comments about the role of the lex/parse table cache action
The comment claimed the explicit cache update step wasn't required, and
explained why we still did it. This was correct for a clean build, but
for an incremental build, when stale cache files might exist, it was
incorrect; the explicit cache update step is in fact required to refresh
a stale cache.

NOTRY=true

Review URL: https://codereview.chromium.org/335053003

git-svn-id: svn://svn.chromium.org/blink/trunk@176917 bbb929c8-8fbe-4397-9dbb-9b2b20218538
tmoniuszko
PlatformFontWin::DeriveFontWithHeight insensitive to base font's height
As a side effect this commit fixes also bug 149151 and allows https://codereview.chromium.org/230793003/ patch to be applied without breaking tests.

BUG=367092

Review URL: https://codereview.chromium.org/251773002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@279657 0039d316-1c4b-4281-b951-d872f2087c98
fs
Fix *-baseline computation for {text-,}after-edge/ideographic/baseline
Negative descents were assumed, although they are positive. Fix sign of
'descent' in the {text-,}after-edge and ideographic cases.
Also fix the obvious mistake in the 'baseline' case, where it ought to be
handled in a similar way as 'auto', and not just return the "computed"
alignment-baseline value.

Added an additional case to pre-existing test for alignment-baseline.

TEST=svg/custom/{alignment,dominant}-baseline-modes.svg (pre-existing)
BUG=143990

Review URL: https://codereview.chromium.org/331863014

git-svn-id: svn://svn.chromium.org/blink/trunk@176877 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Remove obsolete document wrapper creation in named constructors
For historical reasons, named constructor callbacks contained the code

  toV8(document, info.Holder(), isolate);

to ensure a document wrapper was created. This was necessary to ensure
the asynchronous lifetime of HTMLAudioElement and HTMLImageElement.

This is no longer the case, so drop the extra code.

R=haraken
BUG=

Review URL: https://codereview.chromium.org/353623003

git-svn-id: svn://svn.chromium.org/blink/trunk@176868 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove unnecessary Document.h includes in .cpp files
This change was made by removing the include everywhere, and then
restoring semi-manually until everything compiled again. This gives a
small reduction in recompilation when touching Document.h, from 1100
to 1074 steps locally.

Review URL: https://codereview.chromium.org/339793006

git-svn-id: svn://svn.chromium.org/blink/trunk@176867 bbb929c8-8fbe-4397-9dbb-9b2b20218538
bratell
binary_size: Easier-to-read output
It's easy to have to have to click a few levels down (in my case down
into / -> home -> bratell -> src -> chromium -> src). Remove the part
that seems to be an unnecessary prefix by assuming that everything
above cwd is not interesting.

Review URL: https://codereview.chromium.org/303453003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@279448 0039d316-1c4b-4281-b951-d872f2087c98
jl
IDL: Support argument default values
This also changes the code generated for existing null default values,
by dropping use of argumentOrNull() (which then becomes unused and is
removed) and setting the argument's local variable explicitly by
assigning "nullptr" to it.

The use of argumentOrNull() in V8HistoryCustom.cpp was redundant;
reading info[N] directly yields an undefined value, which is converted
to a null string by V8StringResource<WithUndefinedOrNullCheck>.

BUG=258153

Review URL: https://codereview.chromium.org/335113002

git-svn-id: svn://svn.chromium.org/blink/trunk@176861 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Outline ContentSecurityPolicy::document()
This allows the Document.h include to be removed from
ContentSecurityPolicy.h, which reduces recompilation when
touching Document.h from 1156 to 1101 steps locally.

Since document() was only used internally, make it private.

Review URL: https://codereview.chromium.org/348743006

git-svn-id: svn://svn.chromium.org/blink/trunk@176856 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Make better internal use of ContentSecurityPolicy::document()
Review URL: https://codereview.chromium.org/346263009

git-svn-id: svn://svn.chromium.org/blink/trunk@176852 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove the unused Document& argument to the TextTrack constructor
R=fs@opera.com

Review URL: https://codereview.chromium.org/352603002

git-svn-id: svn://svn.chromium.org/blink/trunk@176847 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
IDL: Support 'stringifier' keyword
Usable in one of these forms:

  stringifier;
  stringifier DOMString ();
  stringifier DOMString name();
  stringifier attribute DOMString name;

All cause a toString() method to be defined on the interface automatically.
The first two are equivalent, and call CPPClass::toString() to retrieve the
string value. The latter two use CPPClass::name() to retrieve the string
value and also declare a regular attribute and operation, respectively.

Changed all simple "DOMString toString()" occurrences in IDL files to use
"stringifier" instead.

BUG=306606

Review URL: https://codereview.chromium.org/345393004

git-svn-id: svn://svn.chromium.org/blink/trunk@176833 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Include Document.h in fewer headers
Since Document.h is included in so many different places this does not
amount to much recompilation savings (1165 -> 1155), but does put the
include where it belongs for future reduction patches.

R=haraken@chromium.org, jochen@chromium.org, morrita@chromium.org

Review URL: https://codereview.chromium.org/344813003

git-svn-id: svn://svn.chromium.org/blink/trunk@176831 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Switch URL and URLUtils interfaces over to use ScalarValueString.
R=arv@chromium.org,jsbell@chromium.org
BUG=303152

Review URL: https://codereview.chromium.org/331313011

git-svn-id: svn://svn.chromium.org/blink/trunk@176782 bbb929c8-8fbe-4397-9dbb-9b2b20218538
bratell
Don't use the empty string as an url in MemoryCacheTest.
MemoryCacheTest relies on KURL doing something useful with an empty string
that results in a non-empty string that can be used as hash key for
the MemoryCache. Better to not do that because KURL is being changed.

BUG=

Review URL: https://codereview.chromium.org/346263003

git-svn-id: svn://svn.chromium.org/blink/trunk@176773 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
IDL parser: implement Stringifier production
Emit a node with class 'Stringifier' for all stringifier variants.
If the stringifier is an attribute, this node has a child node that
represents the attribute. If the stringifier is an operation (named
or unnamed) the node has a child node that represents the operation.

BUG=306606

Review URL: https://codereview.chromium.org/329163002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@279097 0039d316-1c4b-4281-b951-d872f2087c98
davve
Remove excessive include of ActiveAnimations.h
CSSAnimations.h, having being changed 23 times in the last 90 days,
had prior to this patch roughly 507 targets depending on it. After
this patch, the number has shrunk to 17.

This patch removes unnecessary ActiveAnimation.h includes, from which
CSSAnimations.h is included.

Review URL: https://codereview.chromium.org/336163003

git-svn-id: svn://svn.chromium.org/blink/trunk@176748 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
IDL parser: fix rebuilding of (stale) cached parser tables
The yacc parser's tables are cached to improve build performance, and are
rebuilt by running blink_idl_parser.py directly, which simply initializes
the IDL parser and expects PLY (yacc.py) to write the cached tables as a
side-effect.

However, if the file containing the cached tables exists, then PLY will
instead try to load the stale cache. If that succeeds, it will disable
the rewriting, since there's no point in writing to the cache what was
just read from it.

Fix by always deleting the cache file whenever blink_idl_parser.py is
executed directly, before initializing the parser. This way, PLY will not
use cached tables, and will instead write the cache file.

BUG=387631

Review URL: https://codereview.chromium.org/332683004

git-svn-id: svn://svn.chromium.org/blink/trunk@176745 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: move MediaKeyError to the heap.
R=haraken@chromium.org
BUG=340522

Review URL: https://codereview.chromium.org/331803005

git-svn-id: svn://svn.chromium.org/blink/trunk@176742 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Fix typo ExeuctionContext -> ExecutionContext
NOTRY=true

Review URL: https://codereview.chromium.org/344723003

git-svn-id: svn://svn.chromium.org/blink/trunk@176740 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Extend ScalarValueString handling to include constructors.
ScalarValueString conversion may raise an exception; take that into
account when generating the constructor's code.

Also, common up various string-like and exception-raising tests
internally, making them properties over the underlying IDL types.

R=jsbell@chromium.org,haraken@chromium.org
BUG=

Review URL: https://codereview.chromium.org/338893004

git-svn-id: svn://svn.chromium.org/blink/trunk@176732 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Expose URLUtilsReadOnly.origin
Follow up on a recent URL spec addition,

 http://url.spec.whatwg.org/#urlutilsreadonly
 https://github.com/whatwg/url/commit/0027a2e

and add the |origin| property to URLUtilsReadOnly.

WorkerLocation is currently the only object implementing this interface,
so this addition lets scripts executing in Worker contexts look up the
serialized origin (of the script that initialized the Worker) via
self.location.origin.

R=
BUG=303152

Review URL: https://codereview.chromium.org/342553010

git-svn-id: svn://svn.chromium.org/blink/trunk@176712 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Include Page.h in fewer headers
This reduces the number of recompilation steps when touching:
Page.h: 362 -> 262
UseCounter.h: 509 -> 431

Review URL: https://codereview.chromium.org/349013002

git-svn-id: svn://svn.chromium.org/blink/trunk@176704 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: detach GeolocationController on being destroyed as a supplement.
If the LocalFrame supplementable signals destruction, detach from the
inspector agent and clear out the GeolocationClient reference after
having relayed the destruction notification.

Not doing both risks the inspector agent object accessing a what's
now effectively a dead object (with a dead client reference; for safety
we clear that out also.)

R=haraken@chromium.org
BUG=340522

Review URL: https://codereview.chromium.org/337053006

git-svn-id: svn://svn.chromium.org/blink/trunk@176692 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Include Event.h in fewer header files
Mostly due to the ExecutionContext.h change, this greatly reduces recompilation
when touching Event.h, from 1392 to 444 steps locally.

Review URL: https://codereview.chromium.org/341193009

git-svn-id: svn://svn.chromium.org/blink/trunk@176684 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r176674.
TBR=haraken@chromium.org
BUG=328961
NOTRY=true

Review URL: https://codereview.chromium.org/329853011

git-svn-id: svn://svn.chromium.org/blink/trunk@176679 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r176651
Remove the use of transition types over JSONValues.

R=haraken@chromium.org
BUG=
NOTRY=true

Review URL: https://codereview.chromium.org/341383002

git-svn-id: svn://svn.chromium.org/blink/trunk@176677 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Rework EventSource tests for better Worker test coverage.
Follow on from https://codereview.chromium.org/340363003/ and recast
the remaining Document-agnostic EventSource tests to also be usable from
a Worker context.

R=
BUG=386520

Review URL: https://codereview.chromium.org/347043002

git-svn-id: svn://svn.chromium.org/blink/trunk@176665 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove some includes from Document.h
Document.h is included a lot, so the less it includes the better. Also,
touching the removed header files will now cause less recompilation.

Review URL: https://codereview.chromium.org/343923004

git-svn-id: svn://svn.chromium.org/blink/trunk@176656 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
RenderView is null for import documents.
Documents for html imports have separate StyleEngines and separate lists of
pending stylesheets. However, they don't have a RenderView. In r176050 the
repaint was moved from the StyleEngine where non-master documents skipped
the repaint. Trying to do a repaint from a non-master document will crash
without a check for renderView().

I have added a renderView() check with an assert that checks that it happens
if we are in an import document. I did keep the changing of
m_pendingSheetLayout to IgnoreLayoutWithPendingSheets, since we
envidentially do set it to DidLayoutWithPendingSheets for import documents,
even before the r176050 change.

It is possible that the m_pendingSheetLayout machinery does nothing useful
for imported documents, but I frankly don't know how it should work.

I am only able to reproduce the crash in the layout test with --debug.

R=ojan@chromium.org,esprehn@chromium.org
BUG=386564

Review URL: https://codereview.chromium.org/330093003

git-svn-id: svn://svn.chromium.org/blink/trunk@176649 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove StyleResolver::documentSettings()
This is the only reason that Document.h needs to be included, so
removing this will allow that include to be removed (later).

Review URL: https://codereview.chromium.org/342373004

git-svn-id: svn://svn.chromium.org/blink/trunk@176643 bbb929c8-8fbe-4397-9dbb-9b2b20218538
joaoe
New ZipReader::ExtractCurrentEntryToString API.
New API which extract a zip entry into a memory buffer.

BUG=359428

Review URL: https://codereview.chromium.org/292443006

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@278766 0039d316-1c4b-4281-b951-d872f2087c98
sigbjornf
Oilpan: move MessagePortArray to the heap.
Complete the addition of Oilpan transition types for MessagePort, and
also move its array type to the heap.

R=haraken@chromium.org,adamk@chromium.org
BUG=340522

Review URL: https://codereview.chromium.org/344833002

git-svn-id: svn://svn.chromium.org/blink/trunk@176591 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: move BatteryStatus to the heap.
R=haraken@chromium.org,timvolodine@chromium.org
BUG=340522

Review URL: https://codereview.chromium.org/341053002

git-svn-id: svn://svn.chromium.org/blink/trunk@176525 bbb929c8-8fbe-4397-9dbb-9b2b20218538
davve
Remove KeyframeEffectModel.h include from StyleResolver.h
Replace the include with forward declarations.

Prior to this patch, KeyframeEffectModel.h had roughly 700 targets
depending on it. After this patch this number has shrunk to around 11.
In the last 90 days, KeyframeEffectModel.h was modified 13 times on
trunk, which is a relatively high number.

KeyframeEffectModel.h also pulls in a large amount of other animation
headers so they should see similar benefits.

Review URL: https://codereview.chromium.org/346803002

git-svn-id: svn://svn.chromium.org/blink/trunk@176517 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
IDL parser: align with current Web IDL specification
Mostly renumbered and restructured grammar productions.  Notable changes:

- add support for static attributes via StaticMember
- add support for built-in types ByteString and RegExp
- allow trailing comma in enum declarations

Depends on:
IDL parser: drop AttributeOrOperation and StaticAttribute overrides
https://codereview.chromium.org/336733002/
...or else breaks Blink compile.

Review URL: https://codereview.chromium.org/329853005

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@278365 0039d316-1c4b-4281-b951-d872f2087c98
fs
Map light-source oBB-relative coordinates to the user-space of the filter
The 'fePointLight' and 'feSpotLight' light-source elements for
'fe{Diffuse,Specular}Lighting' defines positions, and in the case of
the latter a 'look-at' point (implicit direction). When an SVG filter is
declared to use primitiveUnits=objectBoundingBox, these positions/points
needs to be mapped to the user-space of the filter.
This is achieved by adding a new method resolve3dPoint() to Filter, and
perform the coordinate space mapping when creating the various
LightSources.
Open-code SVGFELightElement::findLightSource() in it's sources to avoid
passing the Filter-instance around more than necessary.

BUG=176419

Review URL: https://codereview.chromium.org/337903003

git-svn-id: svn://svn.chromium.org/blink/trunk@176499 bbb929c8-8fbe-4397-9dbb-9b2b20218538
davve
Make replaced preferred widths independent on available width
Prior to this patch, a replaced element with intrinsic ratio but with
no intrinsic width nor height and with 'width', 'height' both computed
values of 'auto', would have preferred width and preferred minimal
width that depended on the available width of the container.

After this patch, such a replaced element will have zero preferred
width and zero preferred minimal width.

Example:

<!doctype html>
<div style="width: 200px">
  <svg viewBox="0 0 1 1" style="background: blue">
  </svg>
<div>

<svg> becomes a 200x200 blue rectangle, intrinsic ratio (1) comes from
viewBox attribute. Preferred minimal width and preferred width would
be 200px prior to patch.

Changing the width of <div> would require recalculating preferred
widths on <svg>, something we rather not do, and does not currently
do. (See RenderReplaced::needsPreferredWidthsRecalculation()). This
means preferred minimal widths was left with stale values after
changes to the container.

The new behavior matches Firefox but is not yet in spec, possibly
because the sizing of such replaced element is undefined in CSS 2.1,
even though there is a suggestion, followed by Blink, in the spec.

BUG=382922

Review URL: https://codereview.chromium.org/325183002

git-svn-id: svn://svn.chromium.org/blink/trunk@176456 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Include HTMLFrameOwnerElement.h in fewer headers
Because HTMLFrameOwnerElement.h includes Document.h, the consequence is
mostly that Document.h includes need to be added.

Locally, this reduces the number of recompilation steps when touching
HTMLFrameOwnerElement.h from 579 to 117, and when touching Document.h
from 1214 to 1160.

There is a risk of performance regressions due to outlining
Frame::deprecatedLocalOwner().

Review URL: https://codereview.chromium.org/343593002

git-svn-id: svn://svn.chromium.org/blink/trunk@176433 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Fix typo checkConnectedSubf(r)ameCountIsConsistent
Review URL: https://codereview.chromium.org/340813002

git-svn-id: svn://svn.chromium.org/blink/trunk@176419 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix MediaController crashes after r176358.
MediaController::trace() needs to have the declaration of ExecutionContext
available, so as to determine what NeedsAdjustAndMark<> resolves to for
its (weak) ExecutionContext member.

R=haraken@chromium.org,zerny@chromium.org
BUG=
NOTRY=true

Review URL: https://codereview.chromium.org/344443008

git-svn-id: svn://svn.chromium.org/blink/trunk@176415 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Evaluate MediaQueryLists on actual media changes only.
MediaQueryLists were re-evaluated for every styleResolverChanged(). The
evaluation of MediaQueryLists can only change when some media type or
features change. That is signalled through mediaQueryAffectingValueChanged().
Set m_evaluateMediaQueriesOnStyleRecalc there instead.

Since the media queries don't change this is not noticable through layout
or unit testing.

R=esprehn@chromium.org
BUG=382894

Review URL: https://codereview.chromium.org/322043008

git-svn-id: svn://svn.chromium.org/blink/trunk@176406 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
IDL parser: drop AttributeOrOperation and StaticAttribute overrides
Static attributes are now supported by the base IDL parser, so these
overrides are no longer needed.

Followup to:
IDL parser: add StaticAttribute production
https://codereview.chromium.org/333853002/

...and prep for:
IDL parser: align with current Web IDL specification
https://codereview.chromium.org/329853005/

Review URL: https://codereview.chromium.org/336733002

git-svn-id: svn://svn.chromium.org/blink/trunk@176398 bbb929c8-8fbe-4397-9dbb-9b2b20218538
davve
Remove unused RenderReplaced::hasReplacedLogicalWidth()
Last user was removed with
http://src.chromium.org/viewvc/blink?view=revision&revision=171958

Review URL: https://codereview.chromium.org/341503002

git-svn-id: svn://svn.chromium.org/blink/trunk@176394 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
IDL: reuse more code between CG for methods and constructors
The CG for constructors and named constructors had its own simplified
mechanism for generating the actual call to the C++ constructor, rather
than using v8_methods.cpp_value(). Except for constructors with
optional arguments without default values, which used cpp_value() via
v8_methods.generate_argument() to generate the "short-cut" call used
when the function is called without the optional arguments.

With this patch, v8_methods.cpp_value() is used for all calls. This
will make it easier to adjust the handling of arguments later on in the
more complex cases.

Some IDL files that declare named constructors are modified by adding
ConstructorCallWith=Document, which was previously implied for named
constructors.

BUG=258153

Review URL: https://codereview.chromium.org/340443004

git-svn-id: svn://svn.chromium.org/blink/trunk@176390 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Wrong pending sheets test causing FOUC.
In r176050, moving the full view repaint from StyleEngine to Document, the
check changed from !hasPendingSheets() to haveStylesheetsLoaded(). The
difference is that m_ignorePendingStylesheets affected the result of the
check which causes a FOUC in named BUG.

BUG=384969

Review URL: https://codereview.chromium.org/339573005

git-svn-id: svn://svn.chromium.org/blink/trunk@176367 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
Remove dead neonDrawLighting code
FELightingNEON.h's inline FELighting::platformApplyNeon() method refers
to an extern neonDrawLighting symbol.  This function is implemented in
assembly in WebKit but does not exist in blink.  This must then be dead
code (otherwise there would have been complaints).

The only reference to platformApplyNeon that I can find is an ifdef'ed
call in FELighting::platformApply(), which is only enabled if the target
supports NEON but not Thumb (which I guess must be very uncommon).

BUG=381082
TEST=build with arm_neon=1 arm_thumb=0

Review URL: https://codereview.chromium.org/313303003

git-svn-id: svn://svn.chromium.org/blink/trunk@176365 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Outline Element::shouldIgnoreAttributeCase()
This allows the Document.h include to be removed from Element.h, which
reduces the amount of recompilation when touching Document.h by about
12%, from 1382 steps to 1214 steps locally.

The only place outside of Element.cpp that uses this function is
NamedNodeMap::removeNamedItem, which is very rarely used:
http://www.chromestatus.com/metrics/feature/timeline/popularity/308

In other words, the performance difference should not matter.

Review URL: https://codereview.chromium.org/334413005

git-svn-id: svn://svn.chromium.org/blink/trunk@176358 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
IDL parser: add StaticAttribute production
This is a straight upstream from Blink's IDL parser, which will allow
us to drop some overrides there, which in turn will allow us to update
this parser to use the grammar of current Web IDL, where static
attributes are supported differently (via a StaticMember production
that handles both static attributes and static methods.)

Preparation for:
IDL parser: drop AttributeOrOperation and StaticAttribute overrides
https://codereview.chromium.org/336733002/ (in Blink)

...and ultimately for:
IDL parser: align with current Web IDL specification
https://codereview.chromium.org/329853005/

BUG=

Review URL: https://codereview.chromium.org/333853002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@277843 0039d316-1c4b-4281-b951-d872f2087c98
jiangj
Build content with OS X 10.9 SDK
glFlush() in render_widget_host_view_mac.mm requires gl.h since
10.9 SDK (I suppose it was included implicitly before).

Review URL: https://codereview.chromium.org/332383002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@277817 0039d316-1c4b-4281-b951-d872f2087c98
sigbjornf
Oilpan: move platform speech objects to the heap.
With the Speech API now using Oilpan by default, follow up and also
heap allocate the platform-level intermediary objects.

R=tkent@chromium.org,haraken@chromium.org
BUG=340522

Review URL: https://codereview.chromium.org/339823003

git-svn-id: svn://svn.chromium.org/blink/trunk@176321 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Retire now-unused WorkerGlobalScope subobject accessors.
R=haraken@chromium.org
BUG=

Review URL: https://codereview.chromium.org/342463002

git-svn-id: svn://svn.chromium.org/blink/trunk@176320 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Implement AudioTrack, AudioTrackList, VideoTrack, and VideoTrackList
This is based on Aaron Colwell's patch:
https://codereview.chromium.org/170233009/#ps270001

BUG=249427
TEST=LayoutTests/media/avtracklists.html

Review URL: https://codereview.chromium.org/284513003

git-svn-id: svn://svn.chromium.org/blink/trunk@176224 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: move a page's UndoStack to the heap.
Avoids its unnecessary persistents by doing so.

R=tkent@chromium.org
BUG=357163

Review URL: https://codereview.chromium.org/333313002

git-svn-id: svn://svn.chromium.org/blink/trunk@176217 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jadahl
dmprof: Fix gpu matchers in android.browser policy
BUG=

Review URL: https://codereview.chromium.org/328553006

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@277417 0039d316-1c4b-4281-b951-d872f2087c98
mpichlinski
CHR-1796: Implement UIATextProvider::get_Value method.
On Windows 8 LDTP gettextvalue function uses
IRawElementProviderSimple::GetPatternProvider for UIA_ValuePatternId and
method IValueProvider::get_Value which is not implemented instead of
IAccessible::get_accValue.

BUG=384224

Review URL: https://codereview.chromium.org/337453002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@277416 0039d316-1c4b-4281-b951-d872f2087c98
sigbjornf
Oilpan: move page's ValidationMessageClient to the heap.
Avoids keeping a bare pointer to the current anchor from the client
implementation object.

R=ager@chromium.org,zerny@chromium.org,haraken@chromium.org,tkent@chromium.org
BUG=340522

Review URL: https://codereview.chromium.org/334153003

git-svn-id: svn://svn.chromium.org/blink/trunk@176206 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: have GeolocationInspectorAgent persistently track its controllers.
With GeolocationController (now back) on the heap, maintain a persistent
set of them from GeolocationInspectorAgent.

R=haraken@chromium.org,ager@chromium.org,zerny@chromium.org
BUG=304341

Review URL: https://codereview.chromium.org/332153002

git-svn-id: svn://svn.chromium.org/blink/trunk@176202 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
IDL: Support optional argument default value syntax
Adds support for parsing default values of different types, but
only handles null default values when generating code.

Replaces existing

  [Default=Null] optional SomeInterface arg
  [Default=NullString] optional DOMString arg

with the now equivalent

  optional SomeInterface arg = null
  optional DOMString arg = null

in IDL files, and drops support for those [Default] attributes.

No changes to generated code.

BUG=258153

Review URL: https://codereview.chromium.org/312683005

git-svn-id: svn://svn.chromium.org/blink/trunk@176200 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Transition networkState back to NETWORK_IDLE on fetch if preload=none
When a media element is marked with the preload hint 'none', a load is not
started until data is explicitly requested. The progress timer is however
still started, which means that a 'stalled' event will be fired after ~3s.
This is confusing, since loading never actually started in the first place.
Fix this by implementing (the "optional") step 3 from the 'resource fetch
algorithm'.

BUG=382505
BUG=284413

Review URL: https://codereview.chromium.org/327553002

git-svn-id: svn://svn.chromium.org/blink/trunk@176199 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r176183
R=haraken@chromium.org
BUG=305497
NOTRY=true

Review URL: https://codereview.chromium.org/332183002

git-svn-id: svn://svn.chromium.org/blink/trunk@176198 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ljagielski
NSSDecryptor::ReadAndParseSignons() - improved password form scheme detection,
when database row has non-empty realm, assume autofill::PasswordForm::SCHEME_BASIC.

BUG=375158

Review URL: https://codereview.chromium.org/306123004

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@277393 0039d316-1c4b-4281-b951-d872f2087c98
davve
Remove include of StyleResolverState.h from StyleResolver.h
Instead add includes to .cpp files that needs things that
StyleResolverState.h included for them.

This brings down the amount of recompilation drastically (from 
~720 to ~20) when touching files like FontBuilder.h or
StyleResolverState.h.

Review URL: https://codereview.chromium.org/327773004

git-svn-id: svn://svn.chromium.org/blink/trunk@176195 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Fix computation of animated transform w/ different from/to transform types
Calculating the animated value between two transforms of differing types
would give random results (and ASSERT in debug.)
Fix by requiring the effective 'from' value to have the same type as the
'to' value. If the types are not the same, then use a "zero transform" as
the 'from' value.

Also adjust the behavior of animateTransform additive to-animations in
this case by clearing the list in these cases too (matching Presto and
Gecko in this particular case.)

BUG=231409

Review URL: https://codereview.chromium.org/330813002

git-svn-id: svn://svn.chromium.org/blink/trunk@176193 bbb929c8-8fbe-4397-9dbb-9b2b20218538
davve
Remove unused method setZoomWithoutReturnValue
When the third parameter to PropertyWrapper was removed in
https://codereview.chromium.org/139273007 (legacy animation engine
removal) setZoomWithoutReturnValue lost its last caller.

Review URL: https://codereview.chromium.org/324063002

git-svn-id: svn://svn.chromium.org/blink/trunk@176182 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Revert of Disable the HTMLVideoElement-specific prefixed fullscreen API (2nd attempt) (https://codereview.chromium.org/251873002/)
Reason for revert:
Wait with removal until the unprefixed Fullscreen API has been shipped.

Original issue's description:
> Disable the HTMLVideoElement-specific prefixed fullscreen API (2nd attempt)
> 
> BUG=346236
> 
> Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=172693

Review URL: https://codereview.chromium.org/328303003

git-svn-id: svn://svn.chromium.org/blink/trunk@176144 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: trace Event.currentTarget.
Strongly keep track of the current target.

For tidiness, also trace the 'parent' back reference on the XHR progress
event throttling part object.

R=zerny@chromium.org,ager@chromium.org
BUG=340522

Review URL: https://codereview.chromium.org/330273002

git-svn-id: svn://svn.chromium.org/blink/trunk@176112 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mboc
Aura tooltips do not move on mouse move in case of many neighboring
views with the same tooltip label

BUG=Aura tooltips do not move on mouse move in case of many neighboring
views with the same tooltip label. This can be really uncomfortable
when working with lots of tabs with the same address on the
tab strip. Try creating ~30 startpage tabs and hover over one of them,
then move the cursor to others. The tooltip will just sit in the place
where it was first shown.

Review URL: https://codereview.chromium.org/213833018

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@277010 0039d316-1c4b-4281-b951-d872f2087c98
ed
[SVG] Cleanup: remove externalResourcesRequired attribute from parser.
HTML spec update:
http://html5.org/tools/web-apps-tracker?from=8674&to=8675

BUG=332066

Review URL: https://codereview.chromium.org/329103003

git-svn-id: svn://svn.chromium.org/blink/trunk@176107 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: convert remaining OwnPtr EventQueue uses.
R=haraken@chromium.org
BUG=

Review URL: https://codereview.chromium.org/336693006

git-svn-id: svn://svn.chromium.org/blink/trunk@176100 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ed
[SVG2] The exposed event target should be the <use> element.
Spec:
https://svgwg.org/svg2-draft/struct.html#UseElement

BUG=382872, 313438

Review URL: https://codereview.chromium.org/323343004

git-svn-id: svn://svn.chromium.org/blink/trunk@176090 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Sync TextTrackList.getTrackById IDL with spec and test it
http://whatwg.org/html#texttracklist

The test has also been submitted to web-platform-tests:
https://github.com/w3c/web-platform-tests/pull/1058

Review URL: https://codereview.chromium.org/336523002

git-svn-id: svn://svn.chromium.org/blink/trunk@176089 bbb929c8-8fbe-4397-9dbb-9b2b20218538
davve
Unapply effectiveZoom during SVG layout
Text layout in SVG is assumed to happen in unzoomed coordinates.
Prior to this patch, there was a special SVG mode in the
StyleResolver that disregarded zoom when resolving lengths for
SVG elements. That broke down during inheritance though, so a
better way to handle the SVG zoom model is for the SVG module to
remove zoom from style values itself.

BUG=382366

Review URL: https://codereview.chromium.org/323053002

git-svn-id: svn://svn.chromium.org/blink/trunk@176051 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Simplified code for styleResolverChanged.
Removed StyleResolverChange class by:

- Marking Document scope for recalc in the stylesheet collection class like
  we do for shadow scopes instead of propagating it up to Document.

- Move the check for doing full repaint after all stylesheets have been
  loaded to Document::styleResolverChanged.

Introduced a shouldUpdateDocumentStyleSheetCollection helper method.

R=esprehn@chromium.org,ojan@chromium.org

Review URL: https://codereview.chromium.org/330043002

git-svn-id: svn://svn.chromium.org/blink/trunk@176050 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ohrn
Add mime type information to the download database
BUG=328382

Review URL: https://codereview.chromium.org/319703002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@276775 0039d316-1c4b-4281-b951-d872f2087c98
fs
Fix resolving protocol-agnostic <svg:image> URLs in about:blank iframes
When resolving a protocol-agnostic URL against a base of 'about:blank',
the result would be an invalid (and empty) URL, because of missing special-
casing of 'about:blank' - which is present in
Document::completeURLWithOverride.
Fix by modifying SVGImageLoader::sourceURI to always resolve the URL using
Document::completeURLWithOverride to not miss out on this special-casing
logic for 'about:blank' base URLs.

BUG=379100

Review URL: https://codereview.chromium.org/329943003

git-svn-id: svn://svn.chromium.org/blink/trunk@176043 bbb929c8-8fbe-4397-9dbb-9b2b20218538
haavardm
Compile fix for OpenSSL on Mac and Windows.
OSCertHandle is not defined to OpenSSL's X509
on Mac/Windows.

BUG=None
TEST=None

Review URL: https://codereview.chromium.org/329143002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@276678 0039d316-1c4b-4281-b951-d872f2087c98
jl
IDL: support per-overload [RuntimeEnabled] extended attribute
If different overloads of a method have different [RuntimeEnabled]
extended attributes, check the runtime flags as part of overload
resolution instead of when configuring the prototype object template.
If the runtime feature is disabled, the overload resolution algorithm
will act as if the method did not exist.

If all overloads have the same [RuntimeEnabled] extended attribute,
it is checked when configured the prototype object template as for
regular non-overloaded methods.

BUG=339000

Review URL: https://codereview.chromium.org/299203002

git-svn-id: svn://svn.chromium.org/blink/trunk@176028 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Enable Oilpan by default in modules/speech/
R=dmazzoni@chromium.org,haraken@chromium.org,tommi@chromium.org,tkent@chromium.org
BUG=340522

Review URL: https://codereview.chromium.org/315133004

git-svn-id: svn://svn.chromium.org/blink/trunk@176025 bbb929c8-8fbe-4397-9dbb-9b2b20218538
bratell
binary_size: Avoid creating nodes with many thousand children.
If a bucket has too many thousand children the webapp (graph lib?)
hangs. Protect against the most common case by splitting up the
(No Path) section in chunks of 3000 symbols.

BUG=370377

Review URL: https://codereview.chromium.org/302443006

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@276650 0039d316-1c4b-4281-b951-d872f2087c98
sigbjornf
Make SpeechSynthesis gracefully handle ExecutionContext-less operation.
The SpeechSynthesis may lose its observed execution context and still
be accessed by the platform. Check if present before accessing the
context.

R=haraken@chromium.org
BUG=345061

Review URL: https://codereview.chromium.org/330603002

git-svn-id: svn://svn.chromium.org/blink/trunk@176018 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
IDL: restructure logic handling registration of methods
Methods are registered in one of three different ways on an interface's
prototype object;

 1) via an entry in a static array,
 2) via custom code in the interface's configure{{class}}Template(), or
 3) via custom code in its installPerContextEnabledMethods();

depending on whether the method is static and its extended attributes.
E.g., [RuntimeEnabled] leads to 2 and [PerContextEnabled] leads to 3.

The old method of setting flags on each method signalling how it ought
to be registered, and filtering the single list of methods in the
templates based on these flags, was becoming seriously unwieldy for
complicated cases such as overloaded methods.

To address this, change the logic to instead filter methods into three
lists in the scripts, one for each type of registration. The templates
simply use a different list of methods when generating the different
code blocks.

For overloaded methods, take the attributes of all overloads into
account, instead of looking at only one of them (the first in IDL file
order, as it were.)

Also introduce a compile-time check that a set of overloaded methods
doesn't contain methods with conflicting extended attributes that affect
how the method ought to be registered.

BUG=339000

Review URL: https://codereview.chromium.org/328663003

git-svn-id: svn://svn.chromium.org/blink/trunk@176017 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ed
[SVG2] Add support for the 'turn' unit in <angle>.
Spec:
https://svgwg.org/svg2-draft/painting.html#OrientAttribute
http://www.w3.org/TR/2012/WD-css3-values-20120308/#angles

BUG=377514

Review URL: https://codereview.chromium.org/303263008

git-svn-id: svn://svn.chromium.org/blink/trunk@176014 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mateuszs
Recent update to Windows 8.1 added new default High DPI mode - 250% for qHD displays.
This is initial work package to reflect this change, making it possible to add hi-resolution resources in the future (if needed).

Review URL: https://codereview.chromium.org/327503003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@276551 0039d316-1c4b-4281-b951-d872f2087c98
sigbjornf
Oilpan: move Page's PointerLockController object to the heap.
Move this Page-owned controller object to the heap, allowing a pair
of Persistent<> references to be removed in the process.

R=ager@chromium.org
BUG=340522

Review URL: https://codereview.chromium.org/328133002

git-svn-id: svn://svn.chromium.org/blink/trunk@175957 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: make FrameLoadRequest be a stack allocated object.
Simplify this stack allocated object's handling of heap references.

R=ager@chromium.org
BUG=340522

Review URL: https://codereview.chromium.org/328113004

git-svn-id: svn://svn.chromium.org/blink/trunk@175953 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Reset computed size of the <canvas> FontDescription when setting CRC2D.font
Avoid inheriting the zoom-factor when setting the CanvasRenderingContext2D
'font' property to the same font as is computed for the <canvas> element.
In this case the font descriptions would be considered the same, and hence
the font size computed using the effective zoom of the page would be used.

BUG=381989

Review URL: https://codereview.chromium.org/326893003

git-svn-id: svn://svn.chromium.org/blink/trunk@175950 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: have MediaController weakly refer to its media elements.
Simplify finalization of 'slaved' media elements by not requiring them
to unregister with their MediaController, but have it (the controller)
weakly refer to them instead.

Previously, a RefPtr<> was kept on the media element to make that
unregistration safe during finalization. This is no longer needed, and
a simpler Member reference from the media element is used instead.

R=haraken@chromium.org,ager@chromium.org,acolwell@chromium.org
BUG=357163

Review URL: https://codereview.chromium.org/314113008

git-svn-id: svn://svn.chromium.org/blink/trunk@175930 bbb929c8-8fbe-4397-9dbb-9b2b20218538
emoller
binary_size: Fix jobs number parsing
BUG=

Review URL: https://codereview.chromium.org/321163003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@276164 0039d316-1c4b-4281-b951-d872f2087c98
sigbjornf
Oilpan: remove RawPtr<> usage for WebNotification.
Go the whole hog and use (non-const) bare pointers for the conversion
constructor and assignment operator.

R=
BUG=340522

Review URL: https://codereview.chromium.org/329463004

git-svn-id: svn://svn.chromium.org/blink/trunk@175875 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
add a user-provided constructor to emulated c++11 NullPtr
According to this GCC bug/patch, a user-specified constructor is
required for the emulated C++11 nullptr_t class if we want to be able
to create const nullptr_t objects without an explicit initializer,
a la: "const std::nullptr_t nullptr;"

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=42844

This fixes a build failure in GCC 4.5.

BUG=374431

Review URL: https://codereview.chromium.org/322913002

git-svn-id: svn://svn.chromium.org/blink/trunk@175874 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Enable Oilpan by default in modules/speech/
R=dmazzoni@chromium.org,haraken@chromium.org,tommi@chromium.org,tkent@chromium.org
BUG=340522

Review URL: https://codereview.chromium.org/315133004

git-svn-id: svn://svn.chromium.org/blink/trunk@175872 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Enable Oilpan by default in modules/filesystem/
R=haraken@chromium.org,tzik@chromium.org,tkent@chromium.org
BUG=340522

Review URL: https://codereview.chromium.org/314333002

git-svn-id: svn://svn.chromium.org/blink/trunk@175867 bbb929c8-8fbe-4397-9dbb-9b2b20218538
bratell
binary_size: Check debug data format before starting.
If the debug data format is DWARF4 and binutils is not new enough
the output will be more or less useless (no files will be detected).
Detect that case early instead of having the user wait for many hours
for something that can't be used.

BUG=370378

Review URL: https://codereview.chromium.org/302633003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@275866 0039d316-1c4b-4281-b951-d872f2087c98
ed
[SVG2] Allow leading and trailing whitespace in svg attributes using
<integer>, <angle>, <number>, <length> and <percentage>.

BUG=377503,339899

Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=175574

Review URL: https://codereview.chromium.org/302643004

git-svn-id: svn://svn.chromium.org/blink/trunk@175785 bbb929c8-8fbe-4397-9dbb-9b2b20218538
davve
Teach SVGImage::containerSize() to deduce intrinsic values
When an SVG has either intrinsic width or height but not both, and a
intrinsic ratio, the missing intrinsic width or height can be
calculated. Doing so enables us to return correct intrinsic width and
height for SVG images in more cases when the image has no renderer.

Also, this patch removes the unspecified use of the viewBox attribute
as the source of intrinsic size. A small number of tests depended on
this and has been updated. The reasoning to make this change is
because we don't use the viewBox for intrinsic size in any other
context than SVGImage. And we only use it until the renderer has a
containerSize() anyway.

http://www.whatwg.org/specs/web-apps/current-work/multipage/edits.html#dom-img-width
http://www.whatwg.org/specs/web-apps/current-work/multipage/edits.html#dom-img-height

BUG=376895

Review URL: https://codereview.chromium.org/308643002

git-svn-id: svn://svn.chromium.org/blink/trunk@175784 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r175732.
Restore equality test back to being between Node* and a RawPtr<Node>,
for which there is an implicit conversion from a RawPtr<Node> to a
Node*. i.e., a RawPtr<Node> cannot be implicitly converted to a Node&
(and vice versa.)

TBR=haraken@chromium.org,oilpan-reviews@chromium.org
NOTRY=true

Review URL: https://codereview.chromium.org/325573002

git-svn-id: svn://svn.chromium.org/blink/trunk@175745 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: move MessageChannel to the heap.
R=haraken@chromium.org
BUG=340522

Review URL: https://codereview.chromium.org/319183007

git-svn-id: svn://svn.chromium.org/blink/trunk@175739 bbb929c8-8fbe-4397-9dbb-9b2b20218538
bratell
gyp performance: Load detect_host_arch directly.
We ran "python detect_host_arch.py" ~15 times from gyp. Run
detect_host_arch.py directly from from within gyp for faster execution
and since the path is no longer part of the command, the result will
also be cached more often.

The total gain is at best 0.3 seconds. For most people it will be less.

BUG=362075

Review URL: https://codereview.chromium.org/256303003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@275361 0039d316-1c4b-4281-b951-d872f2087c98
sigbjornf
Oilpan: add Element/Node Member fields to stack allocated objects.
Tidy up the definition of some stack objects and have them refer to
Element or Node references by way of Members rather than raw pointers.

R=tkent@chromium.org,haraken@chromium.org
BUG=357163

Review URL: https://codereview.chromium.org/319083004

git-svn-id: svn://svn.chromium.org/blink/trunk@175646 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
:host-context selectors may affect insertion point descendants.
At insertion points, we schedule style recalcs for inserted nodes when we
have a StyleRecalcChange at the insertion point's parent. One of the reasons
is that :host-context selectors which affect inserted nodes may rely on
matching nodes which are not ascendants of the inserted nodes in the dom
used for selector matching.

We did use a LocalStyleChange for the inserted nodes, but these selectors
may affect any node in the inserted node's subtree. Hence, we start using
SubtreeStyleChange instead.

R=esprehn@chromium.org,dglazkov@chromium.org
BUG=381020

Review URL: https://codereview.chromium.org/317953002

git-svn-id: svn://svn.chromium.org/blink/trunk@175636 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: tidy up reference to the Document's "CSS target".
Keep a traced Member reference to the Element that's recorded as
the Document's CSS target. When that Element is removed from the
tree, the Member will be explicitly cleared.

R=
BUG=357163

Review URL: https://codereview.chromium.org/315333002

git-svn-id: svn://svn.chromium.org/blink/trunk@175609 bbb929c8-8fbe-4397-9dbb-9b2b20218538
bratell
elf_symbolizer: Use a process for max 4000 lookups and then restart
addr2line processes keep growing as they are used so it's best to
restart them every now and then to avoid making its internal caches
so large that the computer runs out of RAM or the program becomes
incredibly slow.

I experimented with different counts. 10000 uses 50% more memory
than 4000 for a marginal performance increase. 1000 uses a bit
less memory but will be 10% slower. 3-4000 seems to be the sweat
spot.

BUG=379153

Review URL: https://codereview.chromium.org/311443002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@275165 0039d316-1c4b-4281-b951-d872f2087c98
ed
[SVG2] Allow leading and trailing whitespace in svg attributes using
<integer>, <angle>, <number>, <length> and <percentage>.

BUG=377503,339899

Review URL: https://codereview.chromium.org/302643004

git-svn-id: svn://svn.chromium.org/blink/trunk@175574 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Missing return after class invalidation short-cut.
scheduleStyleInvalidationForClassChange skipped comparison when oldClasses
was empty, but forgot to return afterwards, causing invalidation sets to be
scheduled twice.

This fix increases runs/s by 10%+ on the added performance test.

R=esprehn@chromium.org,chrishtr@chromium.org
BUG=380874

Review URL: https://codereview.chromium.org/313963006

git-svn-id: svn://svn.chromium.org/blink/trunk@175568 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Skip traversing wholeSubtree subtrees with clean invalidation bits.
During style invalidation we need to continue to traverse a subtree that is
marked with SubtreeStyleChange to clear any remaining invalidation bits.
But, when the childNeedsInvalidation bit is not set, there should be no
bits left to clear in the subtree. Hence, we can skip traversing that
subtree.

R=esprehn@chromium.org,chrishtr@chromium.org
BUG=381062

Review URL: https://codereview.chromium.org/317133002

git-svn-id: svn://svn.chromium.org/blink/trunk@175564 bbb929c8-8fbe-4397-9dbb-9b2b20218538
davve
Trigger computation of font size when crossing foreignObject boundary
When crossing the svg -> html boundary through a foreignObject, the
zoom factor is reset to its initial value. This is because SVG has a
special zoom model where the SVG fragment root puts the scale factor
on the graphics context, in contrast to non-SVG content where each
value is scaled individually.

This means the FontBuilder can't just inherit the font from parent
when crossing a foreignObject boundary. It may have to recompute the
font size because the effective zoom, included in the computed font
size, may change.

Example of behavior after this patch:

<html> <!-- computed font size: 16px. -->
  <body style="zoom: 2"> <!-- computed font size: 32px. -->
    <svg> <!-- scale(2) is applied to the graphics context; computed font size: 32px. -->
      <text>Sample svg text.</text> <!-- svg ignores computed font size to be able to support minimal font size. -->
      <foreignObject> <!-- html rendering again but scale(2) still applied to GC. computed font size must be reset to 16px. -->
        Sample html text. <!-- Text drawn with computed font size 16px but scaled to 32px by the GC -->

In this annotated test, 'Sample html text.' and 'Sample svg text.'
should both be displayed with a 32px font size.

Note: One difference is that the 'sample html text' is not sensitive
to the correct minimal font size since that happens before the scale
on the GC is applied. In order to get proper minimal font size working
on foreignObject, we would probably have to put foreignObject in a
layer separated from the graphical context of the SVG.

BUG=374119

Review URL: https://codereview.chromium.org/308123010

git-svn-id: svn://svn.chromium.org/blink/trunk@175562 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Set correct Function.length on overloaded and variadic methods
According to WebIDL, the Function.length property should be the length of
shortest argument list in the effective overload set for argument count 0.
This means for instance that variadic arguments don't contribute to the
length.

BUG=377718

Review URL: https://codereview.chromium.org/296403007

git-svn-id: svn://svn.chromium.org/blink/trunk@175559 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
WebPrivatePtr: avoid creating temporary Persistent<> on assignment.
For RefCountedGarbageCollected objects wrapped in a WebPrivatePtr, the
PtrStorageImpl::assign(PassRefPtr<T>) overload potentially created a
Persistent on assigning its underlying raw pointer, even if a RawPtr<>
was passed along (due to the implicit RawPtr<T> conversion that
PassRefPtr<T> provides.)

This assign() overload serves no real purpose with Oilpan enabled;
provide a more appropriate RawPtr<T> version there.

R=haraken@chromium.org,tkent@chromium.org
BUG=357163

Review URL: https://codereview.chromium.org/313173009

git-svn-id: svn://svn.chromium.org/blink/trunk@175558 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Correctly handle accessing a replaced Attr object's attribute value.
If element.setAttributeNode(attr) is performed on an "element" with
an attribute that matches "attr.name", that attribute's value is
updated and attr is attached to "element".

Later accesses of "attr.value" must continue to resolve to "element"'s
underlying attribute, matching (local) names following the case
sensitivity of the element.

A normalized local name was previously assumed for the attribute,
leading to crashing conditions on both setting and getting "attr.value".
Address by having Attr record the local name of the element attribute
it is attached to and use that when looking up the attribute.

R=adamk@chromium.org
BUG=376718

Review URL: https://codereview.chromium.org/316583002

git-svn-id: svn://svn.chromium.org/blink/trunk@175556 bbb929c8-8fbe-4397-9dbb-9b2b20218538
bratell
Emit partial results if binary_size is interrupted.
Instead of just throwing away everything if the user presses
Ctrl-c, write down whatever data we have to the disk. By asking for
the largest symbols first, it's sometimes possible to get a quite
good picture after only 10-15% of the total runtime.

BUG=377466

Review URL: https://codereview.chromium.org/305503002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@275053 0039d316-1c4b-4281-b951-d872f2087c98
sigbjornf
Oilpan: update WebNotification and WebDOMMediaStreamTrack type conversions
These two public/web/ types hadn't been updated to use transition types
over their underlying Oilpan-converted objects.

R=tkent@chromium.org,haraken@chromium.org
BUG=357163

Review URL: https://codereview.chromium.org/310393004

git-svn-id: svn://svn.chromium.org/blink/trunk@175540 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Frozen animations still contribute to the sandwich/animation stack
With (for instance) a to-animation, the frozen element will for instance
provide the 'underlying value' to any following element.

BUG=374793

Review URL: https://codereview.chromium.org/316013003

git-svn-id: svn://svn.chromium.org/blink/trunk@175530 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Allow hitting the SVG root when its display-type is 'block'
The 'HitTestChildBlockBackground' hit test action needs to be considered
as well when detecting hits on the SVG root container itself.

BUG=379299

Review URL: https://codereview.chromium.org/318663002

git-svn-id: svn://svn.chromium.org/blink/trunk@175528 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: update remaining Document uses of RefPtr<Node>s.
Made hoverNode()/setHoveNode() private accessors while converting over
remaining PassRefPtr<Node>/RefPtr<Node> uses to transition types.

R=tkent@chromium.org
BUG=357163

Review URL: https://codereview.chromium.org/311053003

git-svn-id: svn://svn.chromium.org/blink/trunk@175470 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: convert remaining editing/ RefPtr<Node>s to transition types.
Remove unnecessary uses of RefPtr<Node>s with Oilpan enabled.

R=zerny@chromium.org,ager@chromium.org
BUG=357163

Review URL: https://codereview.chromium.org/309283002

git-svn-id: svn://svn.chromium.org/blink/trunk@175378 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: trace HTMLConstructionSite::PendingText part object.
Convert a pair of RefPtr<>s to Members with Oilpan enabled & have the
PendingText object be traced by its HTMLConstructionSite parent.

Convert remaining RefPtr<Node> uses in html/ as well.

R=zerny@chromium.org,ager@chromium.org
BUG=357163

Review URL: https://codereview.chromium.org/310793002

git-svn-id: svn://svn.chromium.org/blink/trunk@175369 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Cleanup tests related to controls hiding/fading in/out
Add a helper function runAfterControlsHidden() that computes a reasonable
timeout for when the controls should be invisible.
Add controlsFade{In,Out}DurationMs to avoid having to redefine them in
every test that needs them.
Convert tests to use the helper and the variables, and also perform some
opportunity simplifications to lookups of the panel shadow element.

Review URL: https://codereview.chromium.org/302603003

git-svn-id: svn://svn.chromium.org/blink/trunk@175365 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Convert SVGSMILElement::resolveInterval to return an SMILInterval
Rather than using two out-/reference parameters to return the result, use
the return value.
Also convert the 'bool first' argument to the method to an enumeration.

With the above SVGSMILElement::resolve{First,Next}Interval can be
simplified a bit.

Review URL: https://codereview.chromium.org/306293005

git-svn-id: svn://svn.chromium.org/blink/trunk@175321 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: use transition types for remaining RefPtr<Document>s in dom/.
Switch to RefPtrWillBeRawPtr<>/RefPtrWillBeMember<> instead.

R=haraken@chromium.org
BUG=357163

Review URL: https://codereview.chromium.org/301233010

git-svn-id: svn://svn.chromium.org/blink/trunk@175316 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Convert SVGSMILElement::m_interval{Begin,End} into a SMILInterval
This is a mostly mechanical change that makes use of the SMILInterval
type added in https://codereview.chromium.org/298043005.

Review URL: https://codereview.chromium.org/312503003

git-svn-id: svn://svn.chromium.org/blink/trunk@175285 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Remove unused mask and background methods.
Bumped into these methods while investigating background layers. They were
not in use.

Review URL: https://codereview.chromium.org/310623002

git-svn-id: svn://svn.chromium.org/blink/trunk@175275 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r175264.
Finalization of ScreenOrientationController now needed, adjust GC class.

R=haraken@chromium.org,ager@chromium.org
BUG=162827
NOTRY=true

Review URL: https://codereview.chromium.org/305363003

git-svn-id: svn://svn.chromium.org/blink/trunk@175274 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r175261.
Add required parens.

R=
BUG=378167
NOTRY=true

Review URL: https://codereview.chromium.org/311563006

git-svn-id: svn://svn.chromium.org/blink/trunk@175268 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: have DocumentInit use transition types throughout.
For DocumentInit, the context document is no longer mediated
as a WeakPtr, but as a Member. It is sufficient that the
Document holds onto this reference weakly.

R=haraken@chromium.org, tkent@chromium.org
BUG=357163

Review URL: https://codereview.chromium.org/304323010

git-svn-id: svn://svn.chromium.org/blink/trunk@175260 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix WebSocket unit tests memory leaks.
Remove unnecessary Persistent reference (to an object contained within
another Persistent) + arrange for manual GCing of resources to avoid
test objects being reported as not destructed and leaking with
Oilpan enabled.

R=
BUG=

Review URL: https://codereview.chromium.org/306273002

git-svn-id: svn://svn.chromium.org/blink/trunk@175233 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Rename childrenAffectedBy methods and constants.
For :hover, :active, :focus, and :drag, childrenAffectedBy really means
that descendants, or siblings, or elements in the siblings' subtrees may be
affected. Methods and constants are renamed to reflect that.

R=esprehn@chromium.org

Review URL: https://codereview.chromium.org/308683007

git-svn-id: svn://svn.chromium.org/blink/trunk@175232 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Deprecate the Element.prefix setter
Intent to Deprecate and Remove:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/Tu9pL7gMPyo/f-eYf_AkpQMJ

The conclusion of the thread was to deprecate only at this time.

Review URL: https://codereview.chromium.org/301403002

git-svn-id: svn://svn.chromium.org/blink/trunk@175202 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Reset RestyleFlags when Element is removed.
The RestyleFlags are set based on selectors and DOM structure. Wether the
elements are attached or detached is irrelevant. Furthermore, when these
flags are reset, we must be sure all elements which may contribute to these
flags will have their style recalculated in order to set the flags properly.
That is not necessarily the case for attach/detach since siblings, or
descendants of siblings of the detached element will not have their style
recalculated in general.

Instead, reset RestyleFlags when an element is removed from its parent. If
the element is re-inserted into the DOM, siblings and sibling subtrees will
have the style recalculated to update the flags properly.

R=esprehn@chromium.org
BUG=376139

Review URL: https://codereview.chromium.org/304183009

git-svn-id: svn://svn.chromium.org/blink/trunk@175199 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Don't render empty shapes with non-scaling-stroke
Compute and validate the shape parameters before deciding which code-path
should be used (path vs. primitive). Don't use the fallback when the
bounding box is empty.

Based on WebKit patch:
  https://bugs.webkit.org/attachment.cgi?id=232191&action=prettypatch
by:
  Nikos Andronikos <nikos.andronikos-webkit@cisra.canon.com.au>

BUG=377610

Review URL: https://codereview.chromium.org/307643003

git-svn-id: svn://svn.chromium.org/blink/trunk@175147 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Use auto-rethrowing v8::TryCatch variant
To avoid the need to call ReThrow() on the v8::TryCatch that may or
may not be declared, and the risk of forgetting to do so in some case,
use an auto-rethrowing v8::TryCatch variant instead.

BUG=362388

Review URL: https://codereview.chromium.org/304223007

git-svn-id: svn://svn.chromium.org/blink/trunk@175134 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Make SVGResourcesCycleSolver check for cycles beyond one level (and more)
The SVGResourceCycleSolver checks for cycles from within the resources
a RenderObject references to the resources it references, or any resources
in the ancestor-chain of the starting RenderObject (including itself if
it is a resource container).
This suffers from a few issues. One is that a resource that is referenced
both by the starting RenderObject and another resource referenced from the
starting RenderObject will be flagged as a cycle because all the resources
are added to the resources set.
Another issue is that longer cycles may not be detected because only the
resources referenced by the starting RenderObject is checked, and
depending on how the render tree is built, some cycles could be missed.
Additionally, a resource defined within another resource can cause a
"false cycle" to be flagged when the inner resource references a resource
in the resource set - eventhough the inner resource itself is not reachable
from the starting RenderObject.

To fix the above, make the SVGResourcesCycleSolver traverse the entire
resource "graph", and verify that it is acyclic. The cycle-checking is
achieved by keeping track of the current "path" through the graph, and
checking any discovered references against that set. When traversing
a subtree looking for references, any resources discovered will be skipped
to avoid inject false dependencies that way.
Also keep a simple "cache" of sub-graphs that has been checked already
(and verified cycle-free) to avoid having to revisit them.

BUG=351713

Review URL: https://codereview.chromium.org/303693009

git-svn-id: svn://svn.chromium.org/blink/trunk@175129 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: have PendingScripts trace their script elements.
To complete the move to transition types for Element in html/ and dom/,
convert PendingScript and the script runner objects to trace their
embedded script element references. The script runner objects
(ScriptRunner and HTMLScriptRunner) are now garbage collected objects,
with PendingScript being kept in-line or as a part objects of those
runner objects.

To enable detaching of HTMLScriptRunner without having to rely on its
host (HTMLDocumentParser), the HTMLScriptRunner is instead made the
client of the resources it loads. This simplifies dependencies, but
requiring some follow-on changes to the HTMLScriptRunnerHost interface.

Besides script element references, convert a few other remaining Element
{Pass}RefPtr uses to transition types.

R=ager@chromium.org,haraken@chromium.org,eseidel@chromium.org
BUG=357163

Review URL: https://codereview.chromium.org/298863010

git-svn-id: svn://svn.chromium.org/blink/trunk@175127 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Improve comparison of intervals in SVGSMILElement::resolveFirstInterval
For open-ended intervals such as [3) - i.e. begin=3s and end/duration/etc
unspecified - every call to resolveFirstInterval() would think that a new
interval had been created, and notify/require a reschedule of the
animations.
Add a new type SMILInterval and a suitable operator for that, and then
use it to compare the raw values (i.e. if both endpoints are exacly the same.)

BUG=377329

Review URL: https://codereview.chromium.org/298043005

git-svn-id: svn://svn.chromium.org/blink/trunk@175122 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: move editing objects to the heap.
Move the editing commands and style objects to the Oilpan heap, along
with having them use transition types throughout.

R=zerny@chromium.org,haraken@chromium.org,tkent@chromium.org
BUG=357163

Review URL: https://codereview.chromium.org/299353004

git-svn-id: svn://svn.chromium.org/blink/trunk@175079 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Generate missing "block.ReThrow();" before return
After r174546 a v8::TryCatch object is in scope when calling a method's
C++ implementation early due to missing optional arguments.  If the
implementation throws an exception, we need to call ReThrow() on that
v8::TryCatch object for the exception to be propagated correctly.

BUG=362388

Review URL: https://codereview.chromium.org/307883002

git-svn-id: svn://svn.chromium.org/blink/trunk@175076 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Don't set WTF::Partitions::s_initialized to true before initializing
In theory, a simultaneous caller to Partitions::getBufferPartition()
could see the flag as being true, and return the uninitialized buffer
partition, while another thread is initializing it.

BUG=367672

Review URL: https://codereview.chromium.org/268673012

git-svn-id: svn://svn.chromium.org/blink/trunk@175020 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Refine the UseCounters for DOMFocusIn/Out and focusin/out events
Hixie asked in bug 378163:
"Should we drop focusin/focusout?"
"Is there a compat need to support the focusin/focusout events?"

To answer that question, add a UseCounter for focusin/focusout.
Instead of counting all listeners, count cases where the event is
actually fired with a listener attached, which is a better estimate of
the compatibility risk. Make the same change to the DOMFocusInOut
counter to make the two comparable.

BUG=378163

Review URL: https://codereview.chromium.org/307613002

git-svn-id: svn://svn.chromium.org/blink/trunk@175014 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove MessageEvent.webkitInitMessageEvent()
Intent to Deprecate and Remove:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/H6lsGFqdy3Y/F2GlWvbl-TsJ

Review URL: https://codereview.chromium.org/303663004

git-svn-id: svn://svn.chromium.org/blink/trunk@174967 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove the UseCounters for the capture attribute
Both of the counters are at 0%:
http://www.chromestatus.com/metrics/feature/timeline/popularity/86
http://www.chromestatus.com/metrics/feature/timeline/popularity/245

In other worlds, there's hardly anyone to see the deprecation message.

BUG=240252

Review URL: https://codereview.chromium.org/303473004

git-svn-id: svn://svn.chromium.org/blink/trunk@174966 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove the precision="float" attribute on <input type="range">
Intent to Deprecate and Remove:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/-OvFrybkW1E/Ucrct3sm6foJ

Review URL: https://codereview.chromium.org/301563002

git-svn-id: svn://svn.chromium.org/blink/trunk@174965 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: prevent player from accessing its media element during finalization
When finalizing the media element, its media player is also cleared
out. With Oilpan enabled, that media player object must not touch the
media element while destructing its "client", as it is not in a
valid state (its heap object member may have been finalized already.)

Arrange for that to not happen by having the media element enter a
'finalizing' state, which is explicitly checked for when the player
attempts to access the media element during destruction.

This is a shorter-term solution until the media player object itself
is moved to the Oilpan heap; http://crbug.com/378229 for handling that.

R=haraken@chromium.org,ager@chromium.org
BUG=377567
TEST=media/track/track-removal-crash.html
TEST=media/audio-delete-while-slider-thumb-clicked.html
TEST=http/tests/media/media-source/mediasource-closed-on-htmlmediaelement-destruction.html

Review URL: https://codereview.chromium.org/303593002

git-svn-id: svn://svn.chromium.org/blink/trunk@174964 bbb929c8-8fbe-4397-9dbb-9b2b20218538
davve
Remove zoom special casing of SVG when computing border-widths
Ever since border-image-width was implemented in

https://bugs.webkit.org/show_bug.cgi?id=67657

border-widths values haven't been scaled with the zoom level for SVG
elements. Remove the special casing since it doesn't seems to be any
good reason for having it. Firefox doesn't do anything of the sort and
there is no specification support for it.

BUG=377447

Review URL: https://codereview.chromium.org/302643002

git-svn-id: svn://svn.chromium.org/blink/trunk@174960 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Remove myself from WATCHLISTS.
I'm going on leave for 11 weeks, and besides there's a suitable
mailing list for such notifications now.

TBR=rune@opera.com
NOTRY=true

Review URL: https://codereview.chromium.org/305673002

git-svn-id: svn://svn.chromium.org/blink/trunk@174957 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r174943.
Add missing tracing of added Event member.

R=haraken@chromium.org
BUG=376349
NOTRY=true

Review URL: https://codereview.chromium.org/303703004

git-svn-id: svn://svn.chromium.org/blink/trunk@174950 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: move custom element objects to the heap.
R=ager@chromium.org,haraken@chromium.org,dominicc@chromium.org
BUG=357163

Review URL: https://codereview.chromium.org/296703009

git-svn-id: svn://svn.chromium.org/blink/trunk@174948 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jiangj
Pass AutocompleteProvider::kMaxMatches to InMemoryURLIndex
The only client of InMemoryURLIndex::HistoryItemsForTerms is
//chrome/browser/autocomplete/history_quick_provider.cc which has access
to the constant. So pass the constant to the history component instead
of having the dependency.

BUG=374730
TBR=thakis  // For OWNERS at chrome/browser/autocomplete/history_quick_provider.cc

Review URL: https://codereview.chromium.org/296743009

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@273072 0039d316-1c4b-4281-b951-d872f2087c98
mstensho
[New Multicolumn] fast/multicol/multicol-with-child-renderLayer-for-input.html puts the textfield in the wrong place
FrameView.cpp changes merged from WebKit. Original patch by David Hyatt <hyatt@apple.com>.
Reviewed in WebKit by Brady Eidson <beidson@apple.com>.
Make sure FrameView is patched to pass in the update pagination flag when subtree layout
is done on textfields. It had code for the old multicolumn system but did not have a check
for the new multicolumn system.

Additionally, in Blink we need to avoid switching to a different renderer "container" in RenderBoxModelObject::mapAbsoluteToLocalPoint(), or an assertion will fail at the beginning of RenderBox::offsetFromContainer(). Just include the correct column offset instead and proceed as normally.

BUG=369992

Review URL: https://codereview.chromium.org/264103002

git-svn-id: svn://svn.chromium.org/blink/trunk@174871 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
[New Multicolumn] Cleanup: Remove redundant members.
RenderMultiColumnSet doesn't need to store column width and
height. These are readily available from the flow thread.

And the flow thread doesn't need an extra member to store column
width, since it's the same as the logical width. Calculate it on
the fly when we need to determine whether the flow thread will
get a new width, and when actually updating the logical
width. It's not expensive to calculate, and this is not a hot
path. Duplicated storage can only cause confusion and do harm,
anyway.

Also use the CSS 2.1 terms "used" and "actual" when we need to
disambiguate, rather than "computed" and
nothing. Remove "computed" from some members where it didn't add
any value. Those were not CSS 2.1 "computed" values, so I found
it somewhat confusing and misleading.

No need for columnWidth() and columnHeight() in
RenderMultiColumnSet.  Use pageLogicalWidth() and
pageLogicalHeight() instead.

No need for columnWidth() in RenderMultiColumnFlowThread either.

Review URL: https://codereview.chromium.org/299213002

git-svn-id: svn://svn.chromium.org/blink/trunk@174870 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Simplify SVGResourcesCycleSolver::resourceContainsCycles
Modify the child traversal to use pre-order. This allows the case
for |renderer| to be sunk into the loop, reducing the amount of
code somewhat.
This also fixes a bug where the child traversal would not traverse its
the children of node that did not reference any resources.

BUG=351713

Review URL: https://codereview.chromium.org/294393004

git-svn-id: svn://svn.chromium.org/blink/trunk@174862 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Fix computation of local-to-border-box transform for RenderSVGRoot
Use isZero() instead of isEmpty() to correctly handle cases where only
one of the "dimensions" are non-zero.

BUG=377362

Review URL: https://codereview.chromium.org/302433009

git-svn-id: svn://svn.chromium.org/blink/trunk@174855 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
[New Multicolumn] Rebalance properly when child content changes.
Some refactoring and cleanup in layoutColumns() & friends was necessary
to get this a bit more robust and consistent.

Always prepare column sets for layout when we're going to lay out the
flow thread. Even when the sets themselves are not going to be laid
out, laying out the flow thread will update things in the sets, so we
need a clean slate. This includes making sure that the list of old content
runs is empty (clean it when the initial column height has been calculated).
This fixes an assertion failure in the beginning of distributeImplicitBreaks().
Added a test that used to trigger this.

Make sure that we always validate regions after layout. Doing it from the
last set was just bogus. There may be no sets, or the last set may not
have been marked for layout. In both cases we'd end up failing to
validate. This would result in assertion failures and inability to map
from a flow thread coordinate to a set.

BUG=370813

Review URL: https://codereview.chromium.org/288263002

git-svn-id: svn://svn.chromium.org/blink/trunk@174854 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Sync the alert() IDL with the spec
http://html5.org/r/8638
https://www.w3.org/Bugs/Public/show_bug.cgi?id=25686

This does not change the behavior of alert() or alert(undefined), it is
a pre-emptive change so that treating undefined as a missing optional
argument (per WebIDL) does not change the behavior.

BUG=335871

Review URL: https://codereview.chromium.org/296853010

git-svn-id: svn://svn.chromium.org/blink/trunk@174845 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Sync binding test results.
r174804 didn't update binding tests to account for
[WillBeGarbageCollected]Node changes.

R=nbarth@chromium.org,haraken@chromium.org
BUG=
NOTRY=true

Review URL: https://codereview.chromium.org/300743002

git-svn-id: svn://svn.chromium.org/blink/trunk@174844 bbb929c8-8fbe-4397-9dbb-9b2b20218538
tsniatowski
Disable multisampling on Mali-400 GPUs and Android < 4.3
This avoids a GL error from a buggy glGetIntegerv(GL_MAX_SAMPLES_ANGLE)
call. Based on patch by mkisilev@yandex-team.ru

BUG=362435
R=sievers@chromium.org

Review URL: https://codereview.chromium.org/296133007

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@272874 0039d316-1c4b-4281-b951-d872f2087c98
philipj
Improve the UseCounters for HTMLInputElement.webkitdirectory and .incremental
These are already counted in HTMLInputElement::parseAttribute(), but
that code path would not be hit when the IDL attributes are read.

Review URL: https://codereview.chromium.org/297423002

git-svn-id: svn://svn.chromium.org/blink/trunk@174813 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ed
[SVG2] Make ownerSVGElement and viewportElement nullable.
Spec: https://svgwg.org/svg2-draft/types.html#InterfaceSVGElement

BUG=366542

Review URL: https://codereview.chromium.org/303483005

git-svn-id: svn://svn.chromium.org/blink/trunk@174809 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: add [WillBeGarbageCollected] for Node.
Also make Document hold onto its DOMWindow via a Member when
Oilpan is enabled.

R=haraken@chromium.org,ager@chromium.org,tkent@chromium.org
BUG=357163

Review URL: https://codereview.chromium.org/292503006

git-svn-id: svn://svn.chromium.org/blink/trunk@174804 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Rudimentary keyboard navigation support for <video>/<audio>
Remove the override of hasCustomFocusLogic() for HTMLMediaElement. This
allows focus navigation (<tab>ing) to reach the controls.

BUG=135661

Review URL: https://codereview.chromium.org/292173006

git-svn-id: svn://svn.chromium.org/blink/trunk@174795 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Implement heuristic for showing media controls during playback w/o a mouse
This implements a heuristic that allows the media controls to re-appear
when playback has started and the mouse is unavailable.
The behavior is triggered by a 'focusin' event on the HTMLMediaElement,
which shows the controls. The controls then remain visible as long as
the media element itself or any part of the control retains focus, or
until the hide timer fires (which it will on a pause-play "cycle" for
instance).

BUG=135661

Review URL: https://codereview.chromium.org/297783004

git-svn-id: svn://svn.chromium.org/blink/trunk@174794 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: transition types for remaining Node hierarchy object occurrences.
R=haraken@chromium.org
BUG=357163

Review URL: https://codereview.chromium.org/294343007

git-svn-id: svn://svn.chromium.org/blink/trunk@174776 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: convert remaining dom + page Element refs to transition types.
R=haraken@chromium.org
BUG=357163

Review URL: https://codereview.chromium.org/301523002

git-svn-id: svn://svn.chromium.org/blink/trunk@174775 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
ScriptRegexp::match(): gracefully fail if regexp.exec() throws.
Check if the internal v8 call to do the actual regexp matching threw
an exception and report that as a match failure.

R=haraken@chromium.org
BUG=377024

Review URL: https://codereview.chromium.org/300103002

git-svn-id: svn://svn.chromium.org/blink/trunk@174774 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: add missing HTMLFormControlsCollection tracing.
R=haraken@chromium.org
BUG=357163

Review URL: https://codereview.chromium.org/298053002

git-svn-id: svn://svn.chromium.org/blink/trunk@174765 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Refine the UseCounter for Document.charset
The DocumentCharset counter is very high, around 4.5%:
http://www.chromestatus.com/metrics/feature/timeline/popularity/127

Measure the setter separately, since it doesn't make much sense and
getting rid of it would make charset a simple alias for characterSet.

Add a separate counter for defaultCharset, which is likely used less.

Note that Document.characterSet is the only attribute in the DOM spec:
http://dom.spec.whatwg.org/#document

Review URL: https://codereview.chromium.org/291823009

git-svn-id: svn://svn.chromium.org/blink/trunk@174738 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Add a UseCounter for CSSCharsetRule.encoding
This is by request from Simon Pieters, editor of the CSSOM spec, in
order to investige if getting rid of the CSSCharsetRule interface is
feasible. This has been discussed on blink-dev:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/bWgRZOZKmbk/LZWpPb-ZHJUJ

Review URL: https://codereview.chromium.org/299443014

git-svn-id: svn://svn.chromium.org/blink/trunk@174724 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: add missing tracing of Attr objects.
The Attr's element needs to be accounted for when tracing.

R=haraken@chromium.org
BUG=357163

Review URL: https://codereview.chromium.org/293113008

git-svn-id: svn://svn.chromium.org/blink/trunk@174720 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Deprecate HTMLHeadElement.profile
Intent to Deprecate:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/KcTBkX_EXVI/AQgJDTfNg3AJ

Review URL: https://codereview.chromium.org/291553005

git-svn-id: svn://svn.chromium.org/blink/trunk@174710 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Revert shouldInvalidateNodeListCaches() back to template-unrolled version.
Switch Document::shouldInvalidateNodeListCaches() back to the previous
version of unrolling a loop by way of a recursive template expansion.
A mild slowdown was seen in crbug.com/375810 when using the simpler
loop-based version from http://codereview.chromium.org/280123002/

R=haraken@chromium.org
BUG=375810
NOTRY=true

Review URL: https://codereview.chromium.org/296133014

git-svn-id: svn://svn.chromium.org/blink/trunk@174702 bbb929c8-8fbe-4397-9dbb-9b2b20218538
bratell
Added PRESUBMIT.py for binary_size tools.
Make the tests run for every commit to make sure tests and code
stay in sync and are both working.

BUG=

Review URL: https://codereview.chromium.org/296003007

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@272496 0039d316-1c4b-4281-b951-d872f2087c98
philipj
Add UseCounter features for cursor values -webkit-zoom-in/out
Review URL: https://codereview.chromium.org/292183009

git-svn-id: svn://svn.chromium.org/blink/trunk@174683 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: add SVGRemoteFontFaceSource::trace().
R=kouhei@chromium.org,haraken@chromium.org
BUG=357163

Review URL: https://codereview.chromium.org/298863009

git-svn-id: svn://svn.chromium.org/blink/trunk@174670 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix ImageBitmapTest.ImageLiveResourcePriority test.
Hold onto the local HTMLImageElements using persistents so as to keep
them alive across the forced GC that the test runs.

R=haraken@chromium.org,ager@chromium.org
BUG=357163

Review URL: https://codereview.chromium.org/296153005

git-svn-id: svn://svn.chromium.org/blink/trunk@174636 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Removed RecalcStyleTime.
All style resolver changes are now deferred.

R=ojan@chromium.org
BUG=374162

Review URL: https://codereview.chromium.org/296743003

git-svn-id: svn://svn.chromium.org/blink/trunk@174634 bbb929c8-8fbe-4397-9dbb-9b2b20218538
davve
Make shouldTransformOnTextPainting compilation unit local
No need to have this as a public function of the class. It's only used
in one place, local to the class implementation.

Review URL: https://codereview.chromium.org/292663008

git-svn-id: svn://svn.chromium.org/blink/trunk@174633 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: enable Oilpan by default in modules/quota.
Move the quota objects, but keep the supplements as using transition
types until Navigator/Window/WorkerGlobalScope are heap supplementables.

R=
BUG=340522

Review URL: https://codereview.chromium.org/294953002

git-svn-id: svn://svn.chromium.org/blink/trunk@174616 bbb929c8-8fbe-4397-9dbb-9b2b20218538
bratell
Graphical version of the run_binary_size_analysis tool.
The binary_size tool suit includes tools that are useful when trying
to reduce binary size of a program, and chromium related programs
in particular.

This commit (mostly written by andrewhayden@chromium.org for 
Android but ported to generic Linux by bratell@opera.com) adds 
a graphical HTML based output for run_binary_size_analysis.py.
In the generated web page it is possible to dynamically and 
graphically browse the binary and each part of the source tree 
is given a size that reflects its contribution to the binary size.

The run_binary_size_analysis tool is run on compiled binaries 
with symbols and uses nm and addr2line to map parts of the
binary to source code. Since addr2line is slow the operation to map 
binary symbols to source files takes a while but the output is 
well worth it when shrinking programs. See its usage information
for details about how to run it.

This commit also includes the tool explain_binary_size_delta.py 
(textual output) which can be used to understand why a binary 
changed size and in what way. See its usage information for 
details about how to run it.

There are many further improvements possible to to do on these tools.
Search the bug database for Label:Tools-BinarySize for suggestions.

BUG=339059
R=primiano@chromium.org,andrewhayden@chromium.org

Review URL: https://codereview.chromium.org/258633003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@272255 0039d316-1c4b-4281-b951-d872f2087c98
sigbjornf
Oilpan: avoid leak on creating shadow document wrapper.
BUG=357163
TBR=haraken@chromium.org
NOTRY=true

Review URL: https://codereview.chromium.org/289283020

git-svn-id: svn://svn.chromium.org/blink/trunk@174582 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mateuszs
Fixed positioning of tooltips in multi monitor setups.
If window is positioned on right monitor in multimonitor setup
tooltips for items to the left of Chromium window appear on left screen.
This is because screen on which to display the tooltip is calculated from
DIP coordinates.

BUG=

Review URL: https://codereview.chromium.org/225403022

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@272218 0039d316-1c4b-4281-b951-d872f2087c98
philipj
Unprefix CSS cursor values zoom-in and zoom-out
Intent to Implement and Ship:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/-GuOTe8c32Q/Gd9PuHYD0-EJ

-webkit-zoom-in and -webkit-zoom-out are kept as aliases for now.

BUG=246998
TEST=LayoutTests/fast/css/cursor-parsing.html

Review URL: https://codereview.chromium.org/288303007

git-svn-id: svn://svn.chromium.org/blink/trunk@174575 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove HTMLHtmlElement.manifest
Intent to Remove:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/5nQVw4T1EJw/FURw6bIpwvoJ

BUG=none

Review URL: https://codereview.chromium.org/282073008

git-svn-id: svn://svn.chromium.org/blink/trunk@174566 bbb929c8-8fbe-4397-9dbb-9b2b20218538
davve
Remove unnecessary parameter
After fix for https://bugs.webkit.org/show_bug.cgi?id=99870
clampedAbsoluteTileBoundaries is not used outside
RenderSVGResourcePattern::createTileImage.

Review URL: https://codereview.chromium.org/290733009

git-svn-id: svn://svn.chromium.org/blink/trunk@174564 bbb929c8-8fbe-4397-9dbb-9b2b20218538
davve
Turn ASSERT_UNUSED into plain ASSERT
ASSERT_UNUSED used to be necessary, before the code paths for USE(CG)
were removed in https://codereview.chromium.org/13616008.

Review URL: https://codereview.chromium.org/288113009

git-svn-id: svn://svn.chromium.org/blink/trunk@174562 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Defer style recalc when inserting extension stylesheets.
StyleEngine::addAuthorSheet, used when injecting stylesheets from extensions,
was doing a synchronous style recalc. Adding two stylesheets in a row would
cause two style recalcs. Do a deferred style recalc instead.

BUG=374901,374162

Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=174424

Review URL: https://codereview.chromium.org/290563007

git-svn-id: svn://svn.chromium.org/blink/trunk@174555 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Create fewer local v8::TryCatch objects in generated bindings code
When converting constructor and method arguments, switch from generating
the equivalent of

float x;
{
  v8::TryCatch block;
  x = ...;
  if (UNLIKELY(block.HasCaught()) {
    block.ReThrow();
    return;
  }
}
float y;
{
  v8::TryCatch block;
  y = ...;
  /* check result again, same as above */
}

to generating the equivalent of

float x;
float y;
{
  v8::TryCatch block;
  x = ...;
  if (UNLIKELY(block.HasCaught()) {
    block.ReThrow();
    return;
  }
  y = ...;
  /* check result again, same as above */
}

in order to avoid creating and destroying one v8::TryCatch object for each
argument.

This reduces the size of the final binary by about 20 kB (64-bit Linux) and
improves performance by up to 30 % on favorable micro-benchmarks (repeatedly
calling some DOM function that takes many primitive-typed arguments.)

R=haraken, nbarth

Review URL: https://codereview.chromium.org/265293004

git-svn-id: svn://svn.chromium.org/blink/trunk@174546 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: add [WillBeGarbageCollected] for Element.
Annotate Element as being a heap allocated object
with Oilpan enabled, and generate binding layer code
which assumes so for Element and its derived interface
objects.

To accommodate this, bindings code generated for
a named constructor need to consult the "gc_type" of
its interface, and no longer not assume RefCounted.
Along similar lines, custom element processing can no
longer assume that the elements will be RefCounted-based
either.

R=haraken@chromium.org,tkent@chromium.org
BUG=357163

Review URL: https://codereview.chromium.org/290333008

git-svn-id: svn://svn.chromium.org/blink/trunk@174537 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Deprecate the overflowchanged event
Intent to Deprecate:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/1RCzsyEyNU8/5vNpxrhRbUIJ

Review URL: https://codereview.chromium.org/295993006

git-svn-id: svn://svn.chromium.org/blink/trunk@174529 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jiangj
Move favicon callbacks to favicon_base
Move FaviconImageCallback, FaviconResultsCallback and FaviconRawCallback
to favicon_base, those types are shared between favicon and history
components (methods are declared in FaviconService, but it delegates the
work to HistoryService) and only uses types from base:: and
favicon_base:: namespaces.

Also BookmarkClient::FaviconImageCallback is a copy of
FaviconService::FaviconImageCallback, replace it with favicon_base::
version.

BUG=372321
TBR=thakis for //chrome outside of //chrome/browser/history,
//chrome/browser/favicon

Review URL: https://codereview.chromium.org/291643002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@272065 0039d316-1c4b-4281-b951-d872f2087c98
fs
MediaVolumeSliderPart is not vertical
This makes some parts of the keymapping a bit more intuitive for the
volume-slider of media controls (-webkit-appearance: media-volume-slider).

BUG=135661

Review URL: https://codereview.chromium.org/294963003

git-svn-id: svn://svn.chromium.org/blink/trunk@174503 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Save ping+beacon test status in temporary directory.
Try to address occasional Windows-only test failures by explicitly saving
away the ping + beacon requests in the system temporary directory. Also
make read access to the test status file a bit more robust.

R=
BUG=374569

Review URL: https://codereview.chromium.org/286063003

git-svn-id: svn://svn.chromium.org/blink/trunk@174484 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: make DocumentFragment a heap allocated object.
This relands r174382, as it was reverted while investigating a test failure.

R=wibling@chromium.org,zerny@chromium.org,haraken@chromium.org
BUG=357163

Review URL: https://codereview.chromium.org/289273002

git-svn-id: svn://svn.chromium.org/blink/trunk@174443 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
treat all whitespace as a delimiter in GYP_DEFINES
gyp itself treats any whitespace as a delimiter in GYP_DEFINES, this script should behave the same.

NOTRY=true

Review URL: https://codereview.chromium.org/290173005

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@271851 0039d316-1c4b-4281-b951-d872f2087c98
rune
Let updateLayout do style recalc instead of styleResolverChanged.
In updateLayoutIgnorePendingStylesheets, updateLayout will make sure
updateRenderTreeIfNeeded is called. Hence, we can use deferred style recalc
for styleResolverChanged.

R=ojan@chromium.org
BUG=374162

Review URL: https://codereview.chromium.org/287053003

git-svn-id: svn://svn.chromium.org/blink/trunk@174429 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Defer style recalc when inserting extension stylesheets.
StyleEngine::addAuthorSheet, used when injecting stylesheets from extensions,
was doing a synchronous style recalc. Adding two stylesheets in a row would
cause two style recalcs. Do a deferred style recalc instead.

BUG=374901,374162

Review URL: https://codereview.chromium.org/290563007

git-svn-id: svn://svn.chromium.org/blink/trunk@174424 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: make DocumentFragment a heap allocated object.
R=wibling@chromium.org,zerny@chromium.org,haraken@chromium.org
BUG=357163

Review URL: https://codereview.chromium.org/289273002

git-svn-id: svn://svn.chromium.org/blink/trunk@174382 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
navigator.vibrate() crash avoidance when in a detached state.
If the frame isn't present, gracefully return.

R=mvanouwerkerk@chromium.org,haraken@chromium.org
BUG=375004

Review URL: https://codereview.chromium.org/298683002

git-svn-id: svn://svn.chromium.org/blink/trunk@174380 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: move LiveNodeList collections to the heap.
Move LiveNodeListBase and all collection objects based on it (NodeLists
and HTMLCollections) to the heap.

R=haraken@chromium.org,tkent@chromium.org,ager@chromium.org,erik.corry@gmail.com
BUG=357163

Review URL: https://codereview.chromium.org/280123002

git-svn-id: svn://svn.chromium.org/blink/trunk@174377 bbb929c8-8fbe-4397-9dbb-9b2b20218538
andersr
Replace CursorList with RefVector<CursorData>.
We recently added a template in wtf/ for any case where we want to
store a Vector in a RefPtr. The list of CursorData objects should be
implemented by re-using that template, rather than with its own special
class which does exactly the same thing.

I added RefVector::at, because it's used by existing CursorList-code.
(See CSSComputedStyleDeclaration:1875).

Review URL: https://codereview.chromium.org/291863003

git-svn-id: svn://svn.chromium.org/blink/trunk@174367 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Use deferred style recalc for xml/xsl.
There should be no need to do synchronous style recalcs when finishing XML
parsing, regardless of the presence of XSL stylesheets.

BUG=374162

Review URL: https://codereview.chromium.org/292743002

git-svn-id: svn://svn.chromium.org/blink/trunk@174343 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: simplify ImageBitmapTest heap clearing.
For ImageBitmapLiveResourcePriority, use a Persistent to hold onto a
local ImageBitmap object rather than set up and rely on a full stack
scan.

R=wibling@chromium.org,haraken@chromium.org,ager@chromium.org
BUG=

Review URL: https://codereview.chromium.org/292763002

git-svn-id: svn://svn.chromium.org/blink/trunk@174302 bbb929c8-8fbe-4397-9dbb-9b2b20218538
andersr
Fix incorrect style recalculation of text-decoration properties.
This change adds the color and style of each decoration to the
AppliedTextDecoration class. This is needed to make RenderStyle
diffs compute correctly when the color or style of a decoration is changed.

The color-resolving code in RenderObject has been moved to RenderStyle to
enable use from both RenderStyle and RenderObject.

This patch also makes it possible to implement multiple decorations
on the same line. (A future patch).

BUG=350840, 315271
TEST=text-decoration-color-recalc.html
     text-decoration-style-recalc.html
     text-decoration-line-recalc.html

Review URL: https://codereview.chromium.org/280503003

git-svn-id: svn://svn.chromium.org/blink/trunk@174285 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jiangj
Use forward declaration instead of include for NPObject
All we use is just a NPObject* here, there is no need to include
the entire third_party/npapi/bindings/npruntime.h file, plus that
file includes third_party/npapi/bindings/npapi.h which further
includes system gl.h in OS X, which contains a GLES2TexImage2D
definition that conflicts with the definition in
gpu/GLES2/gl2chromium_autogen.h. Similar issues were fixed in CL
https://codereview.chromium.org/11794019/ We will hit this issue
when trying to include V8NPObject.h along with ChromeClientImpl.h.

Review URL: https://codereview.chromium.org/289273003

git-svn-id: svn://svn.chromium.org/blink/trunk@174283 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: make MediaError + TrackEvent heap savvier.
With the media element now on the heap, move MediaError over + have
TrackEvent keep a Member reference to its track object.

R=haraken@chromium.org
BUG=357163

Review URL: https://codereview.chromium.org/295613003

git-svn-id: svn://svn.chromium.org/blink/trunk@174277 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Use RecalcStyleDeferred for inspector style changes.
I could not find a reason why it needs to be immediate and all tests seem to
still pass.

R=pfeldman@chromium.org,ojan@chromium.org
BUG=374162

Review URL: https://codereview.chromium.org/290313002

git-svn-id: svn://svn.chromium.org/blink/trunk@174273 bbb929c8-8fbe-4397-9dbb-9b2b20218538
davve
Rebaseline invalid css2.1 tests
In issue 308992 we adapted to the new SVG sizing behavior.
Unfortunately, the css testsuite hasn't yet adapted.

We have filed issues for this upstream:

http://test.csswg.org/shepherd/testcase/replaced-intrinsic-001/name/replaced-intrinsic/
http://test.csswg.org/shepherd/testcase/replaced-intrinsic-002/name/replaced-intrinsic/

Until the tests are addressed, rebaseline our test results to the new
behavior.

BUG=308992
TBR=ojan

Review URL: https://codereview.chromium.org/286913007

git-svn-id: svn://svn.chromium.org/blink/trunk@174271 bbb929c8-8fbe-4397-9dbb-9b2b20218538
andersr
Don't pretend that text-decoration is a shorthand in computed style.
Even when the appropriate runtime flag isn't enabled, we still return
the shorthand version of the computed style for 'text-decoration'. For
example, for 'text-decoration: underline', we return the computed style
'underline solid rgb(0, 0, 0)', which is correct only when the runtime
flag is on.

BUG=367091,342126

Review URL: https://codereview.chromium.org/282303007

git-svn-id: svn://svn.chromium.org/blink/trunk@174269 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: move Node traversal objects to the heap.
Add Oilpan transition types to NodeIterator, TreeIterator and
NodeFilter objects.

R=haraken@chromium.org
BUG=357163

Review URL: https://codereview.chromium.org/285213003

git-svn-id: svn://svn.chromium.org/blink/trunk@174262 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix failing animation unit tests.
Address three failures:

 * AnimationTest.ElementDestructorClearsAnimationTarget
   Animation objects now die with their target element, hence testing
   for it separately being destructed doesn't make sense in an
   Oilpan setting.
 * AnimationStackTest.ForwardsFillDiscarding
   In order to be able to accurately sample the number of effects on
   the stack, explicitly GC before querying.
 * AnimationPlayerTest.AttachedAnimationPlayers
   Use a persistent to correctly hold on to the test element. If not,
   the final GC will destruct it also & making any further testing
   over it invalid.

R=haraken@chromium.org
BUG=340522

Review URL: https://codereview.chromium.org/287343003

git-svn-id: svn://svn.chromium.org/blink/trunk@174261 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: add NeedsAdjustAndMark<T> unit test.
Basic test coverage for the NeedsAdjustAndMark<T> template.

R=haraken@chromium.org
BUG=

Review URL: https://codereview.chromium.org/293543003

git-svn-id: svn://svn.chromium.org/blink/trunk@174258 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
For media element fetches, remove user:pass components always.
The compatible behavior for media element fetches is to ignore any
authorization information embedded in the URL. Insist on that by removing
the user and password components before starting the fetch.

Not doing so currently asserts in DocumentThreadableLoader::loadRequest(),
which expects that portion of the URL to have been processed already,
and removed. Satisfy that expectation here.

R=japhet@chromium.org,acolwell@chromium.org,philipj@opera.com
BUG=357269

Review URL: https://codereview.chromium.org/286993008

git-svn-id: svn://svn.chromium.org/blink/trunk@174248 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r174194.
Fix compilation errors (unused variable warnings-as-errors) in
AnimationTest.cpp

R=
BUG=340522
NOTRY=true

Review URL: https://codereview.chromium.org/293473003

git-svn-id: svn://svn.chromium.org/blink/trunk@174234 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Use RecalcStyleDeferred for printing.
Style will be recalculated as a pre-layout step regardlessly.
The goal is to get rid of all RecalcStyleImmediately.

BUG=374162

Review URL: https://codereview.chromium.org/283333005

git-svn-id: svn://svn.chromium.org/blink/trunk@174198 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ed
[SVG2] css 'outline' property should apply to svg elements
The 'outline' property was only partially working in svg before this patch,
this makes it work on text and text content child elements too.

This makes SVG render the outlines as part of the foreground paint phase.

Partly based on Florin Malita's webkit patch https://bugs.webkit.org/show_bug.cgi?id=113666#c12.

BUG=369473

Review URL: https://codereview.chromium.org/261773008

git-svn-id: svn://svn.chromium.org/blink/trunk@174186 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: remove consts when checking GC-class convertibility.
Achieve the desired conversion outcomes when working with const types,
explicitly removing "const" qualifiers throughout before testing if
class types can be converted to GarbageCollected{Mixin,Finalized} etc.

R=haraken@chromium.org,erik.corry@gmail.com
BUG=

Review URL: https://codereview.chromium.org/282263006

git-svn-id: svn://svn.chromium.org/blink/trunk@174175 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jadahl
gpu: Assert that FencedAllocator is empty in destructor
With the commit "gpu: Reuse transfer buffers more aggresively" mapped
memory is free:ed on lost context. This means that we can reinstate the
DCHECKs in the FencedAllocator destructor that checks that all blocks
have been free:ed by their owner.

Tests that didn't explicitly free mapped memory now do so, and one test
that tested that leaking was OK has been removed.

BUG=328808

Review URL: https://codereview.chromium.org/282513003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@270991 0039d316-1c4b-4281-b951-d872f2087c98
davve
Remove unnecessary NULL check in DOMWindow::top()
https://chromium.googlesource.com/chromium/blink/+/c07c40ae84d58b96cb44ad6c03d89a1b5438470b

The use of |page| in DOMWindow::top() was replaced by going to the
frame tree, but the NULL check for |page| was not removed. Remove it.

BUG=none

Review URL: https://codereview.chromium.org/289983004

git-svn-id: svn://svn.chromium.org/blink/trunk@174148 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove x-webkit-speech and x-webkit-grammar from HTMLAttributeNames.in
These are no longer used.

BUG=none

Review URL: https://codereview.chromium.org/290593002

git-svn-id: svn://svn.chromium.org/blink/trunk@174144 bbb929c8-8fbe-4397-9dbb-9b2b20218538
haavardm
Move channel id tests up from OpenSSL and update channelid version.
NSS (and soon OpenSSL) runs the new ChannelID version 30032. This patch
moves the simple ChannelID tests from OpenSSL unittests to the general
ssl_client_socket_unittest.cc and updates the channelid version in
TLS Lite.

TLS Lite is not updated with ChannelId resumption support since
ChannelID signature checking is not yet implemented in TLS Lite.

ChannelID Signature checks, along with ChannelId resumption support
and  ChannelID resumption tests should be implemented in further work.

This CL will also roll third_party/openssl:

OpenSSL: rolls DEPS 267648->269063 

Takes in following change:

r269063 | haavardm@opera.com | 2014-05-08 17:48:32 +0200 (to., 08 mai 2014) | 8 lines

New tls channel id version for OpenSSL

New tls channel id version extracted from patch 0015-channelid.patch attached to http://crbug.com/366961.

BUG=366961

Review URL: https://codereview.chromium.org/263213005

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@270683 0039d316-1c4b-4281-b951-d872f2087c98
mstensho
[New Multicolumn] Guard against zero or negative space shortage.
We need positive values in order to get anywhere when stretching columns
in order to balance them, and we may get called with zero or negative
values when there's zero-height content at column boundaries, or when we
set an early break in order to honor widows in the next column.

BUG=369985

Review URL: https://codereview.chromium.org/263203003

git-svn-id: svn://svn.chromium.org/blink/trunk@174088 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: add transition types to shadow DOM supporting objects.
R=haraken@chromium.org,ager@chromium.org
BUG=357163

Review URL: https://codereview.chromium.org/277213004

git-svn-id: svn://svn.chromium.org/blink/trunk@174084 bbb929c8-8fbe-4397-9dbb-9b2b20218538
davve
Don't use pageLogicalHeight() to resolve percentage values in subframes
In printing, pageLogicalHeight() is set to zero for all subframes
which makes is a bad candidate for resolving percentages against. For
subframes a better candidate would be the view height, as for
non-printing documents.

The RenderView knows when to layout in printing mode (top-level
document) and when not (subframes), so move
viewLogicalHeightForPercentages() to the RenderView and use its
knowledge to return the view height for subframes in printing to
resolve percentages against.

BUG=370948
R=ojan

Review URL: https://codereview.chromium.org/273043002

git-svn-id: svn://svn.chromium.org/blink/trunk@174051 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jiangj
Fix policy_component shared_library link without configuration_policy
It should depend on url_matcher as url_blacklist_manager uses it.

Review URL: https://codereview.chromium.org/284493002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@270410 0039d316-1c4b-4281-b951-d872f2087c98
jiangj
Fix ui_unittests building with enable_autofill_dialog=0
Review URL: https://codereview.chromium.org/178193032

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@270107 0039d316-1c4b-4281-b951-d872f2087c98
jiangj
Fix GMOCK warnings in password_manager
In password_manager_unittests and password_form_manager_unittests.

Review URL: https://codereview.chromium.org/279193002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@269939 0039d316-1c4b-4281-b951-d872f2087c98
mstensho
[New Multicolumn] Use the term "content run" in favor of "forced break".
You get one content run even without any forced breaks.

Documentation improvements. In particular for flow thread layout and
column balancing.

Also don't assume that a column set starts at flow thread block offset 0.
This is only true for the first set. So far we only have one set, but this
will soon change, with the introduction of support for column-span:all.
Check with the flow thread portion rectangle to get the correct start offset.

Review URL: https://codereview.chromium.org/267373005

git-svn-id: svn://svn.chromium.org/blink/trunk@173879 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Tighten the asserts in VTTCue::calculateDisplayParameters()
BUG=none

Review URL: https://codereview.chromium.org/276183002

git-svn-id: svn://svn.chromium.org/blink/trunk@173842 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Add a use counter for VTTCue right-to-left rendering
The WebVTT position model has been changed:
https://www.w3.org/Bugs/Public/show_bug.cgi?id=20037

In order to ship this (or any alternative) we need to know that it
doesn't break too much, and right-to-left text used to flip the
interpretation of the position setting, but doesn't any longer.

BUG=none

Review URL: https://codereview.chromium.org/276193002

git-svn-id: svn://svn.chromium.org/blink/trunk@173841 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Implement navigator.sendBeacon()
This provides support for the Beacon API,

 https://dvcs.w3.org/hg/webperf/raw-file/tip/specs/Beacon/Overview.html

allowing async transmission of data using navigator.sendBeacon().

R=abarth@chromium.org,mkwst@chromium.org
BUG=360603

Review URL: https://codereview.chromium.org/232053005

git-svn-id: svn://svn.chromium.org/blink/trunk@173837 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
[New Multicolumn] Improve balancing for border/padding and empty block content.
In a balancing pass, when a break occurs at borders, padding or empty block
content (the trailing part of a block that has no lines or other content),
we need to report the correct amount of space shortage, so that the balancer
doesn't over-stretch the columns for the next balaning pass.

This fixes the actual failure reported by fast/multicol/border-padding-pagination.html ,
but rendering will still differ, because the new balancer is more correct
and causes shorter columns than before. Added new tests that will replace
border-padding-pagination.html for new multicol.

Breaks triggered by lines are already handled just fine in
adjustLinePositionForPagination(). What we need to handle in
adjustBlockChildForPagination() is everything that has to do with the
child block itself.

If a block is unbreakable and crosses a column/page boundary (and
therefore is moved as a whole to the next column/page), report space
shortage.

After applying pagination struts, if a block is breakable and crosses
yet another column/page boundary, report the space occupied in the next
columns/pages as shortage. We need to report something if all breaks
occur inside freely breakable block content, or the balancer will have
no clue.

If none of the above is true, and the child is at the top of a
column/page, report the total height of the child, in case that turns
out to be the smallest piece of content that causes a break. This also
needs to take place after having applied pagination struts.

BUG=361501

Review URL: https://codereview.chromium.org/261383004

git-svn-id: svn://svn.chromium.org/blink/trunk@173826 bbb929c8-8fbe-4397-9dbb-9b2b20218538
bratell
Missing OS guard before including android header.
An Android header was unconditionally included. It works as long as the
header doesn't use any Android specific code but it's doomed to
break something eventually.

BUG=None

Review URL: https://codereview.chromium.org/267323008

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@269430 0039d316-1c4b-4281-b951-d872f2087c98
mostynb
Ensure that _GNU_SOURCE is defined early enough
This style cleanup broke some versions of glibc that include fcntl.h from
another header before it is explicitly included:
https://codereview.chromium.org/236083002/

We need _GNU_SOURCE defined before the first time fcntl.h is included since
we use the linux-specific O_DIRECTORY extension.

Thanks to johan_e@opera.com for helping track this down.

NOTRY=true

Review URL: https://codereview.chromium.org/266913019

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@269419 0039d316-1c4b-4281-b951-d872f2087c98
mstensho
[New Multicolumn] Update sets' flow thread portion rectangles properly.
logicalHeightOfAllFlowThreadContent() was wrong. This still doesn't matter
much, but it will once we have support for multiple sets (column-span:all).

Review URL: https://codereview.chromium.org/265293005

git-svn-id: svn://svn.chromium.org/blink/trunk@173769 bbb929c8-8fbe-4397-9dbb-9b2b20218538
andersr
Store and propagate a list of applied text decorations.
This is preparatory work to fix an issue with style recalculation of text
decorations (350840), and to implement multiple text decorations per line.

In a future patch, the color and style of each decoration will be added to
the AppliedTextDecoration objects in order to fix 350840.

BUG=350840, 315271
TEST=Covered by existing tests

Review URL: https://codereview.chromium.org/272443002

git-svn-id: svn://svn.chromium.org/blink/trunk@173761 bbb929c8-8fbe-4397-9dbb-9b2b20218538
marcing
Create copy of context record before passing it to StackWalk64
StackWalk64 may modify EXCEPTION_POINTERS struct that is passed
to it from constructor of StackTrace.
In the case of StackDumpExceptionFilter the struct that is passed
to constructor of StackTrace may be later passed to other (chained)
exception filter(s), so it shouldn't be modified.

BUG=

Review URL: https://codereview.chromium.org/267463003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@269296 0039d316-1c4b-4281-b951-d872f2087c98
ed
[SVG2] overflow should be ignored in img and background-image.
BUG=371250

Review URL: https://codereview.chromium.org/277563004

git-svn-id: svn://svn.chromium.org/blink/trunk@173752 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: move DOM string collection objects to the Oilpan heap.
Turn DOMTokenList, DOMStringList, DOMStringMap and their derived objects
into garbage collected objects.

R=haraken@chromium.org,ager@chromium.org,erik.corry@gmail.com
BUG=340522

Review URL: https://codereview.chromium.org/258143002

git-svn-id: svn://svn.chromium.org/blink/trunk@173652 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
DOMImplementation::document(): remove redundant get().
Follow up r173611 and remove a redundant use of get() in Document accessor.

R=ager@chromium.org
BUG=340522

Review URL: https://codereview.chromium.org/278573003

git-svn-id: svn://svn.chromium.org/blink/trunk@173640 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: move node/element rare data objects to the heap.
Turn the rare data objects for Node and Elements into garbage
collected objects.

R=haraken@chromium.org,zerny@chromium.org,erik.corry@gmail.com
BUG=357163

Review URL: https://codereview.chromium.org/265793017

git-svn-id: svn://svn.chromium.org/blink/trunk@173615 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: move DOMImplementation to the heap.
R=tkent@chromium.org,haraken@chromium.org
BUG=340522

Review URL: https://codereview.chromium.org/271673005

git-svn-id: svn://svn.chromium.org/blink/trunk@173611 bbb929c8-8fbe-4397-9dbb-9b2b20218538
joaoe
Fixed uncompressing files with wrong uncompressed size set.
A zip file carries some metadata for each archived file, including the total
uncompressed size. If that size was incorrect, therefore the compressed file
being different in size when unpacking, the minizip code would fail with a
CRC error. Every other zip utility handles these files, so should the minizip
code for safety sake.

BUG=359516

Review URL: https://codereview.chromium.org/222243003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@268940 0039d316-1c4b-4281-b951-d872f2087c98
haavardm
Fix link error when building component build on OS X with OpenSSL.
Don't build base/keygen_handler_openssl.cc when using
OpenSSL while leaving certificate handling to the OS. Keygen handler
will in these cases be implemented in OS specific code.

BUG=None

Review URL: https://codereview.chromium.org/267133004

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@268808 0039d316-1c4b-4281-b951-d872f2087c98
mstensho
[New Multicolumn] Make fast/multicol/overflow-content.html pass in the new implementation.
Insert a break at end of content on our own in the multicol code, to make sure
that overflow is properly accounted for.

BUG=369954

Review URL: https://codereview.chromium.org/263083009

git-svn-id: svn://svn.chromium.org/blink/trunk@173531 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove CSS media features -webkit-transform-2d, -webkit-animation and -webkit-view-mode
Intent to Deprecate and Remove:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/lYZC-Xqf_Gw/D6Or7mZHwr4J

BUG=none

Review URL: https://codereview.chromium.org/269053005

git-svn-id: svn://svn.chromium.org/blink/trunk@173494 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Remove RenderFlowThread::initialLogicalWidth().
Re-implement updateLogicalWidth() in RenderMultiColumnFlowThread instead.

Review URL: https://codereview.chromium.org/266973005

git-svn-id: svn://svn.chromium.org/blink/trunk@173425 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Add early-out to RenderSVG{Block,ModelObject}::repaintTreeAfterLayout
Follow-up to https://codereview.chromium.org/264963004/ and
https://codereview.chromium.org/260963012/.

BUG=369486, 320139

Review URL: https://codereview.chromium.org/263393003

git-svn-id: svn://svn.chromium.org/blink/trunk@173415 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
[New Multicolumn] Remove RenderRegionSet.
It only did one thing, and that one thing can be done directly by
RenderMultiColumnSet instead.

Review URL: https://codereview.chromium.org/267903003

git-svn-id: svn://svn.chromium.org/blink/trunk@173411 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix gc_tracing compilation after r173313.
Expand the GCInfos for ListHashSet<> and ListHashSetNode<> to include
the required class name string when compiling with GC_TRACING enabled.

R=ager@chromium.org,haraken@chromium.org
BUG=

Review URL: https://codereview.chromium.org/271443004

git-svn-id: svn://svn.chromium.org/blink/trunk@173396 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Override repaintTreeAfterLayout for RenderSVGModelObject
RenderSVGModelObject needs to have an overload for said method, because
it inherits directly from RenderObject.
Also make sure RenderSVGBlock disables use of LayoutState.

BUG=369486

Review URL: https://codereview.chromium.org/260963012

git-svn-id: svn://svn.chromium.org/blink/trunk@173372 bbb929c8-8fbe-4397-9dbb-9b2b20218538
davve
Tighten error checking from SVGLength parsing
When test-parsing width, height before mapping them to style for
SVGSVGElement and SVGForeignObjectElement, testing for unknown length
types is not enough, we must check the exceptionState for errors. This
fixes a case where we apply 'inherit' even though we shouldn't,
according to spec.

Also align SVGForeignObjectElement and SVGSVGElement by always passing
along the original string, not the serialized value. As long as only
valid lengths are passed along, this shouldn't change behavior but
re-generating the string back is unnecessary work.

BUG=370017,308992
R=pdr

Review URL: https://codereview.chromium.org/262093007

git-svn-id: svn://svn.chromium.org/blink/trunk@173371 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
[New Multicolumn] Remove the term "balancing" from some member names.
This is in line with what it's called in RenderMultiColumnFlowThread()
(recalculateColumnHeights()), and soon (once we have support for multiple
column sets) this isn't going to be strictly about balancing anyway.

Review URL: https://codereview.chromium.org/264773018

git-svn-id: svn://svn.chromium.org/blink/trunk@173368 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Remove now-unused WorkerThread ExecutionContextTask.
Follow up r171960's removal of unused code and also delete now-unused
task.

R=haraken@chromium.org
BUG=

Review URL: https://codereview.chromium.org/264833007

git-svn-id: svn://svn.chromium.org/blink/trunk@173366 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
Don't add -fuse-ld=gold to cflags
Don't add -fuse-ld=gold to cflags, since gyp emits ninja files that
compile with -c, which means the linker is not used, making the flag
useless.

Removing ignored options makes the compiler commands (slightly)
easier to read, and can avoid some errors in mismatched icecc setups.

BUG=352046

Review URL: https://codereview.chromium.org/265263002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@268377 0039d316-1c4b-4281-b951-d872f2087c98
philipj
Add use counters for VTTCue use/rendering and its attributes
Having some data about how often WebVTT is used/rendered and which cue
attributes are mostly commonly used could prove valuable in spec
discussions, and is if nothing else interesting to know.

BUG=none

Review URL: https://codereview.chromium.org/263213002

git-svn-id: svn://svn.chromium.org/blink/trunk@173330 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Populate the name-to-pseudo map lazily
Sort pseudoTypeMap[] to allow using binary search to look up the name.

BUG=365613

Review URL: https://codereview.chromium.org/256563002

git-svn-id: svn://svn.chromium.org/blink/trunk@173317 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Removed unused element parameter.
Not used in hasWillChangeThatCreatesStackingContext.

R=sigbjornf@opera.com

Review URL: https://codereview.chromium.org/269823005

git-svn-id: svn://svn.chromium.org/blink/trunk@173304 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Removed unused adjustOverflow parameter.
Review URL: https://codereview.chromium.org/266993002

git-svn-id: svn://svn.chromium.org/blink/trunk@173299 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r173245.
Remove unused allocation of a TouchList object.

R=
BUG=363321

Review URL: https://codereview.chromium.org/264773015

git-svn-id: svn://svn.chromium.org/blink/trunk@173271 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove Source/OWNERS
According to abarth, per-file doesn't actually work recursively, so this
file doesn't actually do anything. (In particular, it doesn't prevent
others than those listed from reviewing IDL changes.)

BUG=none

Review URL: https://codereview.chromium.org/266023004

git-svn-id: svn://svn.chromium.org/blink/trunk@173247 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Move [TypeChecking] to the interface for CRC2D
With all the methods converted the extended attribute can be moved from
individual methods to the interface.

Review URL: https://codereview.chromium.org/269723005

git-svn-id: svn://svn.chromium.org/blink/trunk@173217 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ed
Respect SVG fragment identifiers in <img> src attribute https://bugs.webkit.org/show_bug.cgi?id=129387
When providing an SVG image for a given renderer, check that the URL used to load
that image is taken into account in case it featured a fragment identifier, ensuring
that the CSS :target pseudo-class is correctly handled for SVG resources. This patch
is specific to <img> elements, specific support will also need to be added for various
CSS properties that support SVG images.

Based on the webkit patch by Antoine Quint <graouts@webkit.org>.

BUG=369513, 156584

Review URL: https://codereview.chromium.org/180973005

git-svn-id: svn://svn.chromium.org/blink/trunk@173213 bbb929c8-8fbe-4397-9dbb-9b2b20218538
joaoe
Move internal zip code from zip.cc to zip_internal.cc
Also added missing <vector> told by the linter, fixed leak of a zipFile
in ZipWithFilterCallback in case of error, and corrected error in function name.

BUG=359428

Review URL: https://codereview.chromium.org/222323002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@267815 0039d316-1c4b-4281-b951-d872f2087c98
fs
Apply TypeChecking to MediaSource IDLs
This allows cleaning up a number of null-checks, since the generated IDL
code now assures non-null where indicated in the IDL.
Also drop explicit throwTypeError() in MediaSourceBase::endOfStream, since
the bindings code would've thrown that already.
Add 'unrestricted' to the IDLs where the spec has them.

This updates to match spec. revision ba5233c6654d.
https://dvcs.w3.org/hg/html-media/rev/ba5233c6654d
...per W3 bug:
Bug 25347 - [MSE] 'nullable' arguments and type conversions and
INVALID_ACCESS_ERR (vs. WebIDL)
https://www.w3.org/Bugs/Public/show_bug.cgi?id=25347

One additional non-specced change is to mark arguments to
SourceBuffer.remove() as 'unrestricted' since that's the
semantics they expect.

BUG=368634
BUG=354298

Review URL: https://codereview.chromium.org/266453005

git-svn-id: svn://svn.chromium.org/blink/trunk@173197 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Prevent use of stale list length for to-animations of transform lists
When animating a transform list with a "To animation", the from value
will be the currently animated value, and hence the clear() in
SVGTransformList::calculateAnimatedValue will modify the fromList, and
clobber the |fromListSize| local variable - leading to an out-of-bounds
access.
To avoid this, acquire the reference to the effectiveFrom value earlier -
before the clear(). Also fold the single use of |fromListSize|.

BUG=368481

Review URL: https://codereview.chromium.org/261603002

git-svn-id: svn://svn.chromium.org/blink/trunk@173192 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Add use counters for a number of extensions and non-standard APIs
Found by searching for "extension" and "non-standard" in *.idl.

Some APIs which are documented as extension/non-standard in the IDL are
now standardized, and no counters were added for those, like
Document.readyState.

Ad-hoc testing was done in Firefox and IE. It looks like the comments
about IE/Mozilla/WebKit extensions are mostly accurate, and none of the
touched APIs are implemented in both Firefox and IE.

BUG=none

Review URL: https://codereview.chromium.org/268663005

git-svn-id: svn://svn.chromium.org/blink/trunk@173180 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Use [TypeChecking=Unrestricted] for HTMLMediaElement
BUG=354298
TBR=acolwell

Review URL: https://codereview.chromium.org/261783009

git-svn-id: svn://svn.chromium.org/blink/trunk@173150 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Use [TypeChecking=Unrestricted] for MediaController
BUG=354298
TBR=acolwell

Review URL: https://codereview.chromium.org/265743010

git-svn-id: svn://svn.chromium.org/blink/trunk@173148 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ljagielski
Fix for scoring password autofill candidates:
components/password_manager/core/browser/password_form_manager.cc:
PasswordFormManager::ScoreResult() - added signon realm matching. This fixes
a following situation: we have passwords saved in login db for 2 websites:
"https://service1.somedomain.com/path1" and "https://service2.somedomain.com/path2",
using the same username "someusername". We display login form on
"https://service1.somedomain.com/path3" and we receive password autofill
suggestion for "https://service2.somedomain.com/path2".

BUG=363090

Review URL: https://codereview.chromium.org/241033002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@267659 0039d316-1c4b-4281-b951-d872f2087c98
philipj
Add use counters for a number of prefixed APIs
BUG=none

Review URL: https://codereview.chromium.org/263633002

git-svn-id: svn://svn.chromium.org/blink/trunk@173066 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Add use counters for the hspace/vspace attributes on <table>
There's also a Gecko bug and a spec bug on this:
https://bugzilla.mozilla.org/show_bug.cgi?id=725646
https://www.w3.org/Bugs/Public/show_bug.cgi?id=23039

BUG=277080

Review URL: https://codereview.chromium.org/260713002

git-svn-id: svn://svn.chromium.org/blink/trunk@173041 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
add a linux_use_debug_fission gyp variable for -gsplit-dwarf
Since -gsplit-dwarf breaks some extremely useful build tools (eg ccache and icecc), it deserves its own gyp variable.  This setting replaces the previous hack, setting binutils_version=0.

Background:
ccache: https://bugzilla.samba.org/show_bug.cgi?id=10005
icecc: https://github.com/icecc/icecream/issues/86

BUG=352046

Review URL: https://codereview.chromium.org/226613005

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@267381 0039d316-1c4b-4281-b951-d872f2087c98
philipj
Remove stale FIXME about HTMLPreElement.width type
The HTML spec says "attribute long width":
http://whatwg.org/html#HTMLPreElement-partial

In Gecko this IDL attribute is also a number, but in IE11 it's a string.

BUG=none
NOTRY=true

Review URL: https://codereview.chromium.org/264713002

git-svn-id: svn://svn.chromium.org/blink/trunk@173039 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
[New Multicolumn] Faster and more direct RenderMultiColumnSet::multiColumnFlowThread().
No need to go via the parent block to get the flow thread.

Review URL: https://codereview.chromium.org/254883003

git-svn-id: svn://svn.chromium.org/blink/trunk@173025 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Use deferred style recalc for non-blocking stylesheets.
Non-blocking stylesheets like alternate stylesheets cause a synchronous style
recalc when finished loading. This is quite the opposite of what one would
expect as these stylesheets should not contribute to the style at all. We use
deferred style recalc to batch up the style recalcs instead.

It might be possible to further improve this by not doing a style recalc at
all, but that requires that we detect when a non-blocking stylesheet becomes
relevant by another link element setting the preferred stylesheet set to the
same name as that of an alternate stylesheet already added as non-blocking.

R=dglazkov@chromium.org
BUG=368659

Review URL: https://codereview.chromium.org/260713005

git-svn-id: svn://svn.chromium.org/blink/trunk@173012 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mmaliszkiewicz
Dragging shouldn't block interstitial page.
Interstitial page should send DragMsg_SourceSystemDragEnded message
even if it is not supporting dragging. For similar issue see
http://crbug.com/157134.

Review URL: https://codereview.chromium.org/258793004

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@267237 0039d316-1c4b-4281-b951-d872f2087c98
fs
Make CanvasGradient.addColorStop throw TypeError for non-finite offsets
This aligns with the spec and Gecko.

BUG=367648

Review URL: https://codereview.chromium.org/268443003

git-svn-id: svn://svn.chromium.org/blink/trunk@172988 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Mark HTMLMediaElement/MediaController.duration as unrestricted double
This does not change the generated code, it is only to match the spec:
http://whatwg.org/html#htmlmediaelement
http://whatwg.org/html#mediacontroller

BUG=354298

Review URL: https://codereview.chromium.org/266473003

git-svn-id: svn://svn.chromium.org/blink/trunk@172981 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Removed unused firstNew parameter for appendAuthorStyleSheets.
lazyAppendAuthorStyleSheets seems to handle cumulative addition of
stylesheets now.

Review URL: https://codereview.chromium.org/262643002

git-svn-id: svn://svn.chromium.org/blink/trunk@172980 bbb929c8-8fbe-4397-9dbb-9b2b20218538
andersr
Remove special cases for viewport units, and add tests for viewport units in calc().
The check for viewport units in AnimatableLength::interpolateTo should
no longer be necessary now that viewport values are resolved at style
recalc time.

BUG=137617,168840
TEST=animations/viewport-unit.html
     css3/calc/viewport-unit.html

Review URL: https://codereview.chromium.org/228063006

git-svn-id: svn://svn.chromium.org/blink/trunk@172971 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ed
Add tabindex handling in svg, by reusing code from html.
Besides adding the tabindex attribute also reflect it to the tabIndex IDL attribute on the SVGElement interface.

Spec: https://svgwg.org/svg2-draft/interact.html#sequential-focus-navigation-and-the-tabindex-attribute
IDL attribute: https://svgwg.org/svg2-draft/types.html#__svg__SVGElement__tabIndex

BUG=352175

Review URL: https://codereview.chromium.org/166163005

git-svn-id: svn://svn.chromium.org/blink/trunk@172964 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
[New Multicolumn] Make offsetLeft, offsetTop and getClientRects() behave.
Get rid of mapFromFlowToRegion() and mapLocalToContainer() in
RenderFlowThread, and reimplement columnOffset() in
RenderMultiColumnFlowThread instead. This method is already used a lot
in the engine, but it has up until now only worked with the old multicol
implementation. Need to add a call from
RenderBox::offsetFromContainer(), since the one that's already there
is for old multicol only and does special stuff.

This incidentally also gets rid of assertion failures in
RenderGeometryMap when compositing is turned on (what used to be in
RenderFlowThread::mapLocalToContainer() did the wrong thing if the
target was that flow thread itself). Re-enable tests that used to
fail on that assertion.

BUG=367688,364960

Review URL: https://codereview.chromium.org/256743006

git-svn-id: svn://svn.chromium.org/blink/trunk@172961 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Add use counters for a number of non-standard APIs on Window
BUG=none

Review URL: https://codereview.chromium.org/260313002

git-svn-id: svn://svn.chromium.org/blink/trunk@172955 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove the HTMLMediaElementControllerNotNull use counter
The counter was added to help decide what to do with MediaController.
Now that MediaController has been unshipped, the use counter won't
provide useful data.

BUG=none

Review URL: https://codereview.chromium.org/260583002

git-svn-id: svn://svn.chromium.org/blink/trunk@172949 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove unused UseCounter features
These are the bugs in which the enum values became unused:

LegacyNotifications/LegacyTextNotifications:
https://code.google.com/p/chromium/issues/detail?id=348019

LegacyWebAudio/WebAudioStart:
https://code.google.com/p/chromium/issues/detail?id=358398

PrefixedShadowRootConstructor:
https://code.google.com/p/chromium/issues/detail?id=242153

SVGAnimateColorElement:
https://code.google.com/p/chromium/issues/detail?id=332839

PrefixedMediaSourceOpen:
https://code.google.com/p/chromium/issues/detail?id=363444

JavascriptExhaustedMemory:
https://code.google.com/p/chromium/issues/detail?id=347724

BUG=none

Review URL: https://codereview.chromium.org/263503002

git-svn-id: svn://svn.chromium.org/blink/trunk@172937 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
PartitionAlloc: Make in-place realloc() less likely to happen
On direct mapped allocations, we support downsizing realloc() in-place.
As part of trying to figure out what causes apparent OOM crashes, do this
only in much more restricted circumstances:

 - Only down to 80 % of the size of the original mapping.
 - Only down to sizes larger than the maximum bucketed allocation size.

BUG=368406

Review URL: https://codereview.chromium.org/254103003

git-svn-id: svn://svn.chromium.org/blink/trunk@172932 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Start using the mediaControlsOverlayPlayButtonEnabled setting
BUG=366675

Review URL: https://codereview.chromium.org/254633002

git-svn-id: svn://svn.chromium.org/blink/trunk@172923 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Gracefully support Navigator Gamepad methods in a detached state.
If the frame and window of a Navigator has been detached (closed), the
Navigator Gamepad methods must still continue to be available. Arrange
for that to happen by allowing the Gamepad Navigator supplement to
be creatable without a frame.

R=
BUG=355783

Review URL: https://codereview.chromium.org/256593010

git-svn-id: svn://svn.chromium.org/blink/trunk@172920 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Ensure style resolver is created to avoid crash.
The style resolver may be cleared by DOM modifications in event handlers
prior to changing the :focus/:active/:hover state. Use ensureStyleResolver()
instead of just styleResolver() to make sure its created to be able to
schedule style invalidations.

R=esprehn@chromium.org
BUG=368017,368026

Review URL: https://codereview.chromium.org/259213002

git-svn-id: svn://svn.chromium.org/blink/trunk@172907 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Move Window use counters from DOMWindow.cpp to Window.idl where possible
None of these are used internally, but even if they were it's better to
measure at the bindings level to only measure Web-exposed usage.

BUG=none

Review URL: https://codereview.chromium.org/251043007

git-svn-id: svn://svn.chromium.org/blink/trunk@172900 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: build fix after r172864.
R=haraken@chromium.org
BUG=363569
NOTRY=true

Review URL: https://codereview.chromium.org/260453002

git-svn-id: svn://svn.chromium.org/blink/trunk@172870 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Enable the mediaControlsOverlayPlayButtonEnabled setting on Android
BUG=366675

Review URL: https://codereview.chromium.org/257643002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@266800 0039d316-1c4b-4281-b951-d872f2087c98
philipj
Sync VTTCue.align/vertical with spec
http://dev.w3.org/html5/webvtt/#vttcue-interface

The tests have already been fixed in web-platform-tests:
https://github.com/w3c/web-platform-tests/commit/5e4f41f421cc87e8bdd154043e20531cc79ec76d

BUG= 367555

Review URL: https://codereview.chromium.org/254833003

git-svn-id: svn://svn.chromium.org/blink/trunk@172854 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Cleanup: Replace adjustForColumns() / offsetForColumns() with columnOffset().
Most of the former adjustForColumns() call sites now look simpler,
since they call a method that returns the offset instead of using
pass-by-reference.

R=ojan@chromium.org

Review URL: https://codereview.chromium.org/259993006

git-svn-id: svn://svn.chromium.org/blink/trunk@172853 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Measure Event.returnValue usage in more detail
As suggested by Boris Zbarsky:
https://www.w3.org/Bugs/Public/show_bug.cgi?id=25002#c2

BUG=none

Review URL: https://codereview.chromium.org/256773006

git-svn-id: svn://svn.chromium.org/blink/trunk@172829 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Unship MediaController by making it an experimental runtime-enabled feature
Intent to Unship:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/MVcoNSPs1UQ/LIF-fvu2lwoJ

BUG=none

Review URL: https://codereview.chromium.org/250553006

git-svn-id: svn://svn.chromium.org/blink/trunk@172814 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Compute and use BiDi information in SVGTextMetricsBuilder
This extends upon https://codereview.chromium.org/104813005, by computing
(and plumbing) directionality information for SVG text elements.
The method used is similar to that used by
RenderText::computePreferredLogicalWidths although simplified somewhat.

BUG=366939

Review URL: https://codereview.chromium.org/253823002

git-svn-id: svn://svn.chromium.org/blink/trunk@172799 bbb929c8-8fbe-4397-9dbb-9b2b20218538
msimonides
Revert LOGs inadvertently added in r265615.
Review URL: https://codereview.chromium.org/256593006

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@266539 0039d316-1c4b-4281-b951-d872f2087c98
philipj
Add use counters for "IE Extensions" to the Event interface
BUG=none

Review URL: https://codereview.chromium.org/256093003

git-svn-id: svn://svn.chromium.org/blink/trunk@172755 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Removed unused matching behavior.
MatchOnlyUserAgentRules used to be used for an incorrect evaluation of REM
units in media queries. No longer needed.

Review URL: https://codereview.chromium.org/258023004

git-svn-id: svn://svn.chromium.org/blink/trunk@172751 bbb929c8-8fbe-4397-9dbb-9b2b20218538
bratell
Compact JS resource better by using rjsmin.
We have a jsminimizer (not very good but we have it) in blink so we
should use it.

BUG=359583

Review URL: https://codereview.chromium.org/252633006

git-svn-id: svn://svn.chromium.org/blink/trunk@172748 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Fix TextTrackList event attribute lookups when in a detached state.
The TextTrackList object that is attached to a media element can
(non Oilpan) live beyond that of its owning media element. The object
is also an event target, with the events being fired by its owning
media element. Consequently, the execution context is equal to that
of its owner element.

Adjust the TextTrackList's execution context lookup to reflect
that -- if the owner element is not present, there simply is no
execution context.

R=haraken@chromium.org
BUG=365260

Review URL: https://codereview.chromium.org/252843005

git-svn-id: svn://svn.chromium.org/blink/trunk@172741 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Add a mediaControlsOverlayPlayButtonEnabled setting
This will be followed by a patch to enable the setting on Android and
then a patch to actually let the setting enable/disable the button.

BUG=366675

Review URL: https://codereview.chromium.org/250533003

git-svn-id: svn://svn.chromium.org/blink/trunk@172737 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Update the <canvas> IDLs wrt 'unrestricted'
With the basic support for 'unrestricted' from
https://codereview.chromium.org/257783003 its possible to turn 'float'
into 'unrestricted float' where the spec has the attribute/parameter
marked that way.
Also apply 'unrestricted' to all the non-standard APIs.
When the actual support has landed it should be possible to remove any
explicit throwing as well, so mark such locations with FIXMEs.

BUG=367648

Review URL: https://codereview.chromium.org/257853002

git-svn-id: svn://svn.chromium.org/blink/trunk@172733 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Allow fragment navigation from <svg:a>
This essentially reverts the fix for WK bug #19995 while adding a test for
the (new) expected behavior.

BUG=296071

Review URL: https://codereview.chromium.org/249313005

git-svn-id: svn://svn.chromium.org/blink/trunk@172722 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Sync test expectations after r172680.
r172680 retired a set of unsound DOMWindow destructor asserts; remove
the flaky test expectations that had been added due to them.

R=
BUG=349528, 356992, 356994, 356995, 357069, 357460, 357461, 366043

Review URL: https://codereview.chromium.org/258713007

git-svn-id: svn://svn.chromium.org/blink/trunk@172715 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: move DOMException to the heap.
R=
BUG=340522

Review URL: https://codereview.chromium.org/254923002

git-svn-id: svn://svn.chromium.org/blink/trunk@172708 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Removed parameter that is always true.
The dirty parameter to InlineBox::markDirty is now always true. Remove it.
Follow-up after landing https://codereview.chromium.org/254573006/

R=leviw@chromium.org

Review URL: https://codereview.chromium.org/257763004

git-svn-id: svn://svn.chromium.org/blink/trunk@172704 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Use invalidation sets for :hover, :active, and :focus.
Store an invalidation set for each of :hover, :active, and :focus and use
those instead of SubtreeStyleChange when the state changes for elements which
have childrenAffectedBy*.

R=esprehn@chromium.org,chrishtr@chromium.org
BUG=351613

Review URL: https://codereview.chromium.org/220943002

git-svn-id: svn://svn.chromium.org/blink/trunk@172703 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
[New Multicolumn] Create RenderMultiColumnSet during renderer creation, not during layout.
This allowed for removal of 2 parameters to regionAtBlockOffset(), and
we can also make it const now.

Also make some preparations for multiple RenderMultiColumnSet
objects. This is required by column-span:all.

Add some generic multicol documentation in front of the class definition
of RenderMultiColumnFlowThread, since that's the main class for multicol.
Also improved RenderMultiColumnSet documentation somewhat.

All this is just code improvements; no behavioral changes intended.

Review URL: https://codereview.chromium.org/246403015

git-svn-id: svn://svn.chromium.org/blink/trunk@172698 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove always-false settings for text track selection
Since these settings were not exposed to Chromium or set in any other
way, they were always false. shouldDisplayTextDescriptions was not even
used internally.

While the text track selection needs to be improved, but these settings
made it look like it was more sophisticated than it really is. A new
setting for hard-of-hearing users (preferring captions over subtitles)
may eventually be needed, but that would be a single setting only.

The removed comment no longer makes sense, because the maximum value
returned by textTrackSelectionScore is now the return value of
textTrackLanguageSelectionScore, which is not greater than itself...

BUG=none

Review URL: https://codereview.chromium.org/250923003

git-svn-id: svn://svn.chromium.org/blink/trunk@172695 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Disable the HTMLVideoElement-specific prefixed fullscreen API (2nd attempt)
BUG=346236

Review URL: https://codereview.chromium.org/251873002

git-svn-id: svn://svn.chromium.org/blink/trunk@172693 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Remove unused RenderBlock::regionAtBlockOffset()
Review URL: https://codereview.chromium.org/250913002

git-svn-id: svn://svn.chromium.org/blink/trunk@172690 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove window.performance.webkitGet*
Intent to Remove:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/ItNwgL2Mv_E/AgPiVBz1gUwJ

BUG=366325

Review URL: https://codereview.chromium.org/253353002

git-svn-id: svn://svn.chromium.org/blink/trunk@172683 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Remove unsound asserts in the DOMWindow destructor.
DOMWindow creates its sub-objects (Location, History, ..) on first
access, and when the window is closed and detached from its frame,
those sub-objects are cleared out. When the DOMWindow object is
subsequently destructed, we assert that those objects have all been
cleared (i.e., that reset() has been called and the expected window
shutdown sequence was followed.)

However, the wrapper object is still alive, so if scripts access the
sub-objects of this detached&reset window object, they'll be created
again. As they need to be, but this invalidates the condition that the
destructor asserts for -- one or more of these objects will now be
set.

Remove the invalid asserts, but do check that reset()
has been called (at least once) before a DOMWindow is destructed.

R=abarth@chromium.org
BUG=351133

Review URL: https://codereview.chromium.org/258843002

git-svn-id: svn://svn.chromium.org/blink/trunk@172680 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r172658.
DOMExceptions aren't yet on the Oilpan heap; adjust transition types
accordingly in ServiceWorkerError.

R=
BUG=340522

Review URL: https://codereview.chromium.org/250883005

git-svn-id: svn://svn.chromium.org/blink/trunk@172676 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Avoid markDirty when removing out-of-flow line boxes.
Previously, we did a markDirty(false) on the root line box in order to
rectify the dirtyness caused by removing out-of-flow line boxes after layout.
However, there were line boxes between root line box and the out-of-flow box
that were left dirty. Instead we now avoid calling markDirty in the first
place and remove the rectification code.

Likewise, avoid markDirty when removing empty text renderers as mentioned in
the removed comment. I tried to stop removing line boxes for the empty text
renderers as the FIXME says, but the changed test expectations got too scary.

Alternatively, we would have had to traverse the line box tree until we had
cleaned all dirty bits.

R=leviw@chromium.org,eseidel@chromium.org
BUG=362671

Review URL: https://codereview.chromium.org/254573006

git-svn-id: svn://svn.chromium.org/blink/trunk@172550 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Remove unused methods and variables in RenderFlowThread.
Review URL: https://codereview.chromium.org/253393004

git-svn-id: svn://svn.chromium.org/blink/trunk@172549 bbb929c8-8fbe-4397-9dbb-9b2b20218538
andersr
Preserve identical values for background-size and -webkit-mask-size.
This patch fixes a bug where background-size/-webkit-mask-size would be
incorrectly serialized to text when the values in the pair are identical.
Setting 'background-size: 100% 100%', for example, would produce a text
representation of 'background-size: 100%', which is treated as
'background-position: 100% auto'.

For -webkit-background-size, '100%' really does mean '100% 100%', so we
maintain a policy of 'DropIdenticalValues' for this property.

BUG=364962
TEST=fast/backgrounds/size/parsing-background-sizes-values.html
     fast/masking/parsing-mask.html

Review URL: https://codereview.chromium.org/249803002

git-svn-id: svn://svn.chromium.org/blink/trunk@172548 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove RuntimeEnabledFeatures.h includes from a few headers
Changing RuntimeEnabledFeatures.in requires many files to be recompiled.
Getting rid of these unnecessary includes didn't help much, but still...

BUG=none

Review URL: https://codereview.chromium.org/250583003

git-svn-id: svn://svn.chromium.org/blink/trunk@172527 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Measure webkitClearResourceTimings() and webkitSetResourceTimingBufferSize()
BUG=none

Review URL: https://codereview.chromium.org/258613003

git-svn-id: svn://svn.chromium.org/blink/trunk@172517 bbb929c8-8fbe-4397-9dbb-9b2b20218538
kjakubowski
Fixed routing id in WebPluginProxy::CheckIfRunInsecureContent.
Wrong routing id in this function may cause a hang on some web-pages (process will wait for a response after sending a message which never gets delivered).

Message PluginHostMsg_CheckIfRunInsecureContent is handled in WebPluginDelegateProxy::OnMessageReceived, so instead of host_render_view_routing_id_, route_id_ should be used (just like in WebPluginProxy::URLRedirectResponse).

Review URL: https://codereview.chromium.org/246253006

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@265913 0039d316-1c4b-4281-b951-d872f2087c98
philipj
Disable the activation behavior of media elements (click to play/pause)
Sites that implement click to play/pause using JavaScript without
calling preventDefault() have unfortunately surfaced. This is serious
since at worst the videos are completely unplayable.

A remedy would be http://crbug.com/269454 so that no events are fired
when the native controls are used. Revert the activation behavior for
now, in order to try again after that has been fixed.

This partially reverts r169812 and r170789.

BUG=354746, 358675

Review URL: https://codereview.chromium.org/249483002

git-svn-id: svn://svn.chromium.org/blink/trunk@172484 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove useless calls to DOMImplementation::hasFeature("XML", String())
These calls will always return true, so this was dead code.

BUG=none

Review URL: https://codereview.chromium.org/254423002

git-svn-id: svn://svn.chromium.org/blink/trunk@172483 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Uninline JSON{Array,Object}Base methods
Most of these are sizable enough to not want to inline too eagerly. Move
their definitions from the header-file to the cpp-file while dropping the
'inline' keyword.

Review URL: https://codereview.chromium.org/247573009

git-svn-id: svn://svn.chromium.org/blink/trunk@172482 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Add synonyms for collection types over MutationObserver-related types.
With r172148, the MutationObserver collection types got even bulkier.
Tidy up and shorten by adding some typedefs.

R=haraken@chromium.org
BUG=

Review URL: https://codereview.chromium.org/257513002

git-svn-id: svn://svn.chromium.org/blink/trunk@172475 bbb929c8-8fbe-4397-9dbb-9b2b20218538
davve
Make <iframe> containing SVG behave as every other <iframe>
When an SVG is contained inside an <iframe>, its dimensions should not
be part of size calculations of the <iframe>. Neither should the SVG's
own width and height be ignored when sizing the <svg> inside the
<iframe>

The specification waters are murky here but this aligns Blink with
Firefox and IE.

BUG=308992,364051

Review URL: https://codereview.chromium.org/246933007

git-svn-id: svn://svn.chromium.org/blink/trunk@172467 bbb929c8-8fbe-4397-9dbb-9b2b20218538
elisabets
Added a public function to cancel any fling gestures
BUG=

Review URL: https://codereview.chromium.org/227303004

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@265808 0039d316-1c4b-4281-b951-d872f2087c98
sigbjornf
document.open(): gracefully handle exception thrown on window.open access.
Check if the "open" property lookup on the global object returned anything
before attempting to use it.

R=haraken@chromium.org
BUG=365659
TEST=fast/js/document-open-getter-throw-no-crash.html

Review URL: https://codereview.chromium.org/249653002

git-svn-id: svn://svn.chromium.org/blink/trunk@172407 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: add transition types to track interface objects.
With Oilpan enabled, make TextTrack, TextTrackCue, VTTCue, TextTrackList,
TextTrackCueList, VTTRegion, VTTRegionList and VTTParser garbage
collected objects.

Along with doing so, the references between these objects are now (strong)
Member references, and not asymmetric RefPtr+raw pointer pairs needed
to break cycles. This means these inter-related objects will live
and die together.

Simpler to reason about, and prevents problematic cases where if a
"child" object (e.g., a text track cue object) is held onto longer
than its parent track object (or its track list), you'd be unable to
keep those "parent" objects alive. The best we can currently do without
Oilpan strong member references is to clear out the raw back pointers
upon destructing the parent. And we still do in the non-Oilpan case.

R=haraken@chromium.org,ager@chromium.org
BUG=340522

Review URL: https://codereview.chromium.org/244493002

git-svn-id: svn://svn.chromium.org/blink/trunk@172365 bbb929c8-8fbe-4397-9dbb-9b2b20218538
msimonides
Create CrxInstaller directly in WebstoreInstaller
The WebstoreInstaller needs a way to keep track of extensions being
downloaded and installed. The installation is handled by CrxInstaller
but when it used to be created automatically by the
ChromeDownloadManagerDelegate, the WebstoreInstaller had little control
over it and needed the CrxInstaller to keep the original_download_url as
sort of an identifier.

With this change the WebstoreInstaller creates the CrxInstaller itself
and keeps a pointer to it so there is no more need for
CrxInstaller::original_download_url().

This is also more robust because URLs are not unique identifiers (there
could be two installations run simultaneously for one download URL which
would have led to a crash in the old code).

BUG=360487

Review URL: https://codereview.chromium.org/226023003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@265615 0039d316-1c4b-4281-b951-d872f2087c98
haavardm
Fix link error when compiling with OpenSSL while using OS certs.
Turn off OpenSSL client auth tests when use_openssl_certs==0.

OS client certifiates other than OpenSSL's struct x509 are not
yet supported for the OpenSSL integration.


BUG=None
TEST=None

Review URL: https://codereview.chromium.org/233133002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@265610 0039d316-1c4b-4281-b951-d872f2087c98
davve
Synchronize attribute before animation ends
After https://codereview.chromium.org/26390004, width and height on
SVGSVGElement are presentation attributes. When they are animated,
they must be synchronized to the attribute system so that the
presentation attribute code can rebuild the corresponding style.

Prior to this patch, the last synchronization (back to base value or
to fill value) never happened because the synchronization happened
after the animation had ended. No animation means no synchronization.
This patch adds a final synchronization before the animation ends so
that the final value is properly synchronized.

BUG=308992,364807

Review URL: https://codereview.chromium.org/248503004

git-svn-id: svn://svn.chromium.org/blink/trunk@172353 bbb929c8-8fbe-4397-9dbb-9b2b20218538
tsniatowski
Fix client certificate regressions on Android < 4.2
https://codereview.chromium.org/166143002 refactored the code to use the
AndroidPrivateKey wrapper class rather than Java's PrivateKey directly,
but this one line of code was not updated.  As a result, the test will
always fail and client certificates won't work on Android versions prior
to 4.2 (this is a compatibility code path, which is probably why it
wasn't caught in testing or review).

In addition, while https://codereview.chromium.org/182933002 updated the
code to to fix 64-bit compilation issues, it missed the point that this
is compatibility code meant to run only on earlier versions of Android
that aren't 64-bit safe to begin with. As a result, a method called via
reflection will return an unexpected integer instead of a long, causing
the code to fail (even in 32-bit mode).

Fix by conservatively casting the return value through Number instead,
which will work with both int and long. (The earlier Android versions
that this code is targeting are still not 64-bit safe, but the
compatibility code should not cause any compile issues.)

Investigation credit goes out to kimn@opera.com.

BUG=360406

Review URL: https://codereview.chromium.org/246423004

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@265531 0039d316-1c4b-4281-b951-d872f2087c98
sigbjornf
Adjust Screen's derived Oilpan type after r172152
Following r172152, Screen is no longer an EventTarget. Hence we can
simplify it to derive from GarbageCollectedFinalized only.

R=
BUG=162827

Review URL: https://codereview.chromium.org/246253008

git-svn-id: svn://svn.chromium.org/blink/trunk@172289 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Allow hex-style colors to be parsed by fastParseColor in strict mode
Hex-style colors (#rrggbb, #rgb) are valid in strict mode too so allow
them to be parsed if |strict| == true.
This prevents unnecessarily falling back to the Bison parser in
BisonCSSParser::parseColor in these cases.

BUG=365560

Review URL: https://codereview.chromium.org/246833005

git-svn-id: svn://svn.chromium.org/blink/trunk@172150 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: move mutation observers to the Oilpan heap.
R=haraken@chromium.org,erik.corry@gmail.com
BUG=340522

Review URL: https://codereview.chromium.org/236653002

git-svn-id: svn://svn.chromium.org/blink/trunk@172148 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Pass 'name' to value getters in InspectorBackendDispatcher as const char*
This avoids generating code for the literal -> WTF::String implicit
conversions in all callsites.

Review URL: https://codereview.chromium.org/247193004

git-svn-id: svn://svn.chromium.org/blink/trunk@172143 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ed
SVG does not respect overflow:visible.
For standalone svg documents, always clip to the viewport ('auto' acts as 'hidden').

For 'overflow: hidden | scroll' on any svg element: clip.
For 'overflow: auto | visible' on any svg element: don't clip.

New behaviours for stand-alone svg documents:
* overflow-x and overflow-y for controlling each scrollbar independently is now supported.
* overflow:scroll will display scrollbars regardless of the svg overflowing or not (as required by CSS).
* overflow:hidden will cause overflow to be clipped away and scrollbars to be hidden.

BUG=231577

Review URL: https://codereview.chromium.org/220853002

git-svn-id: svn://svn.chromium.org/blink/trunk@172126 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
In generated interface header files, #include Handle.h from its new home.
It has moved to platform/heap/Handle.h.

R=haraken, nbarth

Review URL: https://codereview.chromium.org/245783002

git-svn-id: svn://svn.chromium.org/blink/trunk@172117 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Make text track and cue wrapper objects dependent on their media element.
If a TextTrack or VTTCue (TextTrackCue) object is added to a media
element, indirectly by way of addCue() or addTextTrack(), arrange for
their wrapper objects to be registered as dependents  of the media
element's wrapper so as to keep these wrapper objects alive.

This is done so that when we later need to return back a wrapper
for the underlying track/cue object, the same wrapper object is returned.

R=acolwell@chromium.org
BUG=358109

Review URL: https://codereview.chromium.org/242113012

git-svn-id: svn://svn.chromium.org/blink/trunk@172065 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
[New Multicolumn] Destroy line box tree when evacuating the flowthread for multicol.
The life of (in)line boxes is mysterious. They are allowed to
temporarily point to dead inline children or line box parents. It's
also allowed for InlineTextBox objects to be unrooted temporarily,
apparently. All this should be cleaned up, but for now, just do the
same in the new multicol code as everywhere else: manually take care
of deleting the line box tree before destroying the box you're
emptying.

BUG=362865

Review URL: https://codereview.chromium.org/236913002

git-svn-id: svn://svn.chromium.org/blink/trunk@172054 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
[New Multicolumn] Make floats affect heights correctly.
Don't let overhanging floats bleed into sibling column sets or into the parent block flow.

Let RenderFlowThread establish a new block formatting context, so that its
height encompasses all descendant floats.

BUG=361551

Review URL: https://codereview.chromium.org/242203003

git-svn-id: svn://svn.chromium.org/blink/trunk@171996 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
disable more stacktrace usage in debug uclibc builds
Here are a couple more instances of OutputToStream / Print that are
no longer available in uClibc builds.

BUG=361130

Review URL: https://codereview.chromium.org/234803002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@264887 0039d316-1c4b-4281-b951-d872f2087c98
philipj
Remove the HTMLSourceElement.media IDL attribute
Intent to Remove:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/QuoobqOUCR0/3tNH-_gX6LwJ

BUG=338197

Review URL: https://codereview.chromium.org/240153003

git-svn-id: svn://svn.chromium.org/blink/trunk@171970 bbb929c8-8fbe-4397-9dbb-9b2b20218538
davve
Rework SVG sizing
The basis of this change is to map explicit width and height
attributes to CSS properties, essentially promoting them to
presentation attributes. Note that implicit "100%" width and height
are not mapped.

This enables us to remove the concept of "percentage intrinsic size"
and rely on normal CSS rules to resolve percentage values.

The change has been approved by the SVG WG and the spec is being
updated. Minutes here:

http://www.w3.org/2014/04/07-svg-minutes.html#item03

Many of the -expected updates are caused by SVG size changes in turn
affecting where line breaks are inserted.

BUG=308992

Review URL: https://codereview.chromium.org/26390004

git-svn-id: svn://svn.chromium.org/blink/trunk@171958 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mharanczyk
Limit extension autoupdates timer maximum scheduled delay.
Extension autoupdate will be triggered at maximum delay of
update frequency from startup. Stored next update check will
be used only if it is reasonably far into future. This will prevent
users from virtually disabling extensions autoupdate by changing system time.

BUG=364445

Review URL: https://codereview.chromium.org/240333010

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@264771 0039d316-1c4b-4281-b951-d872f2087c98
fs
Handle the DOMString case of CRC2D.fillStyle/strokeStyle correctly
Non-CanvasGradient/CanvasPattern objects would not be ToString(v)'d and
have the result assigned/parsed as a color-string.
Implement this by checking for CanvasGradient/CanvasPattern first,
and then invole ToString() on the value.

BUG=364008

Review URL: https://codereview.chromium.org/237743007

git-svn-id: svn://svn.chromium.org/blink/trunk@171852 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jadahl
gpu: Remove left-over empty class declaration
ScopedSafeSharedMemory was removed in "GPU: Remove memory duplication in
async uploads." so lets remove this empty declaration as well.

BUG=

Review URL: https://codereview.chromium.org/237673016

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@264469 0039d316-1c4b-4281-b951-d872f2087c98
sigbjornf
Oilpan: fix build after r171843.
R=
BUG=357586
NOTRY=true

Review URL: https://codereview.chromium.org/240503006

git-svn-id: svn://svn.chromium.org/blink/trunk@171845 bbb929c8-8fbe-4397-9dbb-9b2b20218538
bratell
gyp performance: don't invoke python to check dir existance
We spend a few tenths of a second every gyp invocation starting
the dir_exists.py program. Seems a bit unnecessary.

BUG=362075
R=scottmg@chromium.org

Review URL: https://codereview.chromium.org/234963003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@264316 0039d316-1c4b-4281-b951-d872f2087c98
bratell
gyp performance: Add a DoMain version of build/compiler_version
No need to start a full python interpreter for compiler_version.py. This saves about 0.6 CPU seconds.

BUG=362075
R=scottmg@chromium.org

Review URL: https://codereview.chromium.org/235083003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@264303 0039d316-1c4b-4281-b951-d872f2087c98
fs
Don't parse colors for <canvas> in quirks mode
Use 'strict' mode when parsing colors, to disallow hex-color
specifications without a leading '#'.

BUG=364008

Review URL: https://codereview.chromium.org/237743009

git-svn-id: svn://svn.chromium.org/blink/trunk@171791 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Use StrictTypeChecking for ImageBitmap
Add [StrictTypeChecking] to the 'ImageBitmapFactories' interface and
the 'Window' partial interface. This doesn't change behavior in practice,
but signals that it has been considered.
Drop the unnecessary null-checks in the implementation.

Review URL: https://codereview.chromium.org/240103002

git-svn-id: svn://svn.chromium.org/blink/trunk@171790 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove DOMImplementation.createCSSStyleSheet()
Intent to Remove:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/uDjkuGA9gQs/zytnzJ6WryYJ

Without createCSSStyleSheet() it becomes a bit more difficult to create
a CSSStyleSheet which is not reachable from elsewhere, but it's still
possible. Note that the updated tests still do fail, the reason being
explained in ~CSSStyleSheet().

BUG=363561

Review URL: https://codereview.chromium.org/238303004

git-svn-id: svn://svn.chromium.org/blink/trunk@171766 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r171701
NOTRY=true
BUG=340522

Review URL: https://codereview.chromium.org/239603006

git-svn-id: svn://svn.chromium.org/blink/trunk@171724 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Use the media controls play button internal state for painting
MediaControlElement::displayType() is not actually used for rendering,
the logic is instead duplicated in RenderMediaControls, sometimes with
minor differences. When scrubbing was made internal to the controls in
r169814, I neglected to update the corresponding rendering code.

BUG=359522

Review URL: https://codereview.chromium.org/239113003

git-svn-id: svn://svn.chromium.org/blink/trunk@171706 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
[New Multicolumn] Stay out of the old multicol machinery for column-span:all.
Note that column-span:all isn't supported in the new implementation yet,
but while we wait for that to happen, the least thing we can do is to stay alive.
We're not going to use this code in the new implementation anyway, when we get there.

BUG=344360

Review URL: https://codereview.chromium.org/237673006

git-svn-id: svn://svn.chromium.org/blink/trunk@171688 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
[New Multicolumn] Temporarily changing height is scary and can easily be avoided.
Storing the height and setting it to zero afterwards, just to be able to
calculate desired column height, and to determine if it's auto or not, may
have undesired side-effects, and is easily avoidable.

Review URL: https://codereview.chromium.org/239003003

git-svn-id: svn://svn.chromium.org/blink/trunk@171687 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Remove RenderBlock::pushToNextPageWithMinimumLogicalHeight().
It is currently never called, because we always have "uniform page
height". If we would ever get non-uniform page height in the future,
though, that method would do the wrong thing anyway, and prevent us
from inserting breaks. So just get rid of it for now.

Review URL: https://codereview.chromium.org/239243002

git-svn-id: svn://svn.chromium.org/blink/trunk@171686 bbb929c8-8fbe-4397-9dbb-9b2b20218538
davve
Fix off-by-one error in RasterShape of CSS shapes
Be consistent about using end-point exclusive intervals. Before this
patch we created an end-point _inclusive_ interval when scanning to
then end of the line, but an end-point _exclusive_ when ending an
interval somewhere along the scan-line because of a triggered alpha
channel threshold.

Examples:

 01234..
[XXXXXXXXXXXXXXXXXXXX] (X means above alpha channel threshold)

would create the interval 0-19. Since we haven't triggered the alpha
channel threshold, and x points at the last index (19) the end point
is included in the interval and we're supposedly creating an end-point
inclusive interval.

But in the other case:

 01234..
[XXXXXXXXXX..........]

would create the interval 0-10, because when we notice that the alpha
channel threshold doesn't hold, we're already outside the interval,
and x is excluded from the interval meaning we supposedly want to
create a end-point exclusive interval.

To make up for the end-point inclusive intervals,
RasterShape::getExcludedIntervals added an increment to get end-point
exclusive intervals, since that is what the caller of
getExcludedIntervals expects. This obviously broke the other case. We
did have a test for the other case, but the off-by-one error was
accounted for in the test.

After this patch, Shape::createRasterShape always creates end-point
exclusive intervals so we can remove the increment and fix the test.

BUG=363126

Review URL: https://codereview.chromium.org/237123002

git-svn-id: svn://svn.chromium.org/blink/trunk@171569 bbb929c8-8fbe-4397-9dbb-9b2b20218538
andersr
Re-land "Improve support for :read-only and :read-write pseudoclasses".
The fix was reverted because it appeared to cause a security issue.
(It didn't).

Previous review: https://codereview.chromium.org/148223004

BUG=338309,353143
TEST=fast/css/readwrite-contenteditable.html
     fast/css/readwrite-contenteditable-recalc.html

Review URL: https://codereview.chromium.org/236753004

git-svn-id: svn://svn.chromium.org/blink/trunk@171564 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Deprecate HTMLHtmlElement.manifest
Intent to Deprecate:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/DZecJyapzjM/zv25Xu1t5_oJ

BUG=none

Review URL: https://codereview.chromium.org/236813004

git-svn-id: svn://svn.chromium.org/blink/trunk@171503 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Iron out some kinks in SVG IDL files
This drops a few "[Default=Undefined] optional" from method arguments to
match the expected arity checking behavior.
Matches Gecko and the spec where applicable.

For SVGAnimationElement.{begin,end}ElementAt, block all non-finite values
as per the WebIDL 'float' type.

BUG=311246

Review URL: https://codereview.chromium.org/231143002

git-svn-id: svn://svn.chromium.org/blink/trunk@171485 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Add StrictTypeChecking to CRC2D ImageData APIs
This moves the null-check out into generated bindings code.
The test canvas/philip/tests/2d.imageData.create1.zero.html is (minimally)
adjusted to match the revised upstream WPT test.

Review URL: https://codereview.chromium.org/237063003

git-svn-id: svn://svn.chromium.org/blink/trunk@171484 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Add StrictTypeChecking to CRC2D.{drawImage,createPattern}
This moves the null-check out into generated bindings code.
The non-standard method drawImageFromRect(...) keeps the null-check,
and has its first argument marked nullable because of that.

Review URL: https://codereview.chromium.org/232313004

git-svn-id: svn://svn.chromium.org/blink/trunk@171477 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Add StrictTypeChecking to CRC2D.{drawFocusIfNeeded,drawCustomFocusRing}
'null' should not be allowed per current spec. so modify tests accordingly.

BUG=363148

Review URL: https://codereview.chromium.org/237063002

git-svn-id: svn://svn.chromium.org/blink/trunk@171474 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Use StrictTypeChecking for methods on CRC2D that accepts Path2D
This moves the null-check out into generated bindings code. Since there's
no longer a need to throw (explicitly) the ExceptionState argument can be
dropped from the signatures.

Review URL: https://codereview.chromium.org/232913004

git-svn-id: svn://svn.chromium.org/blink/trunk@171471 bbb929c8-8fbe-4397-9dbb-9b2b20218538
elisabets
Add a call to hide the popup when the render process dies.
Prevent persistent popups after the render process has died, also resetting
scroll accounting and gesture detection.

Review URL: https://codereview.chromium.org/233103002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@263613 0039d316-1c4b-4281-b951-d872f2087c98
fs
Simplify CRC2D winding rule handling
Since the bindings already check the enumeration, there's no need to
check that the value passed is valid. Make the parseWinding helper function
just return the translated value instead of a status boolean.

Review URL: https://codereview.chromium.org/226733004

git-svn-id: svn://svn.chromium.org/blink/trunk@171438 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
Chromeos and non-X11 unix builds should not hit NOTREACHED when pasting.
BUG=361341
TEST=ClickModifierTest.WindowOpenShiftMiddleClickTest

Review URL: https://codereview.chromium.org/224843013

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@263420 0039d316-1c4b-4281-b951-d872f2087c98
mostynb
make it possible to set use_system_harfbuzz from outside
harfbuzz.gyp overrides any user-specified value for use_system_harfbuzz.
Ideally, it should only override this value for official builds.

BUG=353127

Review URL: https://codereview.chromium.org/233263002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@263399 0039d316-1c4b-4281-b951-d872f2087c98
philipj
Test the media element activation behavior in fullscreen
BUG=358675

Review URL: https://codereview.chromium.org/227593006

git-svn-id: svn://svn.chromium.org/blink/trunk@171372 bbb929c8-8fbe-4397-9dbb-9b2b20218538
davve
Map width/height to style for foreignObject
As we move towards using the style system to resolve percentages for
svg, start small by promoting width and height for foreignObject to
presentation attributes.

This is a preparation for issue 308992 where we plan to make
height="100%" for svg elements behave as style="height:100%". Unless
height is mapped to style for foreignObject, percentage style values
for svg inside foreignObject cannot be resolved.

This has been resolved in the SVG WG, see minutes
http://www.w3.org/2014/04/08-svg-minutes.html#item04

BUG=308992,358206

Review URL: https://codereview.chromium.org/218403009

git-svn-id: svn://svn.chromium.org/blink/trunk@171306 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Support FormData on WorkerGlobalScope.
The spec defines FormData as being provided in worker contexts,

  http://www.w3.org/TR/XMLHttpRequest/#interface-formdata
  http://xhr.spec.whatwg.org/#interface-formdata

Follow suit and provide an argument-less FormData constructor and the
interface object on WorkerGlobalScope.

R=arv@chromium.org,nbarth@chromium.org
BUG=360546

Review URL: https://codereview.chromium.org/227483008

git-svn-id: svn://svn.chromium.org/blink/trunk@171294 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Fix application of OBB paint-servers when device scale != 1
The additional text transform would be applied after the "regular"
userspace transform, which in the object bounding box case meant that
any possible translation would not be applied correctly (wouldn't be
subject to the additional scaling.) The code was also sensitive to whether
or not any text-decorations needed to be painted with the paint-server,
since that could end up clobbering the userspace transform.

Fix by applying the additional text transform in the correct order, and
always re-compute the "resource space" transform in the relevant
applyResource(...) methods.
Give the additional transform for the non-scaling stroke case the same
treatment, since it could end up clobbering the userspace transform when
the same paint-server was used for both the stroke and the fill of an
object.
The code used for computing the "resource space" transform is split out of
RenderSVGResource{Gradient,Pattern} and moved to the super-class
(RenderSVGResourceContainer.)

BUG=360571

Review URL: https://codereview.chromium.org/230443003

git-svn-id: svn://svn.chromium.org/blink/trunk@171287 bbb929c8-8fbe-4397-9dbb-9b2b20218538
tmoniuszko
Fix creating platform font on Windows
fdwCharSet param changed from 0 to DEFAULT_CHARSET (which is defined to
1). ScriptShape fails to generate glyphs on Windows XP for some complex
scripts (Hindi text for instance) if font is created with fdwCharSet=0.

Other paramaters are unchanged because they still expand to 0.

BUG=361994

TEST=On Windows XP, go to Control Panel and Regional and
Language Options. Under Languages tab check Install files
for Complex Script and right-to-left languages (including
Thai) and Install files for East Asian languages. Click
Details and install Hindi language. Launch Chromium. Go to
advanced settings and go to Languages. Add Hindi language
and click Display Chromium in this language button. Restart
Chromium. Expected result: Hindi font glyphs should be
properly generated for all UI elements (tabs, menus,
notification panels).

Review URL: https://codereview.chromium.org/230793003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@263001 0039d316-1c4b-4281-b951-d872f2087c98
pdamek
Added HTTP response code field to ResourceRequestDetails.
BUG=361585

Review URL: https://codereview.chromium.org/226183015

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@262987 0039d316-1c4b-4281-b951-d872f2087c98
mostynb
disable stack trace unittests for uClibc builds
Since we disabled StackTrace::OutputToStream and StackTrace::Print
for uClibc builds, we should disable the related unittests for uClibc
too.

BUG=361130

Review URL: https://codereview.chromium.org/227503009

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@262984 0039d316-1c4b-4281-b951-d872f2087c98
sigbjornf
Support optional, non-defaulted constructor arguments.
Extend the binding code generator to emit correct code for constructors
having optional, but with no default, arguments.

R=nbarth, haraken
BUG=360546

Review URL: https://codereview.chromium.org/229373006

git-svn-id: svn://svn.chromium.org/blink/trunk@171251 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Changing between multicol and regular block shouldn't recreate all renderers.
Make the new (flowthread-based) multicol implementation cope without
having to reattach renderers for all nodes in the subtree.

Up until recently (last year) a reattach was only done for the new
flowthread-based multicol implementation, while it wasn't done for the
old implementation (ColumnInfo), but due to some refactoring of the
code that determines whether or not to reattach on style changes, any
changes to column-width or column-count would result in a reattach,
regardless of which implementation was used.

Now that both implementations can handle it, there's no need to force
a reattach anymore.

Review URL: https://codereview.chromium.org/218663004

git-svn-id: svn://svn.chromium.org/blink/trunk@171192 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
don't use glibc-specific execinfo.h on uclibc builds
The execinfo.h header is glibc-specific, as is the backtrace function.
Let's skip them for uclibc builds.

BUG=361130

Review URL: https://codereview.chromium.org/228753003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@262841 0039d316-1c4b-4281-b951-d872f2087c98
bratell
Fix for Assert and more with bad CSS input.
The CSS input had a strange belief that users are nice and would not
feed it strange strings. This caused asserts and bug 360403.

BUG=360403

Review URL: https://codereview.chromium.org/230173005

git-svn-id: svn://svn.chromium.org/blink/trunk@171169 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Add CharacterData.deleteData()/replaceData() overflow handling.
If the offset and count exceed the underlying length, the spec tells us

  http://dom.spec.whatwg.org/#concept-cd-replace (step 3)

to use a count that is equal to length minus the offset. Perform that
check in an overflow-sensitive manner.

(Change based on https://codereview.chromium.org/188693007/ )

R=
BUG=349898

Review URL: https://codereview.chromium.org/229793004

git-svn-id: svn://svn.chromium.org/blink/trunk@171165 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Don't recalculate style synchronously on hover/active.
At the end of Document::updateHoverActiveState, we did a synchronous update
of style and layout. That caused a :hover + onmouseover changing a class to
trigger two style recalcs.

There were no obvious reasons why the callers of that method expected the
recalc + layout to happen either.

R=abarth@chromium.org,esprehn@chromium.org
BUG=361164

Review URL: https://codereview.chromium.org/229413006

git-svn-id: svn://svn.chromium.org/blink/trunk@171147 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
make sure fields are initialized in OverflowEventDispatcher
This makes sure some older compilers don't complain that these member variables might be used uninitialized.

Review URL: https://codereview.chromium.org/212783002

git-svn-id: svn://svn.chromium.org/blink/trunk@171094 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mmaliszkiewicz
WebContents could be blocked after pending cross-site navigation is canceled.
It happens when navigation is canceled just before RenderFrameHost::OnNavigate
by second one. Current renderer is swapped-out but not entirely (after
ViewHostMsg_SwapOut_ACK but before ViewMsg_WasSwappedOut). This causes that
second navigation and all following are blocked, current renderer process is
not closed but can't respond to input events because it is swapped-out.

BUG=104600
TEST=RenderFrameHostManagerTest.NewCrossNavigationBetweenSwapOutAndCommit

Review URL: https://codereview.chromium.org/215073002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@262501 0039d316-1c4b-4281-b951-d872f2087c98
fs
Apply SVG paint-order to text-decorations
BUG=360571

Review URL: https://codereview.chromium.org/225023029

git-svn-id: svn://svn.chromium.org/blink/trunk@171070 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
don't use abi::__cxa_demangle in uclibc builds
abi::__cxa_demangle is glibc specific, it can't be used in uclibc builds.

Review URL: https://codereview.chromium.org/227753002

git-svn-id: svn://svn.chromium.org/blink/trunk@171045 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Fix StrictTypeChecking on interface type attributes
'undefined'/'null' would be allowed even though they shouldn't (unless
the attribute is marked as nullable.)

Also attempts to simplify the signature required for implementing the
nullable version of a interface type attribute.

Adjust CanvasRenderingContext2D.currentTransform,
HTMLMediaElement.controller and AudioBufferSourceNode.buffer slightly.

BUG=249598

Review URL: https://codereview.chromium.org/226073003

git-svn-id: svn://svn.chromium.org/blink/trunk@171043 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
don't use glibc-specific execinfo.h on uclibc builds
The execinfo.h header is glibc-specific, as is the backtrace function.
Let's skip them for uclibc builds.

Review URL: https://codereview.chromium.org/226623008

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@262344 0039d316-1c4b-4281-b951-d872f2087c98
mostynb
define LIBC_GLIBC as 1 for consistency
Most of the other defines in build/build_config.h are set to 1, let's
define LIBC_GLIBC as 1 for consistency.

Review URL: https://codereview.chromium.org/227153008

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@262255 0039d316-1c4b-4281-b951-d872f2087c98
fs
Compute correct repaint rect for decorated RenderSVGRoots
The current implementation of clippedOverflowRectForRepaint() uses the
generic repaint-rect calculations in SVGRenderSupport. Those in turn make
use of repaintRectInLocalCoordinates(), which for RenderSVGRoot is the
union of the painted children (w/ some expansion). If there're no children,
or they do not fill the entire content box, then a repaint would not
repaint the correct parts.
Fix by calculating the union of the border-box and the SVG content
when the SVG root is decorated (has background/border/etc.)

BUG=354305

Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=170890

Review URL: https://codereview.chromium.org/211193002

git-svn-id: svn://svn.chromium.org/blink/trunk@170960 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: fix build after r170943
R=haraken@chromium.org
BUG=

Review URL: https://codereview.chromium.org/225303011

git-svn-id: svn://svn.chromium.org/blink/trunk@170955 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: move ClientRect and its list to the oilpan heap.
R=ager@chromium.org,haraken@chromium.org,tkent@chromium.org
BUG=340522

Review URL: https://codereview.chromium.org/225843002

git-svn-id: svn://svn.chromium.org/blink/trunk@170951 bbb929c8-8fbe-4397-9dbb-9b2b20218538
kolczyk
Current heuristic spatial navigation algorithm has significant issues
with overlapping elements. The algorithm ignores the elements that
have non-empty intersection with current element, even if the intersection
is in its transparent areas which may give an effect of elements of menu
being skipped at some fancier sites.

The algorithm for selecting neighbouring element was fixed as well
as the distance calculation to match exactly the formula from
http://www.w3.org/TR/WICD/#focus-handling which also proved to improve
the user experience.

BUG=

Review URL: https://codereview.chromium.org/105973003

git-svn-id: svn://svn.chromium.org/blink/trunk@170945 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: add Member<T>(RawPtr<U>) constructor.
r170929 introduced code that constructs a std::pair with a transition
type of OwnPtrWillBeMember<T> as the second component, from a value
having the transition type OwnPtrWillBeRawPtr<T>. With Oilpan enabled,
this requires an implicit conversion from RawPtr<T> to Member<T>,
which isn't supported. Introduce it here by adding a Member<T>
constructor from a given RawPtr<>.

R=
BUG=

Review URL: https://codereview.chromium.org/225303010

git-svn-id: svn://svn.chromium.org/blink/trunk@170942 bbb929c8-8fbe-4397-9dbb-9b2b20218538
joaoe
Remove unused header zip.h
Review URL: https://codereview.chromium.org/222133002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@261949 0039d316-1c4b-4281-b951-d872f2087c98
mstensho
[New Multicolumn] Lay out flow thread again when multicol container height changes.
The column height may have to be adjusted when the multicol
container's height changes, so we need to descend into the
RenderMultiColumnFlow thread child of the RenderBlockFlow multicol
container when this happens.

BUG=359944

Review URL: https://codereview.chromium.org/225463002

git-svn-id: svn://svn.chromium.org/blink/trunk@170896 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Compute correct repaint rect for decorated RenderSVGRoots
The current implementation of clippedOverflowRectForRepaint() uses the
generic repaint-rect calculations in SVGRenderSupport. Those in turn make
use of repaintRectInLocalCoordinates(), which for RenderSVGRoot is the
union of the painted children (w/ some expansion). If there're no children,
or they do not fill the entire content box, then a repaint would not
repaint the correct parts.
Fix by calculating the union of the border-box and the SVG content
when the SVG root is decorated (has background/border/etc.)

BUG=354305

Review URL: https://codereview.chromium.org/211193002

git-svn-id: svn://svn.chromium.org/blink/trunk@170890 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Use invalidation sets when selector contains adjacent combinators.
When we found a direct or indirect adjacent combinator, we fell back on
using a subtree recalc for all features in the selector in question. That
is not necessary as we can resume the process of adding separate features
to the invalidation sets once we encounter a non-adjacent combinator going
leftwards.

Example:

  .a .b + .c { }

We have an empty invalidation set for 'c', 'b' currently needs to do a sub-
tree recalc to recalculate the 'c' class element when 'b' is added or
removed. However, once we see the descendant combinator left of '.b' we can
get away with adding 'c' to the invalidation set for 'a' since 'c' will
have to be in 'a's sub-tree.

Eventually, I think we could merge collectFeaturesFromSelector with
updateInvalidationSet to get rid of a pass through the selector.

R=esprehn@chromium.org
BUG=351613,335247

Review URL: https://codereview.chromium.org/224593002

git-svn-id: svn://svn.chromium.org/blink/trunk@170881 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: build fix followup to r170842.
R=
BUG=340522
NOTRY=true

Review URL: https://codereview.chromium.org/225783002

git-svn-id: svn://svn.chromium.org/blink/trunk@170857 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: move Range object to the oilpan heap.
R=tkent@chromium.org,haraken@chromium.org,yutak@chromium.org,ager@chromium.org
BUG=340522

Review URL: https://codereview.chromium.org/224113002

git-svn-id: svn://svn.chromium.org/blink/trunk@170845 bbb929c8-8fbe-4397-9dbb-9b2b20218538
bratell
Fix for CSS escaped identifier assert
Escaped identifiers are stored as 16-bit string so using the 8-bit
string storage for them causes unexpected errors in tokenToLowerCase(). 
In debug there was an ASSERT that crashed the browser. In release
any non-ascii chars in the string would have been partly garbled.

This also removes the "const" from an argument because the function
does mutate the argument so calling it const was not very honest.

BUG=358750
R=eseidel

Review URL: https://codereview.chromium.org/213743018

git-svn-id: svn://svn.chromium.org/blink/trunk@170841 bbb929c8-8fbe-4397-9dbb-9b2b20218538
bratell
Add some missing semi-colons in embedded JavaScript.
Some embedded JavaScript depended on ecmascript's automatic
magic semi-colon insertion. That is bad since that means that whitespace
becomes significant in the program and prevents stripping of new-lines.

BUG=

Review URL: https://codereview.chromium.org/223973002

git-svn-id: svn://svn.chromium.org/blink/trunk@170824 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Support tag names as invalidation set features.
We collected the tag names into the invalidation sets, but we never used them
for anything. This makes selectors like this use invalidation sets:

.class span {}

R=esprehn@chromium.org,chrishtr@chromium.org
BUG=335247

Review URL: https://codereview.chromium.org/222643002

git-svn-id: svn://svn.chromium.org/blink/trunk@170807 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
[New Multicolumn] Avoid freeze if column count is 1 and there's a forced break.
If we don't have more columns available than the number of forced
breaks, we're going to have to allow overflowing columns. No matter
how tall we try to make the column set, there will be overflowing
columns, so just give up. This used to work as long as column count
was 2 or greater, but there was an unnecessary check that prevented it
from working if column count was 1. This was especially bad since we
actually stop counting forced breaks when we reach the number of
columns available.

BUG=359536

Review URL: https://codereview.chromium.org/223743002

git-svn-id: svn://svn.chromium.org/blink/trunk@170795 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: add explicit Persistent<T>(T&) and Member<T>(T&) constructors.
Synchronize with RefPtr<T>(T&)'s constructor offering and provide same,
explicit constructors taking a reference.

Make use of it in PostMessageTimer and WorkerThreadableWebSocketChannel.

R=haraken@chromium.org,ager@chromium.org
BUG=340522

Review URL: https://codereview.chromium.org/221823002

git-svn-id: svn://svn.chromium.org/blink/trunk@170792 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Let the overlay playback button fall back to the activation behavior
Since the button is only visible when togglePlayStateWillPlay(), just
doing nothing and falling back to the default activation behavior will
do the right thing.

BUG=354746
TEST=LayoutTests/media/activation-behavior-shadow.html

Review URL: https://codereview.chromium.org/215323003

git-svn-id: svn://svn.chromium.org/blink/trunk@170789 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Improve computation of ctmScale{X,Y} in NativeImageSkia::drawPattern
Simply using "scale x" and "scale y" will not give the intended results
for for instance mirroring transformations.
Instead compute the length of the column vectors for the 2x2 submatrix.

BUG=160443

Review URL: https://codereview.chromium.org/223673003

git-svn-id: svn://svn.chromium.org/blink/trunk@170782 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Add MediaControlTimelineElement FIXME for "timeline offset"
The problem was raised but not correctly addressed in
https://codereview.chromium.org/219283004/

BUG=312699
NOTRY=true

Review URL: https://codereview.chromium.org/221823007

git-svn-id: svn://svn.chromium.org/blink/trunk@170735 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Draw thin slices of an image w/ anti-aliasing for 2D <canvas>
Add a GraphicsContext-scoped flag that allows anti-aliasing of
(all) image-geometry to be enabled in a selective manner.
Enable this behavior for CanvasRenderingContext2D.
When this flag is set, image geometry that would drawn as very
thin (< 1 device pixel wide/high) will be anti-aliased.

BUG=352611

Review URL: https://codereview.chromium.org/210043004

git-svn-id: svn://svn.chromium.org/blink/trunk@170671 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Add helper functions for throwing arity-related TypeErrors
Add a few new helper functions that the generated bindings code can use
to throw TypeErrors for arity mismatches.
This reduces the binary footprint for these exceptional code-paths.
(Approx. 75kB smaller content_shell binary on Linux, x86-64, gcc-4.8.2)

Review URL: https://codereview.chromium.org/221073003

git-svn-id: svn://svn.chromium.org/blink/trunk@170666 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Expose ImageData on WorkerGlobalScope.
Follow the spec and also provide the ImageData interface object on
WorkerGlobalScope.

R=junov@chromium.org,eseidel@chromium.org
BUG=355030

Review URL: https://codereview.chromium.org/216923004

git-svn-id: svn://svn.chromium.org/blink/trunk@170665 bbb929c8-8fbe-4397-9dbb-9b2b20218538
joaoe
Implemented Document.contentType
http://dom.spec.whatwg.org/#dom-document-contenttype

BUG=279426

Review URL: https://codereview.chromium.org/151653004

git-svn-id: svn://svn.chromium.org/blink/trunk@170646 bbb929c8-8fbe-4397-9dbb-9b2b20218538
bratell
Followup to CSSTokenizer memory usage optimization
Make sure to measure the same input string as we're going to parse.

BUG=358667,352544

Review URL: https://codereview.chromium.org/220113006

git-svn-id: svn://svn.chromium.org/blink/trunk@170636 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove HTMLFrameElement.location
Intent to Deprecate and Remove:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/aLpDg8pviU0/dUbUt7jsvT4J

javascriptURL-execution-context-frame-location-htmldom.html was
identical to javascriptURL-execution-context-frame-src-htmldom.html
apart from the attribute set, so remove it.

javascriptURL-execution-context-frame-location-htmldom-uncaught.html
tests code that was removed in V8HTMLFrameElementCustom.cpp and does not
have a counterpart for the src attribute, so remove it too.

BUG=358505

Review URL: https://codereview.chromium.org/220563002

git-svn-id: svn://svn.chromium.org/blink/trunk@170563 bbb929c8-8fbe-4397-9dbb-9b2b20218538
davve
Add UseCounter entry for SVGForeignObjectElement
There have been discussions about removing foreignObject and instead
allow an html element with position and dimensions inside svg. Knowing
how popular foreignObject is may be useful in such discussions.

Review URL: https://codereview.chromium.org/220713003

git-svn-id: svn://svn.chromium.org/blink/trunk@170561 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Replace NativeImageSkia usage with SkBitmap in ImageFrame
Make ImageFrame store an SkBitmap directly instead of indirectly via
NativeImageSkia.
The direct effect is less indirections in ImageFrame, but this allows
making NativeImageSkia more immutable-looking since the SkBitmap&
accessor and setDataComplete() method can be removed.

Review URL: https://codereview.chromium.org/170463002

git-svn-id: svn://svn.chromium.org/blink/trunk@170553 bbb929c8-8fbe-4397-9dbb-9b2b20218538
bratell
Move Preload() code to MappedFile
To heat up the file system caches we load the disk cache index 
into RAM when starting the browser. To make it more obvious
what we're doing, move that to a method named Preload().

BUG=None
R=rvargas@chromium.org

Review URL: https://codereview.chromium.org/206453003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@260844 0039d316-1c4b-4281-b951-d872f2087c98
rune
Custom pseudo element types as an invalidation set feature.
Instead of falling back to full subtree recalcs for invalidation sets
affected by custom pseudo elements, use a flag in the invalidation set
saying that custom pseudo elements need to be invalidated. Can be extended
to invalidate specific custom pseudo element types, but it will probably not
be necessary.

The reason for optimizing this in the first place is to make it possible to
use invalidation sets for :hover/:active/:focus changes where descendants
are affected by changes to those states. The UA stylesheet contains
selectors for :hover/:active/:focus where such state changes affect
descendants and the rightmost compound selector has a custom pseudo element
as its only sub-selector.

R=esprehn@chromium.org
BUG=351613

Review URL: https://codereview.chromium.org/219193004

git-svn-id: svn://svn.chromium.org/blink/trunk@170538 bbb929c8-8fbe-4397-9dbb-9b2b20218538
tsniatowski
Use %pure-parser in grammar files to make Bison 3 happy.
This avoids a "deprecated directive, use ‘%pure-parser’ [-Wdeprecated]"
warning in css/CSSGrammar.y and xml/XPathGrammar.y when building with
Bison 3.

Review URL: https://codereview.chromium.org/217423011

git-svn-id: svn://svn.chromium.org/blink/trunk@170525 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
De-bloat SVGPathStringBuilder
For a class this meager, it was a bit of a heavy-weight:

SVGPathStringBuilder::arcTo() clocked in at a whopping 7891 bytes
(Linux, x86-64, gcc-4.8.2), but even the much simpler lineToVertical()
used > .5k of text-space.
Sacrifice the StringOperators-based pattern and use a cascade of functions
instead.
Besides reducing footprint, this also eliminates some of the copying that
would occur between various temporary String objects.
With the change in place, arcTo() dropped to 640 bytes (and lineToVertical
got cut in half.)

Review URL: https://codereview.chromium.org/212603003

git-svn-id: svn://svn.chromium.org/blink/trunk@170523 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: have RepeatEvent::trace() delegate to Event::trace()
For consistency, have RepeatEvent 'upcall' to Event when tracing.

R=
BUG=340522

Review URL: https://codereview.chromium.org/219283007

git-svn-id: svn://svn.chromium.org/blink/trunk@170516 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove what remains of MediaControllerInterface
The currentTime() and duration() should simply use the media element, as
that is what paintMediaSlider() in RenderMediaControls uses, so the
existing code would not work if the media element and its controller had
different durations.

setCurrentTime() does require taking the controller into account, so add
some tests and expand that final instance of mediaControllerInterface().

BUG=341813, 341852
TEST=LayoutTests/media/controls-timeline.html
     LayoutTests/media/controls-timeline-with-controller.html

Review URL: https://codereview.chromium.org/219283004

git-svn-id: svn://svn.chromium.org/blink/trunk@170512 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Let MediaController.currentTime return the position previously set
BUG=358226

Review URL: https://codereview.chromium.org/219523004

git-svn-id: svn://svn.chromium.org/blink/trunk@170504 bbb929c8-8fbe-4397-9dbb-9b2b20218538
bratell
Documents with many lines overallocated pagination info.
There is an object LineFragmentationData that is used for pagination
that is created on demand. That object was created for normal documents
and cost roughly 32 bytes per line, adding up to 3-5 MB on a big text
document (5% of all memory usage).

Testcase: http://norvig.com/big.txt - 3-10 MB RAM savings.

I don't know what I'm doing but this patch prevents the allocation and
saves the memory.

BUG=353993

Review URL: https://codereview.chromium.org/200053007

git-svn-id: svn://svn.chromium.org/blink/trunk@170497 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Optimize named property access on CSSStyleDeclaration objects
When reading property on a CSSStyleDeclaration object, the property name
is transformed into a possible CSS property name and looked up as such.
This transformation involves copying the property name to a StringBuilder
while converting from camelCase to dash-separated.

Positive matches are cached in a local static hash map, but negative
matches were not.  A script reading properties like "getPropertyValue"
would trigger the conversion to "get-property-value" and CSS property
lookup every time.

Optimize by caching negative matches as well as positive ones.

BUG=

Review URL: https://codereview.chromium.org/219153002

git-svn-id: svn://svn.chromium.org/blink/trunk@170490 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: Build fix after r170454
r170454 was almost Oilpan-ready, add missing bits.

R=mvanouwerkerk@chromium.org
BUG=
NOTRY=true

Review URL: https://codereview.chromium.org/219753004

git-svn-id: svn://svn.chromium.org/blink/trunk@170475 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Simplify ExceptionState::throwException()
Drop the case in which m_code has been set without also setting
m_exception.

Followup to https://codereview.chromium.org/219263002/.

R=haraken@chromium.org

Review URL: https://codereview.chromium.org/219373005

git-svn-id: svn://svn.chromium.org/blink/trunk@170457 bbb929c8-8fbe-4397-9dbb-9b2b20218538
bratell
Smaller CSSParser UTF16 buffers for escaped strings.
If an ASCII stylesheet contains escaped characters those need to be
unescaped and stored somewhere. The code used to allocate a buffer the
size of the whole CSS file * sizeof(UChar). That meant 700 KB on
arstechnica.com to store a single character. Instead store the
supposedly rare characters in special buffers of appropriate sizes.

BUG=352544

Review URL: https://codereview.chromium.org/196353018

git-svn-id: svn://svn.chromium.org/blink/trunk@170451 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Improve chances for inlining of ExceptionState::throwIfNeeded()
Since throwIfNeeded() is called quite often in generated bindings code
(and should generally return false), attempt to make is smaller by moving
the exception setup/throwing to a new method, and leave throwIfNeeded()
as a predicate guarding a call to that method.
This seems to get rid of a large number of direct calls to throwIfNeeded().
It also shrinks the binary by a non-negligible amount (~15k).
(Linux, x86-64, gcc-4.8.2)

Review URL: https://codereview.chromium.org/219263002

git-svn-id: svn://svn.chromium.org/blink/trunk@170447 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove WebSetting::setFullScreenEnabled
It is no longer called from Chromium:
https://codereview.chromium.org/216233008/

BUG=344002

Review URL: https://codereview.chromium.org/217293002

git-svn-id: svn://svn.chromium.org/blink/trunk@170446 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: move ImageData to the oilpan heap.
R=haraken@chromium.org
BUG=340522

Review URL: https://codereview.chromium.org/214153006

git-svn-id: svn://svn.chromium.org/blink/trunk@170445 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Stop calling WebSetting::setFullScreenEnabled
The setting has been removed from Blink:
https://codereview.chromium.org/217163004/

BUG=344002

Review URL: https://codereview.chromium.org/216233008

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@260532 0039d316-1c4b-4281-b951-d872f2087c98
ed
[svg] in img element doesn't render correctly when height is changed dynamically.
BUG=354822

Review URL: https://codereview.chromium.org/210083003

git-svn-id: svn://svn.chromium.org/blink/trunk@170437 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jadahl
gpu: Reuse transfer buffers more aggresively
By keeping track of transfer buffer usage (both sync and async), it is
possible to reuse an existing transfer buffer earlier than it is today.

For synchronous uploads, this is done by inserting tokens marking a
buffer's last usage. If such a token has passed, the buffer can be
reused.

For asynchronous uploads, this is done by adding an internal async
upload token to the GLES2Implementation and GLES2CmdDecoderImpl that
enumerates all asynchronous uploads. When an upload is completed, the
token is synchronized with the client which then can free the memory
associated with the async token.

The fenced allocator and mapped memory manager gets a callback that is
used to allow fenced allocator to make the user, in this case
GLES2Implementation, poll the current async upload token and free any
associated memory.

BUG=328808

Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=260177

Review URL: https://codereview.chromium.org/116863003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@260507 0039d316-1c4b-4281-b951-d872f2087c98
tsniatowski
Rename pr_error to err_name in the nss log added in r259205.
R=wtc@chromium.org
BUG=

Review URL: https://codereview.chromium.org/216573004

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@260453 0039d316-1c4b-4281-b951-d872f2087c98
philipj
Remove the mediaFullscreenRequiresUserGesture setting
It is no longer set by Chromium and is always true.

BUG=355439

Review URL: https://codereview.chromium.org/212323003

git-svn-id: svn://svn.chromium.org/blink/trunk@170416 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Ignore MediaController in the muted/volume controls logic
Using MediaControllerInterface for volume/muted was a half-finished job,
since RenderMediaControls only considered HTMLMediaElement, so the
controls didn't really work with a media controller present.

The new test revealed a bug caused by MediaControls::changedVolume() not
considering the muted state. Consolidate the muted/volume handling to an
updateVolume() function to fix the bug and make the test pass.

The unconditional updateVolume() in reset() means that the volume will
always be set when the controls are first created. This revealed that
the media-volume-slider-hit-test test was broken: clickSliderMiddle() is
called when the volume slider isn't visible, and the clicked coordinates
are actually (0, 0). The test still passed because the default value for
a range input element is apparently the midpoint. Rewrite the test to
verify that clicking the volume slider actually updates the volume.

BUG=357236
TEST=LayoutTests/media/controls-mute-with-controller.html
     LayoutTests/media/controls-volume-slider.html

Review URL: https://codereview.chromium.org/217103004

git-svn-id: svn://svn.chromium.org/blink/trunk@170414 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Make media element sources unique to investigate flaky test
BUG=355489

Review URL: https://codereview.chromium.org/216233003

git-svn-id: svn://svn.chromium.org/blink/trunk@170412 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: Build fix after r170389
r170389 broke oilpan's build (Event related.) This CL rights the ship.

TBR=haraken@chromium.org,ager@chromium.org
NOTRY=true

Review URL: https://codereview.chromium.org/216233013

git-svn-id: svn://svn.chromium.org/blink/trunk@170411 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Stop using the mediaFullscreenRequiresUserGesture setting
"Make mediaPlayerRequestFullscreen() user gesture bypass explicit"
(Blink r170080) makes the setting redundant.

BUG=355439

Review URL: https://codereview.chromium.org/212133003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@260363 0039d316-1c4b-4281-b951-d872f2087c98
philipj
Use [StrictTypeChecking] for HTMLMediaElement.setMediaKeys
The mediaKeys argument should be nullable, but passing in some other
type of object should throw an exception.

BUG=none

Review URL: https://codereview.chromium.org/212643002

git-svn-id: svn://svn.chromium.org/blink/trunk@170354 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove the fullScreenEnabled setting
Chromium always calls setFullScreenEnabled(true).

BUG=344002

Review URL: https://codereview.chromium.org/217163004

git-svn-id: svn://svn.chromium.org/blink/trunk@170351 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjorn
Give localserver time to shut down
On machines with slow I/O, the localserver might not shut down immediately,
wait for it if necessary.

BUG=

Review URL: https://codereview.chromium.org/145873004

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@260201 0039d316-1c4b-4281-b951-d872f2087c98
jadahl
By keeping track of transfer buffer usage (both sync and async), it is
possible to reuse an existing transfer buffer earlier than it is today.

For synchronous uploads, this is done by inserting tokens marking a
buffer's last usage. If such a token has passed, the buffer can be
reused.

For asynchronous uploads, this is done by adding an internal async
upload token to the GLES2Implementation and GLES2CmdDecoderImpl that
enumerates all asynchronous uploads. When an upload is completed, the
token is synchronized with the client which then can free the memory
associated with the async token.

The fenced allocator and mapped memory manager gets a callback that is
used to allow fenced allocator to make the user, in this case
GLES2Implementation, poll the current async upload token and free any
associated memory.

BUG=328808

Review URL: https://codereview.chromium.org/116863003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@260177 0039d316-1c4b-4281-b951-d872f2087c98
haavardm
Introduce USE_OPENSSL_CERTS for certificate handling.
See discussion at chromium issue 338885.

When USE_OPENSSL_CERTS is defined, X509::OSCertHandle is now
typedef'ed to struct X509*. 
 
When USE_OPENSSL is defined, USE_OPENSSL_CERTS will now be
defined for linux and Android, while being off for Mac and 
Windows. This allows OpenSSL to be used while leaving
certificate handling to the OS.
 
OpenSSL cert verifying code will only be used on Linux.

This patch does not change any default behavior.

Bug=none
Test=none

Review URL: https://codereview.chromium.org/206453002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@260152 0039d316-1c4b-4281-b951-d872f2087c98
mstensho
[New Multicolumn] balancer confused by content with top margins.
We need to set zero page logical height in LayoutState when column
height is unknown (when the columns haven't yet been
balanced). There's code that assumes that non-zero page height means
that page height is known. Lying about this makes the pagination code
believe that every top margin is adjacent to a column break, which
makes it eat and ignore all top margins.

This should be cleaned up, but it's easier to wait until the old
multicol code has been removed.

BUG=353587

Review URL: https://codereview.chromium.org/209863003

git-svn-id: svn://svn.chromium.org/blink/trunk@170335 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Implement ImageData constructors.
The spec now defines a pair of ImageData constructors,

  http://www.whatwg.org/specs/web-apps/current-work/#imagedata

Provide an implementation of both here.

R=
BUG=338804

Review URL: https://codereview.chromium.org/196343032

git-svn-id: svn://svn.chromium.org/blink/trunk@170325 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove flaky expectations for event_order_loadstart_progress.html
No new failures since the speculative fix was committed.

BUG=333880

Review URL: https://codereview.chromium.org/212763007

git-svn-id: svn://svn.chromium.org/blink/trunk@170321 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Reduce type-impedance for ExceptionMessages::failedTo* functions
These functions are always called with string literals, so having the
functions accept Strings means all callers have to perform implicit
conversions.
By modifying the signatures to use 'const char*' for these cases, these
conversion can be avoided (in the callers) and only be performed in the
functions themselves.
This reduces code size by ~70kB (Linux, x86-64, gcc-4.8.2).

Review URL: https://codereview.chromium.org/216633002

git-svn-id: svn://svn.chromium.org/blink/trunk@170304 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Restore the HTMLVideoElement-specific prefixed fullscreen API behind a flag
The removal has caused more trouble than expected on Android, because
usage is higher there and the UseCounter data from Windows was used in
the "Intent to Remove" thread.

Restore the API behind a flag so that it can more easily be turned on
and off. It's off by default, but likely it will have to be enabled on
at least the upcoming M35 branch.

BUG=346236

Review URL: https://codereview.chromium.org/213193010

git-svn-id: svn://svn.chromium.org/blink/trunk@170303 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Use HTMLMediaElement::togglePlayState() where appropriate
togglePlayState() handles the MediaController case correctly, which the
updated code paths did not.

Introduce togglePlayStateWillPlay() to replace canPlay() and paused() in
certain contexts. The readyState < HAVE_METADATA in canPlay() condition
is not replicated because the hasSource() checks in paintMediaPlayButton
and paintMediaOverlayPlayButton disables the buttons so that they can't
be pressed at all. Some corner case seems likely to exist, but was not
found in ad-hoc testing.

Drop the ASSERT(controls()) in tooglePlayState() since it is now used in
contexts not directly tied to MediaControls. The ASSERT doesn't fail
yet, but the same ASSERT in togglePlayStateWillPlay() would, since
MediaControlPlayButtonElement::updateDisplayType() is called when the
controls are created for text track rendering but are not shown.

These changes made it possible to reduce the size of
MediaControllerInterface a little bit more.

BUG=341813
TEST=none, no observable changes intended

Review URL: https://codereview.chromium.org/214793005

git-svn-id: svn://svn.chromium.org/blink/trunk@170296 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Add UseCounter features for Document prefixed fullscreen APIs
Since the unprefixed API isn't event implemented yet removal is nowhere
in sight, but it's still interesting to track these features over time.

BUG=none

Review URL: https://codereview.chromium.org/214873002

git-svn-id: svn://svn.chromium.org/blink/trunk@170270 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Support invalidation sets for :-webkit-any selectors.
Traverse the selectorList() like we do for :host to find features for
invalidation sets. Relevance for 351613 is that we need to support this in
order to implement efficient invalidation sets for :hover with
childrenAffectedByHover due to UA stylesheet rules.

R=esprehn
BUG=356125,351613

Review URL: https://codereview.chromium.org/210973004

git-svn-id: svn://svn.chromium.org/blink/trunk@170212 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: move WebKitPoint to the oilpan heap.
R=wibling@chromium.org,haraken@chromium.org
BUG=340522

Review URL: https://codereview.chromium.org/214563004

git-svn-id: svn://svn.chromium.org/blink/trunk@170199 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Add use counters for XMLHttpRequestProgressEvent properties.
Gauge if removing these compatibility properties is feasible.

R=jochen@chromium.org
BUG=357112

Review URL: https://codereview.chromium.org/214563002

git-svn-id: svn://svn.chromium.org/blink/trunk@170198 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ingemara
Remove DocumentLoader::clearArchiveResources
It is possible for the DocumentLoader to lose it's ArchiveResourceCollection
without it's MHTMLArchive being deallocated as well, as is observed when a
navigation, which may be aborted, is initiated. By not clearing the
ArchiveResourceCollection in such cases, the DocumentLoader is left in a
still valid state.

BUG=348977

Review URL: https://codereview.chromium.org/183763030

git-svn-id: svn://svn.chromium.org/blink/trunk@170148 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: turn DOMWindow into a heap supplementable.
With DOMWindow now a garbage collected object, follow up and also turn
it into a heap-residing Supplementable, along with its Supplements.

R=haraken@chromium.org
BUG=340522

Review URL: https://codereview.chromium.org/212933005

git-svn-id: svn://svn.chromium.org/blink/trunk@170146 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Remove failing CHECK(!delegate_) from SpdyStream::OnDataReceived()
There is a race between SetDelegate() and the PushedStreamReplay() call
it posts a task for, and OnDataReceived() called as more data is
received over the network.  Specifically, if the latter is called after
SetDelegate() is called but before the task it posted has been executed,
the CHECK() fails.

BUG=356110

Review URL: https://codereview.chromium.org/210733006

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@259800 0039d316-1c4b-4281-b951-d872f2087c98
philipj
Add a missing null check in SliderThumbElement::stopDragging()
hostInput() is null checked in several other SliderThumbElement
functions and clearly can return null, so just handle it.

Add GCController.collect() to the test case to make the crash trigger
reliably, which was necessary in order to debug it.

BUG=356148

Review URL: https://codereview.chromium.org/211403003

git-svn-id: svn://svn.chromium.org/blink/trunk@170139 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Make the default testharness.js timeout longer than the LayoutTests timeout
With the previous defaults, tests could timeout before the LayoutTests
timeout, which would be reported as a failure. Making the timeout very
long should fix tests that are flaky with the 2 second timeout and will
make the SlowTests mechanism work for testharness.js tests, should the
need arise.

BUG=355489

Review URL: https://codereview.chromium.org/213283002

git-svn-id: svn://svn.chromium.org/blink/trunk@170136 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Add a UseCounter for the webkitallowfullscreen attribute
We support the unprefixed allowfullscreen attribute, so it would be nice
to also reflect it in HTMLIFrameElement.allowFullscreen. However, that's
tricky while there are two backing attributes, so first measure if the
prefixed attribute can be removed yet.

BUG=none

Review URL: https://codereview.chromium.org/212433004

git-svn-id: svn://svn.chromium.org/blink/trunk@170124 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove traces of beforeload in HTMLMediaElement
There now remain no places in HTMLMediaElement where events are
dispatched synchronously, so there's no need to protect(this). For the
same reason, the ASSERT is irrelevant, even if it holds true.

BUG=none

Review URL: https://codereview.chromium.org/213343002

git-svn-id: svn://svn.chromium.org/blink/trunk@170123 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove the UseCounter entries for beforeload events
BUG=333318
NOTRY=true

Review URL: https://codereview.chromium.org/212883002

git-svn-id: svn://svn.chromium.org/blink/trunk@170122 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Convert LayoutTests/http/tests/resources/testharness.js from CRLF to LF
It's not possible to land patches using CQ for CRLF files:
https://codereview.chromium.org/213283002/

Also convert testharnessreport.js while in the area.

BUG=355489
TBR=dpranke@chromium.org

Review URL: https://codereview.chromium.org/214133003

git-svn-id: svn://svn.chromium.org/blink/trunk@170121 bbb929c8-8fbe-4397-9dbb-9b2b20218538
joleksy
SSLPolicy::UpdateEntry is returning when it encounters first error.
Because of this, SSLStatus::DISPLAYED_INSECURE_CONTENT should be set before other errors are examined.

This handles the case when not all flags are set if there are some problems with the certificate on the page *and* insecure content is loaded.

BUG=348560

Review URL: https://codereview.chromium.org/184483002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@259743 0039d316-1c4b-4281-b951-d872f2087c98
rune
RuleFeatures argument list cleanup.
Got rid of extensive argument lists for invalidation set features by
introducing a struct for them.

R=esprehn@chromium.org,chrishtr@chromium.org
BUG=

Review URL: https://codereview.chromium.org/212603002

git-svn-id: svn://svn.chromium.org/blink/trunk@170101 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Have SourceBuffer throw TypeError for non-finite doubles.
Switch to throwing TypeError instead of TypeMismatchError when encountering
non-finite doubles, following what WebIDL requires

 http://heycam.github.io/webidl/#es-double

R=acolwell@chromium.org
BUG=353245

Review URL: https://codereview.chromium.org/212953004

git-svn-id: svn://svn.chromium.org/blink/trunk@170098 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
:host-context should support functional notation only.
Blink supported :host-context without a functional notation as an equivalent
to :host. That is not allowed according to the CSS Scoping spec.

BUG=356582

Review URL: https://codereview.chromium.org/212513002

git-svn-id: svn://svn.chromium.org/blink/trunk@170093 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Drop empty list :host() and :host-context().
The <compound-selector> argument may not be empty according to spec.

BUG=356578

Review URL: https://codereview.chromium.org/212383002

git-svn-id: svn://svn.chromium.org/blink/trunk@170081 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Make mediaPlayerRequestFullscreen() user gesture bypass explicit
mediaPlayerRequestFullscreen() is only ever called from Chromium's
BrowserMediaPlayerManager::OnProtectedSurfaceRequested() when the
--disable-gesture-requirement-for-media-fullscreen flag is used.

Make this behavior explicit, limiting it to just this case instead of
disabling it even for script-initiated fullscreen requests.

This will allow removing the mediaFullscreenRequiresUserGesture setting
once Chromium has been updated.

BUG=355439
TEST=LayoutTests/media/media-player-request-fullscreen.html

Review URL: https://codereview.chromium.org/209693003

git-svn-id: svn://svn.chromium.org/blink/trunk@170080 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: move DOMWindow object to the oilpan heap.
Turn the global Window into a garbage collected object.

R=haraken@chromium.org,ager@chromium.org,wibling@chromium.org,zerny@chromium.org
BUG=340522

Review URL: https://codereview.chromium.org/211373002

git-svn-id: svn://svn.chromium.org/blink/trunk@170065 bbb929c8-8fbe-4397-9dbb-9b2b20218538
haavardm
Add missing calls to TestRootCerts::Clear() after usage.
The next unit test that uses TestRootCerts may fail if
TestRootCerts instance is not empty. So every unit test
that uses TestRootCerts needs to clear it at the end.

BUG=none
Test=none

Review URL: https://codereview.chromium.org/207063003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@259558 0039d316-1c4b-4281-b951-d872f2087c98
mstensho
Remove -webkit-column-progression and -webkit-column-axis properties.
Only needed by Apple's setPagination API, which doesn't exist in Blink anymore.

Link to "intent to remove" post:
https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/7n-oLhmTkuM

Review URL: https://codereview.chromium.org/201573009

git-svn-id: svn://svn.chromium.org/blink/trunk@170043 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Convert line breaks from DOS to UNIX style.
git-svn-id: svn://svn.chromium.org/blink/trunk@170039 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Pack StyleColor members in StyleRareInheritedData tighter to save memory
Since StyleColor stores the color value (32-bit RGBA) plus a single flag,
it is a bit inefficient.  In particular when multiple StyleColor objects
are members of another object, there will be a lot of unnecessary padding.

This padding can be avoided by storing the color value and the flag as
separate members of the containing structure, which allows the flags to
be packed into a bitfield.

The actual saving from this change, measured in a 64-bit Linux build, is
20 bytes per StyleRareInheritedData object.

BUG=356124

Review URL: https://codereview.chromium.org/196103013

git-svn-id: svn://svn.chromium.org/blink/trunk@170038 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Tidy up error reporting for calling-constructor-as-function.
Introduce an ExceptionMessage helper for emitting the desired error
message when calling a constructor as a function & have the IDL compiler
generate calls to it.

At the same time, make 'detail' a required argument to all 'failedToXX'
methods on ExceptionMessage -- better if the caller is required to
supply meaningful info.

R=nbarth@chromium.org,haraken@chromium.org
BUG=

Review URL: https://codereview.chromium.org/211333004

git-svn-id: svn://svn.chromium.org/blink/trunk@170037 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove special case for HTMLMediaElement in determineDispatchBehavior
This was added in WebKit r87692 in order to fix "Scrubbing a Vimeo movie
when in fullscreen stops playback; no way to make it start again":
https://bugs.webkit.org/show_bug.cgi?id=61717

The commit message and bug comments makes it clear that this special
case is no longer needed:

 1. The media controls fullscreen button now uses largely the same code
    path as Element::webkitRequestFullscreen. "Video-only full screen is
    a mode where we use the shadow DOM as an implementation detail that
    should not be detectable by the web content" is no longer true at
    all, since Web content can observe the events fired, etc.

 2. Scrubbing no longer uses HTMLMediaElement::setPausedInternal(),
    which looks like the cause of "no way to make it start again".

BUG=none
TEST=None originally added with the code, but existing tests pass.

Review URL: https://codereview.chromium.org/210763004

git-svn-id: svn://svn.chromium.org/blink/trunk@170017 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jadahl
cc: Reduce size of cc::ResourceProvider::Resource class
The compositor will at times keep several hundreds instances of this
class when a tab is visible. This patch reduces the size of every
instance by 20 bytes (from 300 bytes to 280 bytes) on 32 bit ARM
compiled with GCC 4.6.

Also adds missing initializers for a field added in
https://codereview.chromium.org/197223003

BUG=

Review URL: https://codereview.chromium.org/207943002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@259319 0039d316-1c4b-4281-b951-d872f2087c98
mostynb
update VIDEO_HOLE block wrt recent cc changes
BUG=344962

Review URL: https://codereview.chromium.org/211293003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@259275 0039d316-1c4b-4281-b951-d872f2087c98
philipj
Add UseCounters for NamedNodeMap functions
This is in order to help determine which of these need to be kept in the
DOM spec, since it looks like some of them will be needed:
https://www.w3.org/Bugs/Public/show_bug.cgi?id=21986

BUG=none
NOTRY=true

Review URL: https://codereview.chromium.org/211363003

git-svn-id: svn://svn.chromium.org/blink/trunk@169969 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Restore attribute array length in RecursionCheckPoint.
Missing restore caused unnecessary invalidations in subsequent subtrees.

Also renamed a misnamed parameter in RuleFeature.h

R=esprehn
BUG=356196

Review URL: https://codereview.chromium.org/211333003

git-svn-id: svn://svn.chromium.org/blink/trunk@169958 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mboc
CHR-1706: Context menu with Shift+F10 shows out of Opera when web contents scrolled. In case we are opening a context menu on an element, the menu should be shown as currently, since the element has most probably a correct transform available. Since the <body> element possibly has contents of great height, the context menu should be shown on the upper edge of the displayed part of the element.
BUG=Context menu with Shift+F10 shows out of Opera when web contents scrolled.
The menu's position should not be translated by scroll position in case of
opening a menu for the <body> element.

Review URL: https://codereview.chromium.org/110533004

git-svn-id: svn://svn.chromium.org/blink/trunk@169956 bbb929c8-8fbe-4397-9dbb-9b2b20218538
tsniatowski
Improve logging of NSS errors that do not map to network errors.
BUG=
R=jar@chromium.org

Review URL: https://codereview.chromium.org/207583003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@259205 0039d316-1c4b-4281-b951-d872f2087c98
rune
Support invalidation sets for :host pseudo.
Traverse the selectorList() for :host pseudo, extract features, and create
class invalidation sets like we do for features and classes on the top level.

R=esprehn,ojan
BUG=335247,339729

Review URL: https://codereview.chromium.org/209333005

git-svn-id: svn://svn.chromium.org/blink/trunk@169927 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Deprecate webkitRequestAnimationFrame and friends as vendor-specific
Intent to Deprecate:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/nNsZDn_utUc/dUtD3ulsFMkJ

BUG=354921

Review URL: https://codereview.chromium.org/208263005

git-svn-id: svn://svn.chromium.org/blink/trunk@169924 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Use requestAnimationFrame (without prefix) in calendar picker
This is a prerequisite for deprecating the prefixed function, because
otherwise the forms tests get a deprecation message. This internal use
of webkitRequestAnimationFrame may also have inflated the use counter
data for it.

BUG=354921
R=abarth@chromium.org, keishi@chromium.org, tkent@chromium.org

Review URL: https://codereview.chromium.org/209003012

git-svn-id: svn://svn.chromium.org/blink/trunk@169918 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mmaliszkiewicz
[Win] alt + space opens system menu at wrong position in RTL ui.
When window is not maximized system menu opens on the left hand side and its
contents is partialy outside window bounds. After this fix when system menu
is opened using alt + space with RTL locale we draw it on the right hand side
and whole menu is inside browser window.

Review URL: https://codereview.chromium.org/134553002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@259037 0039d316-1c4b-4281-b951-d872f2087c98
sigbjornf
Revert of Update image data upon changing the img.crossorigin attribute. (https://codereview.chromium.org/201143002/)
Reason for revert:
The re-issuing of another image load upon setting 'crossorigin' has been reported to cause a site problem (a Google internal site/service.)

Until diagnosed and understood fully, let's back this one out.

Original issue's description:
> Update image data upon changing the img.crossorigin attribute.
> 
> The spec tells us that setting the crossorigin attribute on an img
> element should cause the "update the image data" steps to be invoked,
> 
>  http://www.whatwg.org/specs/web-apps/current-work/#update-the-image-data
> 
> Do so here, along with updating the underlying test's expectation.
> 
> R=
> BUG=341047
> 
> Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=169382

TBR=adamk@chromium.org,abarth@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=341047

Review URL: https://codereview.chromium.org/210403002

git-svn-id: svn://svn.chromium.org/blink/trunk@169874 bbb929c8-8fbe-4397-9dbb-9b2b20218538
davve
Remove optional type="JavaScript" from script tags
http://www.whatwg.org/specs/web-apps/current-work/#attr-script-type

  The type attribute gives the language of the script or format of the
  data. If the attribute is present, its value must be a valid MIME
  type. The charset parameter must not be specified. The default,
  which is used if the attribute is absent, is "text/javascript"."

Blink is less strict than other browsers. Removing the optional type
attribute enables tests to be run in other browsers, notably Firefox.

BUG=308992
NOTRY=true

Review URL: https://codereview.chromium.org/209333007

git-svn-id: svn://svn.chromium.org/blink/trunk@169872 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ed
[SVG2] Add onbegin, onend and onrepeat EventHandlers on SVGAnimationElement
These map to the eventnames 'beginEvent', 'endEvent' and 'repeatEvent'
respectively.

Spec:
https://svgwg.org/svg2-draft/animate.html#InterfaceSVGAnimationElement

BUG=338288
NOTRY=true

Review URL: https://codereview.chromium.org/201673003

git-svn-id: svn://svn.chromium.org/blink/trunk@169871 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
always use -Wno-deprecated-declarations when building sdch
This is also needed for c++11 mode in gcc 4.8, not just clang.

BUG=324299
NOTRY=true

Review URL: https://codereview.chromium.org/205963004

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@258918 0039d316-1c4b-4281-b951-d872f2087c98
philipj
Add a UseCounter for the Attr.value setter with associated Element
This will distinguish between setting the value on a newly created Attr
object from Document.createAttribute() and setting the value on an Attr
object already attached to an Element, e.g. one from Element.attributes.

If the first case is common but the second is rare it won't be possible
to make value readonly, but it could still be possible to drop the
Element association, which is the point of making it readonly.

BUG=none

Review URL: https://codereview.chromium.org/208333014

git-svn-id: svn://svn.chromium.org/blink/trunk@169844 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Remove custom FormData.append() bindings code.
The overload resolution needed for the two FormData.append() methods can
be handled directly by generated code, so drop the custom code we had
in place for this API.

Along with it, handle the conversion of append()'s DOMString arguments
per WebIDL (as it is now), removing the special treatment of null and
undefined arguments. This also aligns with how others (Gecko, Trident)
handle these arguments.

R=haraken@chromium.org
BUG=

Review URL: https://codereview.chromium.org/209933002

git-svn-id: svn://svn.chromium.org/blink/trunk@169841 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Custom wrap constructor overloads.
Follow up on crrev.com/206793006 and also call wrap() in the code generated
for a particular constructor overloading when [Custom=Wrap] is in effect
for one or more constructors.

R=nbarth@chromium.org,haraken@chromium.org
BUG=338804

Review URL: https://codereview.chromium.org/209893002

git-svn-id: svn://svn.chromium.org/blink/trunk@169839 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Make scrubbing a MediaControls-internal concept
HTMLMediaElement::beginScrubbing() would setPausedInternal(true), a mode
of pausing that is invisible to scripts. If a media controller was
detached while scrubbing, HTMLMediaElement::endScrubbing() would never
be called and the element would be stuck in this mode.

Since a user can already pause, scrub and then continue playing, making
MediaControls do the same should work just fine. Simply keep track of
the state before scrubbing and avoid updating the play button(s) as long
as we're scrubbing.

Note that the special handling of ended() is not needed, since reaching
the end of the resource pauses. This wasn't the case at the time the
code was originally written.

BUG=341813

Review URL: https://codereview.chromium.org/204803002

git-svn-id: svn://svn.chromium.org/blink/trunk@169814 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Implement the activation behavior of media elements (click to play/pause)
http://www.whatwg.org/specs/web-apps/current-work/multipage/the-video-element.html#user-interface

Added to the spec in http://html5.org/r/8315 after a long discussion:
http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2013-November/041662.html

Firefox already implements click to play/pause when controls are
visible, but that implementation predates the spec so accesskey does not
work.

HTMLMediaElement::togglePlayState() is made public so that it can be
used to implement play/pause in MediaControls also.

The video-click-dblckick-standalone.html test has been expected to fail
since April 2013, r148246, so remove it now since the the results would
change. The new tests provide sufficient coverage.

BUG=354746
TEST=LayoutTests/media/activation-behavior.html
     LayoutTests/media/activation-behavior-accesskey.html
     LayoutTests/media/activation-behavior-shadow.html

Review URL: https://codereview.chromium.org/208483002

git-svn-id: svn://svn.chromium.org/blink/trunk@169812 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Use the Document AnimationClock in SMILTimeContainer
It's trivial to replace the local AnimationClock in SMILTimeContainer
with the one from Document after making the observation that the only
current manipulations (updateTime/unfreeze) are already performed by
PageAnimator (DocumentAnimations::updateAnimationTimingForAnimationFrame)
and RenderLayerCompositor (DocumentAnimations::startPendingAnimations).

With this change it become possible to push the DiscardScope into
updateAnimationsAndScheduleFrameIfNeeded - so do that to simplify the
code (by reducing the number of places that instantiate a DiscardScope.)

BUG=231576

Review URL: https://codereview.chromium.org/198723005

git-svn-id: svn://svn.chromium.org/blink/trunk@169761 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Cache all the results in SVGSMILElement::repeatCount()
The null-attribute and 'indefinite' cases were not cached, which made
this method do some unnecessary work for each animation update.

BUG=354520

Review URL: https://codereview.chromium.org/206013003

git-svn-id: svn://svn.chromium.org/blink/trunk@169755 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Reduce rootElement access boilerplate in SVGImage
Add a helper function 'svgRootElement' and use that where appropriate.

Review URL: https://codereview.chromium.org/208503002

git-svn-id: svn://svn.chromium.org/blink/trunk@169751 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: move ApplicationCache to the oilpan heap.
Make this EventTarget-derived object a garbage collected object.

R=haraken@chromium.org
BUG=340522

Review URL: https://codereview.chromium.org/208083003

git-svn-id: svn://svn.chromium.org/blink/trunk@169744 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rchlodnicki
Do not trigger new history entry if iframe URL doesn't change
When URL of an iframe changes from "unset" to "set", we don't want to
create new history entry. This worked for URLs without fragment
identifier but failed with it present.

This change takes the idea from the old code, before it was rewritten
in https://codereview.chromium.org/126453005

BUG=353096

Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=169665

Review URL: https://codereview.chromium.org/201773002

git-svn-id: svn://svn.chromium.org/blink/trunk@169736 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: make DataObject and SharedWorker heap Supplementables.
With heap supplement{able}s support now in place, follow up and turn
the supplements of these two into garbage allocated objects also.

R=haraken@chromium.org
BUG=340522

Review URL: https://codereview.chromium.org/200373003

git-svn-id: svn://svn.chromium.org/blink/trunk@169733 bbb929c8-8fbe-4397-9dbb-9b2b20218538
bratell
Fix for VS2010 compiler warning.
Including the enum type name between scope and enum is a new invention
and older compilers warn about it being a non standard extension.

It's not needed so let us just drop it.

BUG=

Review URL: https://codereview.chromium.org/206573002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@258531 0039d316-1c4b-4281-b951-d872f2087c98
philipj
Make w3cwrapper.js's done() match the semantics in testharness.js
This should fix any tests where done() can be called multiple times.

BUG=333880

Review URL: https://codereview.chromium.org/205893003

git-svn-id: svn://svn.chromium.org/blink/trunk@169720 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Support invalidation sets for shadow combinators.
We bailed out of invalidation set support for selectors containing /shadow/
or /shadow-deep/. For invalidation sets they now work like descendant/child
combinators do.

R=esprehn@chromium.org, chrishtr@chromium.org
BUG=335247

Review URL: https://codereview.chromium.org/206513004

git-svn-id: svn://svn.chromium.org/blink/trunk@169706 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Rewind the timeline for SVG-in-<img> when resetAnimation() is called
Attempt to mimic the behavior of animated raster images (BitmapImage)
more closely wrt when the timeline is started and reset/rewound.

BUG=177277

Review URL: https://codereview.chromium.org/206033005

git-svn-id: svn://svn.chromium.org/blink/trunk@169694 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Clip the start position when performing SVG text queries
If a text query straddles multiple line boxes, only the first would be
considered, because |startPosition| would end up being negative.
Instead clip the character range to [0) (the following functions will
clip against the end position) and only reject ranges that are empty i.e.
that appear before the current fragment (logically.)

BUG=353462

Review URL: https://codereview.chromium.org/206663003

git-svn-id: svn://svn.chromium.org/blink/trunk@169682 bbb929c8-8fbe-4397-9dbb-9b2b20218538
haavardm
Do not assume OSCertHandle is OpenSSL's X509 structure.
Instead create a X509Certificate instance from the OpenSSL 
chain via PeerCertificateChain, and compare with the existing
X509Certificate.

BUG=none

Review URL: https://codereview.chromium.org/203323004

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@258337 0039d316-1c4b-4281-b951-d872f2087c98
sigbjornf
Oilpan: move Console objects to the oilpan heap.
Turn the ConsoleBase object into a garbage collected object if Oilpan
is enabled, avoiding its ref forwarding to either Console or WorkerConsole.

R=haraken@chromium.org,ager@chromium.org
BUG=340522

Review URL: https://codereview.chromium.org/206093005

git-svn-id: svn://svn.chromium.org/blink/trunk@169670 bbb929c8-8fbe-4397-9dbb-9b2b20218538
davve
Remove "bashism" from plain shell script
https://codereview.chromium.org/196413021 uses [[ which isn't present
in all shells, particularly not dash which Debian uses as /bin/sh.
Instead use two simple [ conditions.

Review URL: https://codereview.chromium.org/203463010

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@258321 0039d316-1c4b-4281-b951-d872f2087c98
ed
[SVG] Transform animation leaves traces of text behind.
AffineTransform.inverse() unexpectedly returned an identity matrix when
the matrix was not invertible. This caused invalid rendering for e.g
scale(0) matrices in svg.

BUG=352603

Review URL: https://codereview.chromium.org/200053005

git-svn-id: svn://svn.chromium.org/blink/trunk@169666 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rchlodnicki
Do not trigger new history entry if iframe URL doesn't change
When URL of an iframe changes from "unset" to "set", we don't want to
create new history entry. This worked for URLs without fragment
identifier but failed with it present.

This change takes the idea from the old code, before it was rewritten
in https://codereview.chromium.org/126453005

BUG=353096

Review URL: https://codereview.chromium.org/201773002

git-svn-id: svn://svn.chromium.org/blink/trunk@169665 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Use monotonic time for SVGImage's serviceScriptedAnimations()
Breakage from r168748 which used the wrong time-source.

BUG=231576

Review URL: https://codereview.chromium.org/204673004

git-svn-id: svn://svn.chromium.org/blink/trunk@169645 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Move element flags from ElementRareData to NodeRareData
By doing this, they can be packed together with the existing bit-field
member NodeRareData::m_connectedFrameCount, and save some space.

Impact according to sizeof(ElementRareData), on 64-bit Linux (GCC and
Clang alike,) is a modest 8 byte saving, from 144 bytes to 136 bytes.

BUG=

Review URL: https://codereview.chromium.org/201153006

git-svn-id: svn://svn.chromium.org/blink/trunk@169644 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Fix relative paths in flaky EME tests
BUG=354146

Review URL: https://codereview.chromium.org/206023003

git-svn-id: svn://svn.chromium.org/blink/trunk@169634 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove dead code for dragging MediaControlPanelElement
Because setCanBeDragged(true) is never called, all the rest of the
dragging code becomes unreachable. The feature as such looks useful, but
it would require fixing and above all testing to interact well with text
track rendering.

BUG=341813
TEST=LayoutTests/media/ still passes, i.e. there were none!

Review URL: https://codereview.chromium.org/196533020

git-svn-id: svn://svn.chromium.org/blink/trunk@169606 bbb929c8-8fbe-4397-9dbb-9b2b20218538
tmoniuszko
Fix for undefined base::FilePath in chrome_extensions_api_client.cc
There was a compilation error when ENABLE_CONFIGURATION_POLICY was not defined.

If ENABLE_CONFIGURATION_POLICY was defined then base/files/file_path.h was
included from
chrome/browser/extensions/api/storage/managed_value_store_cache.h

BUG=

Review URL: https://codereview.chromium.org/204523002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@258037 0039d316-1c4b-4281-b951-d872f2087c98
philipj
Add UseCounters for the Attr.value getter and setter
This is to determine if it could be made readonly. The getter is
measured to learn the relative usage, and is most likely above any
threshold for removal.

BUG=none

Review URL: https://codereview.chromium.org/203193010

git-svn-id: svn://svn.chromium.org/blink/trunk@169541 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: move History to the oilpan heap.
R=ager@chromium.org,haraken@chromium.org
BUG=340522

Review URL: https://codereview.chromium.org/201083004

git-svn-id: svn://svn.chromium.org/blink/trunk@169540 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: move Location to the oilpan heap.
Also add missing transition type handling for [PutForwards] over
garbage collected interface types.

R=haraken@chromium.org
BUG=340522

Review URL: https://codereview.chromium.org/196133029

git-svn-id: svn://svn.chromium.org/blink/trunk@169538 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Added rune to rendering watchlist.
NOTRY=true
TBR=abarth
BUG=None

Review URL: https://codereview.chromium.org/203593010

git-svn-id: svn://svn.chromium.org/blink/trunk@169533 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: have WebPerformance use transition types.
Also have DOMWindow keep a persistent reference to its Performance object.

R=
BUG=340522

Review URL: https://codereview.chromium.org/197283036

git-svn-id: svn://svn.chromium.org/blink/trunk@169532 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: add transition types to Navigator and its supplements.
R=haraken@chromium.org
BUG=340522

Review URL: https://codereview.chromium.org/204063002

git-svn-id: svn://svn.chromium.org/blink/trunk@169529 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Reset SelectorCheckingContext.elementStyle for :ancestor matching.
SelectorCheckingContext.elementStyle is used to store the RenderStyle for
the element we are currently computing styles for. It is among other things
used for setting flags on the RenderStyle if we may match :hover,
:first-child, or some other pseudo classes. When we go past a combinator
during matching, we set the elementStyle to null to tell we are not
currently looking at the target element for the selector matching.

The :ancestor pseudo is a special case in the sense that it will select
styles for the shadow host element, but its sub-selectors may actually match
ancestor elements of the host element, behaving as if we had a descendant
combinator. This CL resets elementStyle to 0 when matching ancestors of a
shadow host for the :ancestor pseudo class in order to set flags for :hover,
:first-child, etc on the correct RenderStyle objects.

R=dglazkov@chromium.org
BUG=353503

Review URL: https://codereview.chromium.org/201573003

git-svn-id: svn://svn.chromium.org/blink/trunk@169491 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Recalc sibling styles for forward positional rules on mutations only.
Forward positional rules only affect selector matching of siblings when
nodes are added to or removed from the DOM. However, selectors with indirect
adjacent combinators may affect sibling evaluation without node addition or
removal. For instance if a class selector left of an indirect adjacent
combinator is set on an element.

Since the indirect adjacent combinator was considered as a forward
positional rule, we were recalculating sibling styles in the presence of an
nth-selector. We now split indirect adjacent selector matching as a separate
flag to be able to optimize recalc in the presence if nth-selectors and
skip sibling recalc for forward positional rules if no mutations happened.

ElementRareData and ShadowRootRareData do not increase in size since they
were already padded in the relevant parts.

R=ojan
BUG=160212

Review URL: https://codereview.chromium.org/198783003

git-svn-id: svn://svn.chromium.org/blink/trunk@169471 bbb929c8-8fbe-4397-9dbb-9b2b20218538
bratell
Put histogram code in disk_cache on a diet.
The CACHE_UMA macro expanded wildly and with all the static variables
in all blocks it was impossible for the compiler to shrink it. This
removes the static variables (for a minor performance hit) to save 75%
of the size of BackendImpl::ReportStats() and other changes elsewhere.

Examples (sorry, don't have data for symbols smaller than 6 KB so not exact):
disk_cache::BackendImpl::ReportStats()  55423 bytes -> 9788 bytes
disk_cache::BackendImpl::FirstEviction() 21361 bytes -> < 6 KB
disk_cache::BackendImpl::OpenEntryImpl: 16381 bytes -> < 6 KB
disk_cache::EntryImpl::ReportIOTime: 14626 bytes -> < 6 KB
disk_cache::Eviction::ReportListStats: 10099 bytes -> < 6 KB
disk_cache::Eviction::TrimCacheV2: 7820 bytes -> < 6 KB
disk_cache::Eviction::TrimCache: 7095 bytes -> < 6 KB

In total my stripped Linux x64 Release content_shell binary shrinks by 132 KB with this change (0.25%).

BUG=352555

R=gavinp@chromium.org

Review URL: https://codereview.chromium.org/196383016

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@257637 0039d316-1c4b-4281-b951-d872f2087c98
sigbjornf
Revert of Explicit notification and removal of lifecycle observers. (https://codereview.chromium.org/194923007/)
Reason for revert:
http://test-results.appspot.com/dashboards/flakiness_dashboard.html#group=%40ToT%20Blink&tests=fast/workers/storage/interrupt-database.html,http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_dedicated_worker.html,http/tests/xmlhttprequest/workers/referer.html,http/tests/xmlhttprequest/workers/xmlhttprequest-response-type-blob.html

Original issue's description:
> Explicit notification and removal of lifecycle observers.
> 
> To help make disposing of execution contexts cleaner in a setting
> where both a context and its lifetime observers are being finalized
> by a garbage collector, add support for explicitly clearing out
> all lifecycle observers:
> 
> protected:
>   void LifecycleNotifier<T>::removeAndNotifyAllObservers()
> 
> Notifying them that the context has been destroyed while doing so.
> An operation that was previously (only) done by the LifecycleNotifier
> destructor.
> 
> Also provide a convenience method over ExecutionContext for clearing
> out its observers:
> 
>   void ExecutionContext::removeAllLifecycleObservers()
> 
> The operation is used here when shutting down and finalizing a worker
> thread and its global scope -- explicitly severing the connection
> of all observers to its execution context before performing the
> final garbage collection.
> 
> Doing so ensures that all observer objects being finalized during that
> garbage collection will not have access to its execution context object.
> A heap object that may or may not have been finalized by the garbage
> collector already.
> 
> R=haraken@chromium.org,ager@chromium.org,abarth@chromium.org
> BUG=340522
> 
> Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=169435

TBR=oilpan-reviews@chromium.org,abarth@chromium.org,haraken@chromium.org,ager@chromium.org,eseidel@chromium.org,tkent@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=340522

Review URL: https://codereview.chromium.org/203393002

git-svn-id: svn://svn.chromium.org/blink/trunk@169444 bbb929c8-8fbe-4397-9dbb-9b2b20218538
bratell
The entity table contained pointers which both makes it big and prevents
it from being reused as-is from the binary. This changes it to make
the storage more compact by replacing pointers with offsets into a
shared string. Also switching to more compact data types.

The new database will look like:

static const LChar staticEntityStringStorage[] = {
'A', 'E', 'l', 'i', 'g',
';',
'A', 'M', 'P',
';',
'A', 'a', 'c', 'u', 't', 'e',
';',
...

static const HTMLEntityTableEntry staticEntityTable[2231] = {
    { 0x000C6, 0, 0, 5 }, // &AElig
    { 0x000C6, 0, 0, 6 }, // &AElig;
    { 0x00026, 0, 6, 3 }, // &AMP
    { 0x00026, 0, 6, 4 }, // &AMP;
    { 0x000C1, 0, 10, 6 }, // &Aacute
...

The binary will shrink by about 20-35 KB (depending on architecture),
the memory usage should shrink by similar numbers for every
renderer (since the memory now can be shared between renderers) and
there will be a tiny startup time improvement due to
fewer relocation blocks and less to read from disk.

It accomplishes the savings by avoiding pointers in the data (resolving pointers
during startup is expensive), using one string instead of 2000+, not storing the
trailing NUL byte, ordering the members for minimum padding, using minimal size
data types and reusing the same string space for things like "amp;" and "amp".

BUG=352141

R=

Review URL: https://codereview.chromium.org/199103002

git-svn-id: svn://svn.chromium.org/blink/trunk@169438 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Explicit notification and removal of lifecycle observers.
To help make disposing of execution contexts cleaner in a setting
where both a context and its lifetime observers are being finalized
by a garbage collector, add support for explicitly clearing out
all lifecycle observers:

protected:
  void LifecycleNotifier<T>::removeAndNotifyAllObservers()

Notifying them that the context has been destroyed while doing so.
An operation that was previously (only) done by the LifecycleNotifier
destructor.

Also provide a convenience method over ExecutionContext for clearing
out its observers:

  void ExecutionContext::removeAllLifecycleObservers()

The operation is used here when shutting down and finalizing a worker
thread and its global scope -- explicitly severing the connection
of all observers to its execution context before performing the
final garbage collection.

Doing so ensures that all observer objects being finalized during that
garbage collection will not have access to its execution context object.
A heap object that may or may not have been finalized by the garbage
collector already.

R=haraken@chromium.org,ager@chromium.org,abarth@chromium.org
BUG=340522

Review URL: https://codereview.chromium.org/194923007

git-svn-id: svn://svn.chromium.org/blink/trunk@169435 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Ignore MediaController in the video fullscreen button logic
There were three problems:

 1. When fullScreenEnabled() was false, HTMLMediaElement's
    enterFullscreen() was used as a fallback, but that function checks
    the setting and does nothing. This has been the case since cleanup
    from April 2013, r149489: https://codereview.chromium.org/14670004

 2. MediaController's hasVideo() returned true if any of the slave
    elements had video, which could show the button for a video element
    with no video.

 3. The fullscreen button didn't do anything for slaved media elements.

The added tests verify that (1) no fullscreen button is shown when the
fullscreen feature is disabled or (2) when there is no video track, and
(3) that clicking the fullscreen button actually enters fullscreen.

BUG=351661

Review URL: https://codereview.chromium.org/196793021

git-svn-id: svn://svn.chromium.org/blink/trunk@169429 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Include HTMLMediaElement.h only where needed
Now slightly fewer files are recompiled when touching the header.

BUG=none

Review URL: https://codereview.chromium.org/196353003

git-svn-id: svn://svn.chromium.org/blink/trunk@169411 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Replace HTMLMediaElement::isVideo() with isHTMLVideoElement
One type testing mechanism to rule them all.

BUG=none

Review URL: https://codereview.chromium.org/200713004

git-svn-id: svn://svn.chromium.org/blink/trunk@169407 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Ignore MediaController in the closed captions button logic
Involving the media controller plainly does not make sense.

There was no test coverage for the CC button with a media controller
present, and adding a negative test for it does not seem useful.

Note that what remains is still not great since it doesn't allow you to
pick between multiple tracks, but that will be fixed at a later time.

BUG=341813
TEST=LayoutTests/media/audio-controls-captions.html
     LayoutTests/media/video-controls-captions.html

Review URL: https://codereview.chromium.org/201123004

git-svn-id: svn://svn.chromium.org/blink/trunk@169405 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
ensure that UnixDomainSocket::RecvMsgWithFlags doesn't memcpy from 0
If wire_fds is never updated after being initialized to 0, then we should not memcpy from it.

Review URL: https://codereview.chromium.org/196353002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@257504 0039d316-1c4b-4281-b951-d872f2087c98
wdzierzanowski
Make SyncStartupTracker::Observer destructor virtual
Instances of SyncStartupTracker::Observer subclasses are likely to be
deleted through a SyncStartupTracker::Observer pointer.

While we are here, also put the include of sync_startup_tracker.h first
in sync_startup_tracker.cc for reasons stated in the style guide.

R=atwilson@chromium.org
BUG=

Review URL: https://codereview.chromium.org/197243002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@257502 0039d316-1c4b-4281-b951-d872f2087c98
sigbjornf
Re-set referrer on issuing a validation request for a cached resource.
If a cached resource needs to be revalidated, then supply the referrer
of the document making the request.

R=japhet@chromium.org
BUG=344335

Review URL: https://codereview.chromium.org/201973002

git-svn-id: svn://svn.chromium.org/blink/trunk@169392 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Update image data upon changing the img.crossorigin attribute.
The spec tells us that setting the crossorigin attribute on an img
element should cause the "update the image data" steps to be invoked,

 http://www.whatwg.org/specs/web-apps/current-work/#update-the-image-data

Do so here, along with updating the underlying test's expectation.

R=
BUG=341047

Review URL: https://codereview.chromium.org/201143002

git-svn-id: svn://svn.chromium.org/blink/trunk@169382 bbb929c8-8fbe-4397-9dbb-9b2b20218538
haavardm
Make OpenSSL UpdateServerCert() OS independent.
UpdateServerCert currently creates the server cert chain
directly from the openssl struct X509. This works since
OSCertHandle currently is an OpenSSL X509 struct when
OpenSSL is used on Android and Linux.

This patch makes the UpdateServerCert() OS independent by creating
the X509Certificate from DER data instead of OSCertHandle to make
it compile on the other platforms when USE_OPENSSL is off.

Keep the USE_OPENSSL code to avoid converting back and forth
between X509 and DER twice and OsCertHandle is X509.

I see that there is a DER cache in x509_certificate_openssl.cc
which could have simplified the patch a bit. However, if I understand
a comment correctly,  it shouldn't be mixed with certificates that comes
from network, which is the case here. Also, that API is not exposed.

Also remove some unused NSS code from x509_certificate_mac.cc.

Review URL: https://codereview.chromium.org/173853014

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@257449 0039d316-1c4b-4281-b951-d872f2087c98
rune
Removed invalidation set FIXME for pseudo elements.
This FIXME is no longer valid since the recalcChildStyle for pseudo elements
has been fixed and ::before, ::after, ::backdrop are now supported for class
invalidation sets.

R=esprehn@chromium.org,chrishtr@chromium.org
BUG=335247

Review URL: https://codereview.chromium.org/201833002

git-svn-id: svn://svn.chromium.org/blink/trunk@169360 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Compute the keyTimes index correctly for discrete (values) animations
The last value is allowed to be non-one for discrete mode animations (but
not for linear and spline mode animations).

TEST=svg/animations/animate-elem-{14,18}-t-drt.html
BUG=350318

Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=169211

Review URL: https://codereview.chromium.org/197283002

git-svn-id: svn://svn.chromium.org/blink/trunk@169351 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Revert of Allow frames to be free'd even for static images (https://codereview.chromium.org/136503002/)
Reason for revert:
May have caused issue 350653.

Original issue's description:
> Allow frames to be free'd even for static images
> 
> r151702 added limit for pruning in ImageDecoded::clearCacheExceptFrame,
> which would disallow pruning single-frame/static images altogether.
> 
> Allow such images to be pruned in their entirety by dropping the
> condition for <= 1 frames - the for-loop will handle the kNotFound case.
> 
> (Also related is r156651, which re-added the destroyAll flag.)
> 
> Modify the ImageFrameGeneratorTest.frameHasAlpha unittest to use frame 0
> instead of frame 1, to avoid clearing frame 1 (MockImageDecoder
> maps all indices to frame 0.)
> 
> R=hclam@chromium.org,pkasting@chromium.org,senorblanco@chromium.org
> BUG=302851
> 
> Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=165127

TBR=hclam@chromium.org,pkasting@chromium.org,senorblanco@chromium.org,jochen@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=302851

Review URL: https://codereview.chromium.org/201793002

git-svn-id: svn://svn.chromium.org/blink/trunk@169347 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Fix running of CSS Animations in SVG-in-<img>/background-image/etc.
Align SVGImageChromeClient with the WebViewImpl/PageWidgetDelegate/...-
cluster and call updateLayoutAndStyleForPainting on FrameView instead of
updateLayoutAndStyleIfNeededRecursive to make pending animations start
etc.

Also add a new method to DocumentTimeline to use when scheduling the
animation-timer in SVGImageChromeClient (to avoid '0' timeouts when
there's pending animations updates.)

BUG=278189

Review URL: https://codereview.chromium.org/196223014

git-svn-id: svn://svn.chromium.org/blink/trunk@169340 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ed
[SVG2] Add getters and setters to SVG*List interfaces.
Implement the 'length' attribute and make 'numberOfItems' an alias
of that.

Spec:
https://svgwg.org/svg2-draft/types.html#InterfaceSVGStringList
https://svgwg.org/svg2-draft/types.html#InterfaceSVGNumberList
https://svgwg.org/svg2-draft/types.html#InterfaceSVGLengthList
https://svgwg.org/svg2-draft/coords.html#InterfaceSVGTransformList
https://svgwg.org/svg2-draft/coords.html#InterfaceSVGPointList

BUG=336748

Review URL: https://codereview.chromium.org/195313003

git-svn-id: svn://svn.chromium.org/blink/trunk@169332 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Make supported-xml-content-types.html tests faster.
To try to address Windows test slowness, switch this test over to
async XHR requests + split it up into chunks.

R=mkwst@chromium.org
BUG=

Review URL: https://codereview.chromium.org/198893002

git-svn-id: svn://svn.chromium.org/blink/trunk@169317 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Expose CrossThreadPersistent assignment operators.
Allow the base class Persistent assignment operators to be used over
CrossThreadPersistent also.

R=haraken@chromium.org
BUG=347902

Review URL: https://codereview.chromium.org/196383024

git-svn-id: svn://svn.chromium.org/blink/trunk@169315 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Improve media-related exception messages
The two in HTMLMediaElement were just wrong.

Add a video-currentTime-set-with-controller.html test as that code path
was apparently untested before.

BUG=270033

Review URL: https://codereview.chromium.org/197213012

git-svn-id: svn://svn.chromium.org/blink/trunk@169314 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Use invalidation sets for some pseudo elements.
Allow to use class invalidation sets for selectors containing ::before,
::after, or ::backdrop. These pseudo elements are updated correctly in
Element::recalcChildStyle for LocalStyleChange on their parents.

BUG=335247

Review URL: https://codereview.chromium.org/195093004

git-svn-id: svn://svn.chromium.org/blink/trunk@169298 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Replace Element::isMediaElement() with isHTMLMediaElement
This make HTMLMediaElement type casting more in line with the generated
code for most other HTML elements. Not incidentally, this simplifies the
code in several places.

BUG=none

Review URL: https://codereview.chromium.org/196723014

git-svn-id: svn://svn.chromium.org/blink/trunk@169293 bbb929c8-8fbe-4397-9dbb-9b2b20218538
joaoe
Make LogMessage() handle strings with null bytes
'LOG(...) << std::string("a\0a", 3);' would cause the line to be
truncated, and no newline output.

Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=257093

Review URL: https://codereview.chromium.org/198103008

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@257135 0039d316-1c4b-4281-b951-d872f2087c98
fs
Tweaks and fixes to the SMILTimeContainer frame scheduling logic
Restore the old frame delay as |initialFrameDelay| and use that in
begin(). (There's a 15ms difference from DocumentTimeline::s_minimumDelay,
in case that matters to some layout test.)

Use a separate state (FutureAnimationFrame) for the cases where an
animation frame is requested later than the next frame interval. This
avoids unnecessary work in the frame callback (which is gated on the
state being AnimationFrame).

Fix an issue where an animation frame could end up being scheduled,
although a synchronization had been triggered already (via
updateAnimations() and a syncbase dependency for instance). Similarly also
avoid increasing the timer in begin() for similar cases.

BUG=231576

Review URL: https://codereview.chromium.org/193053002

git-svn-id: svn://svn.chromium.org/blink/trunk@169259 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Use LocalStyleChange for classes in rightmost compound selector.
If we resort to not using invalidation sets, we can still use
LocalStyleChange instead of SubtreeStyleChange for classes in the rightmost
compound selector if the invalidation set approach was not dropped due to a
feature in the rightmost compound selector. For classes in other compound
selectors, still use SubtreeStyleChange.

Examples:

".a + .b" -> LocalStyleChange for "b", SubtreeStyleChange for "a"
".a .b::first-letter" -> SubtreeStyleChange for both "a" and "b".

R=esprehn@chromium.org,chrishtr@chromium.org
BUG=335247

Review URL: https://codereview.chromium.org/199373003

git-svn-id: svn://svn.chromium.org/blink/trunk@169255 bbb929c8-8fbe-4397-9dbb-9b2b20218538
joaoe
Make LogMessage() handle strings with null bytes
'LOG(...) << std::string("a\0a", 3);' would cause the line to be
truncated, and no newline output.

Review URL: https://codereview.chromium.org/198103008

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@257093 0039d316-1c4b-4281-b951-d872f2087c98
sigbjornf
Oilpan: move Screen and its supplement to the oilpan heap.
R=
BUG=340522

Review URL: https://codereview.chromium.org/196023016

git-svn-id: svn://svn.chromium.org/blink/trunk@169246 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Prevent destruction of self in SMILTimeContainer with 'discard'
If discarding the <svg> root an animation update could end up destroying
the SVGSVGElement owning the SMILTimeContainer, leading to use-after-free.
Make sure to keep an additional reference to the owning SVGSVGElement
across affected callsites.

BUG=351316

Review URL: https://codereview.chromium.org/195233003

git-svn-id: svn://svn.chromium.org/blink/trunk@169239 bbb929c8-8fbe-4397-9dbb-9b2b20218538
andersr
Fix broken transition for text-decoration-color.
CSSPropertyEquality::propertiesEqual was not implemented for
text-decoration-color.

Note: The test has a high tolerance, because we really only need to test
that the current value is somewhere between the start value and end value.

BUG=351675
TEST=test-decoration-color-transition.html

Review URL: https://codereview.chromium.org/197223002

git-svn-id: svn://svn.chromium.org/blink/trunk@169215 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
Minor documentation fixup, followup from https://codereview.chromium.org/184903003
BUG=308843
NOTRY=true

Review URL: https://codereview.chromium.org/195893015

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@257053 0039d316-1c4b-4281-b951-d872f2087c98
fs
Compute the keyTimes index correctly for discrete (values) animations
The last value is allowed to be non-one for discrete mode animations (but
not for linear and spline mode animations).

TEST=svg/animations/animate-elem-{14,18}-t-drt.html
BUG=350318

Review URL: https://codereview.chromium.org/197283002

git-svn-id: svn://svn.chromium.org/blink/trunk@169211 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Testcase for crbug.com/350907
Also replace the FIXME with an attempt at explaining why/when m_image
can be 0.

BUG=350907

Review URL: https://codereview.chromium.org/198943004

git-svn-id: svn://svn.chromium.org/blink/trunk@169210 bbb929c8-8fbe-4397-9dbb-9b2b20218538
bratell
Replace big code block to build CSS pseudo name table with a loop.
Save 8 KB binary size by replacing code that expanded badly with
a loop. As a bonus, the code is much more maintainable now.

BUG=352113

R=ojan@chromium.org

Review URL: https://codereview.chromium.org/196983005

git-svn-id: svn://svn.chromium.org/blink/trunk@169175 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: move ImageBitmap to the oilpan heap.
R=haraken@chromium.org,erik.corry@gmail.com
BUG=340522

Review URL: https://codereview.chromium.org/190183003

git-svn-id: svn://svn.chromium.org/blink/trunk@169153 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Make sure table cells are laid out again when fragmentainer height changes.
We may have to update pagination struts then, which requires a deeper layout.

BUG=348064

Note that this doesn't really fix the bug mentioned, but it does contribute to more correct rendering of the test case there.

Review URL: https://codereview.chromium.org/194713009

git-svn-id: svn://svn.chromium.org/blink/trunk@169144 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: move Worker objects to the oilpan heap.
R=
BUG=340522

Review URL: https://codereview.chromium.org/180743028

git-svn-id: svn://svn.chromium.org/blink/trunk@169116 bbb929c8-8fbe-4397-9dbb-9b2b20218538
bratell
[MemUsage][BinarySize] More perfect hashes for CSS strings.
gperf generates some "perfect" hashes for CSS properties and CSS
values. Those are not very compact but can be more compact if gperf
is asked to try harder. This will cost 1 s build time and reduce binary
size by about 12 KB.

The flags changed are:

'-m 50' - Try 50 times more initial values to the search algorithm. This
will make the call 50 times slower but for the current input size that is
no problem.

Removal of ‘-s 2’ - -s 2 told gperf to generate a twice as large data table
to make it easier (faster) to find a solution.

Also '-D' moved around but was there both before and after so no addition
or removal.

In the longer run we should move away from gperf to a better algorithm (they
exist at the research level but not as easily installed programs)

BUG=351774

Review URL: https://codereview.chromium.org/196413006

git-svn-id: svn://svn.chromium.org/blink/trunk@169111 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Stop using toParentMediaElement internally in MediaControlElements
Just use mediaElement()

BUG=341813
R=adamk@chromium.org

Review URL: https://codereview.chromium.org/196143005

git-svn-id: svn://svn.chromium.org/blink/trunk@169107 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
skip unused value in CSSPropertyParser::parse2ValuesFillPosition
Spotted a warning due to this unused value while testing some static
analyzer tools.

Review URL: https://codereview.chromium.org/196533005

git-svn-id: svn://svn.chromium.org/blink/trunk@169071 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Undeprecate DocumentClear, CaptureEvents and ReleaseEvents
These are all specified for Document:
http://www.whatwg.org/specs/web-apps/current-work/multipage/obsolete.html#obsolete

There's no spec for Window, so split the CaptureEvents and ReleaseEvents counters.

BUG=none

Review URL: https://codereview.chromium.org/193443004

git-svn-id: svn://svn.chromium.org/blink/trunk@169054 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Consider intrinsic size for SVG as list-style-image
When using an SVG as list marker image, don't unconditionally set the
dimensions to a square with the dimensions of ascent / 2, but rather
determine a suitable size using intrinsic dimensions (and ratio).

This aligns behavior with Gecko and IE.

BUG=350734

Review URL: https://codereview.chromium.org/197203003

git-svn-id: svn://svn.chromium.org/blink/trunk@169053 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Handle percent height children of multicol containers correctly.
The render flow thread block that's reparented between the multicol container
and its actual children is just an implementation detail, invisible to DOM and CSS.
Its height will always be auto, and we need to bypass it.

BUG=351657

Review URL: https://codereview.chromium.org/197113002

git-svn-id: svn://svn.chromium.org/blink/trunk@169050 bbb929c8-8fbe-4397-9dbb-9b2b20218538
andersr
Fix dashed/dotted regression caused by multi-style text decoration patch.
If you fall through from TextDecorationStyle[Dotted, Dashed] to
TextDecorationStyleDouble, then obviously double lines will be drawn.

Also, change code to reuse as much code as possible rather than duplicate
approximately the same thing three times.

There should be no functional changes other than the regression fix.

BUG=351282
TEST=Covered by existing tests

Review URL: https://codereview.chromium.org/197633002

git-svn-id: svn://svn.chromium.org/blink/trunk@169039 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Pause the timeline on load in the SVGAnimationTestCase.js framework
Most tests using this framework drive the "clock" / currentTime "manually"
by setCurrentTime(t), and add the instance time of a click event to it.
This means that there's a risk of rounding errors creeping in and causing
the actual elapsed time to be off by a fraction - large enough to cause
failures - at least for discrete animations.
(Example: svglengthlist-animation-3.html)
By pausing the timeline at 'load', the instance time for the click event
will be '0', which should eliminate the risk of rounding issues.
For the cases where the test actually need time to pass the timeline can
be unpaused explicitly. (Currently only one testcase seemed to require
that treatment.)

BUG=350827

Review URL: https://codereview.chromium.org/194943002

git-svn-id: svn://svn.chromium.org/blink/trunk@169033 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Use correct container width as base for percentage margins.
Blocks establishing a new BFC need to avoid floats in its parent BFC. Also,
computing used values for auto margins for such blocks is affected by the
available line width constrained by these floats. However, percentage sized
margins must be calculated based on the full containing block width, not the
available line width.

R=jchaffraix@chromium.org
BUG=348927

Review URL: https://codereview.chromium.org/185723005

git-svn-id: svn://svn.chromium.org/blink/trunk@169030 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Let MediaControls use the parent HTMLMediaElement
Likewise, let MediaControlElements use the parent MediaControls.

The goal is that all instances of mediaControllerInterface() should be
replaced by either the media element or its controller. For example,
text tracks and fullscreen will just use the media element, while e.g.
seeking must be done via the MediaController if it is present.

No observable changes are intended in this commit.

BUG=341813

Review URL: https://codereview.chromium.org/195473002

git-svn-id: svn://svn.chromium.org/blink/trunk@169014 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
Fix possible use of garbage value in acquirePaintingResource
If ASSERT_NOT_REACHED is compiled out (like in release builds), then
hasFallback can be used uninitialized below.

Review URL: https://codereview.chromium.org/196113002

git-svn-id: svn://svn.chromium.org/blink/trunk@169000 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Merge MediaControlsAndroid into MediaControls
The additional functionality in MediaControlsAndroid is so small that
merging it was trivial. Just use CSS to hide the overlay enclosure.

One unsightly ifdef remains in MediaControls::shouldHideControls(),
hopefully this can eventually be removed by using a setting or perhaps
checking the device capabilities.

MediaControls::createTextTrackDisplay() was made simpler.

BUG=341813

Review URL: https://codereview.chromium.org/192453005

git-svn-id: svn://svn.chromium.org/blink/trunk@168967 bbb929c8-8fbe-4397-9dbb-9b2b20218538
andersr
Support multiple text decoration styles.
Currently, we draw only the last seen text decoration style during
decoration painting, even when multiple decorations
(e.g. underline + overline) are applied. Hence, we potentially draw
the wrong decoration style for one or more of the applied decorations.

Fixed by fetching the matching style for each decoration, similar
to how the matching text-decoration-color is fetched.

BUG=351282
TEST=text-decoration-style-multiple.html

Review URL: https://codereview.chromium.org/195093002

git-svn-id: svn://svn.chromium.org/blink/trunk@168946 bbb929c8-8fbe-4397-9dbb-9b2b20218538
davve
Drop UseCounters for certain properties on CSSStyleDeclaration
Blink/WebKit/IE supports properties on CSSStyleDeclaration that are
the literal names of the CSS properties, for instance
style['font-face']. We have two related counters for measuring how
often this capability is used.

The consensus on bug 290055 is that we can't drop the corresponding
functionality because of high usage both on the counters and in
libraries. Instead drop the counters since they have played their
part.

R=ojan
BUG=290055

Review URL: https://codereview.chromium.org/190663013

git-svn-id: svn://svn.chromium.org/blink/trunk@168930 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Undeprecate Event.returnValue and Attr.specified
The usage of these is so high that complaining about them is likely to
make developers ignore console warnings:
http://www.chromestatus.com/metrics/feature/timeline/popularity/137
http://www.chromestatus.com/metrics/feature/timeline/popularity/162

Spec bugs filed to maybe make them standard instead:
https://www.w3.org/Bugs/Public/show_bug.cgi?id=25001
https://www.w3.org/Bugs/Public/show_bug.cgi?id=25002

Discussion on blink-dev:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/eplNSf8oDfw/0kB2gD0lQHgJ

BUG=none

Review URL: https://codereview.chromium.org/194173002

git-svn-id: svn://svn.chromium.org/blink/trunk@168918 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: move WorkerThreadStartupData to the oilpan heap.
R=vegorov@chromium.org,tkent@chromium.org
BUG=340522

Review URL: https://codereview.chromium.org/191003010

git-svn-id: svn://svn.chromium.org/blink/trunk@168903 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: add transition types to FileSystem APIs.
R=
BUG=340522

Review URL: https://codereview.chromium.org/188503002

git-svn-id: svn://svn.chromium.org/blink/trunk@168897 bbb929c8-8fbe-4397-9dbb-9b2b20218538
bratell
Rewriting loop in accessibility code to silence analyzer.
The VS static analyzer thought the code was a mistake by the author
(starting value less than that limit in a decreasing loop)
and judging by the comment, humans also find the loop non-trvial.

So make it more normal.

BUG=

Review URL: https://codereview.chromium.org/190033006

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@256086 0039d316-1c4b-4281-b951-d872f2087c98
philipj
Remove document().page() null checks in MediaControls
These were needed in WebKit when the render theme was accessed via the
page, but that is no longer the case, these null checks are the only
bits in MediaControls that access document().page() at all.

It's possible that some code deeper down assumes that the page is not
null and will now begin to crash, but a quick scan of Source/core/
didn't reveal anything obvious.

BUG=341813

Review URL: https://codereview.chromium.org/190463002

git-svn-id: svn://svn.chromium.org/blink/trunk@168855 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: move WorkerGlobalScope to oilpan's heap.
This moves the WorkerGlobalScope object and the objects derived from it
to the Oilpan heap. This also includes the Console, Location and
Navigator interface objects that are attached to the worker global scope.

R=haraken@chromium.org,ager@chromium.org,abarth@chromium.org
BUG=340522

Review URL: https://codereview.chromium.org/178663004

git-svn-id: svn://svn.chromium.org/blink/trunk@168830 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Allow overriding the serialization rules in MarkupAccumulator
Add a flag for overriding the default policy of basing the serialization
on the type of the owner document.

Use in XMLSerializer to force serialization of character entities based
on XML rules.

BUG=340794

Review URL: https://codereview.chromium.org/184273003

git-svn-id: svn://svn.chromium.org/blink/trunk@168819 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Fix "insrtedInto" typo
BUG=none
NOTRY=true

Review URL: https://codereview.chromium.org/191293007

git-svn-id: svn://svn.chromium.org/blink/trunk@168782 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Reset media controls when load() is called
Calling reset() in configureMediaControls() is a slightly bigger hammer
than should be needed, but it isn't called very often so it shouldn't
matter in practice. Ideally MediaControls should be hooked to the same
fine-grained events as scripts see, but that's for the future.

BUG=350310

Review URL: https://codereview.chromium.org/190333002

git-svn-id: svn://svn.chromium.org/blink/trunk@168776 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Turn SVGTextMetricsBuilder into a namespace
Said class does not carry any state, so turn it into a namespace, marking
previous methods static as appropriate and modify callers.

Review URL: https://codereview.chromium.org/191053002

git-svn-id: svn://svn.chromium.org/blink/trunk@168769 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Drive SVG Animations via requestAnimationFrame
Start using FrameView::scheduleAnimation instead of a Timer for driving
the animations in a SMILTimeContainer.
The timer however remains to use when the next animation event is further
into the future than within the (~) next frame interval. Hence
SMILTimeContainer::m_timer is renamed to m_wakeupTimer.

An AnimationClock is added to SMILTimeContainer to prepare for switching
to the Document AnimationClock. The animation time from the compositor is
plumbed through the layers, and used to update said clock.

updateAnimations() is refactored to not perform frame scheduling itself,
but leave that to the caller. This is used to make any frame triggered by
the start of the timeline be scheduled using the wake-up timer instead
of the frame "tick". This is a workaround to reduce the risk of races for
simple pixel-tests (that want to sample the animation state at time 0.)

Frame scheduling is managed by a simple 3-state FSM, where one state is
used for "continuous updates" (frame driven), one is for "immediate
updates" due to timeline/interval changes. The third state is the 'Idle'
state which indicates that no frame/animation update is scheduled.

For the SVG-in-<img> (and similar) case(s),
SVGImageChromeClient::scheduleAnimation is modified to use a fixed frame
interval.
In SVGImage, the initialization of m_page is moved later, to disable any
methods that depend on accessing the SVG root element (prompted by the
need to query if the image has any animations) until the actual document
is loaded/being loaded.

BUG=231576

Review URL: https://codereview.chromium.org/190963003

git-svn-id: svn://svn.chromium.org/blink/trunk@168748 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Throw DataCloneError on cloning closed Blobs/Files.
Follow the structured cloning spec and disallow cloning of closed Blobs,

 http://www.whatwg.org/specs/web-apps/current-work/#structured-clone

R=mkwst@chromium.org
BUG=344820

Review URL: https://codereview.chromium.org/189623014

git-svn-id: svn://svn.chromium.org/blink/trunk@168746 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Pass the correct GlyphPage to glyphDataAndPageForNonCJKCharacterWithGlyphOrientation
|fallbackPage| may be null, and |page| is what is manipulated.

BUG=349840

Review URL: https://codereview.chromium.org/184963008

git-svn-id: svn://svn.chromium.org/blink/trunk@168744 bbb929c8-8fbe-4397-9dbb-9b2b20218538
andersr
Draw a single underline for text-decoration-style: [dashed, dotted].
There is a bug in the new text-decoration styles where the dashed and dotted
underlines would be drawn twice. This appears to be because we are stroking
a SkRect of height zero.

Fixed by drawing a line rather than stroking a rect.

BUG=348518
TEST=Covered by existing tests

Review URL: https://codereview.chromium.org/185683003

git-svn-id: svn://svn.chromium.org/blink/trunk@168743 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Add UseCounter values for Prefixed{Window,Worker}URL.
Also add missing entries for HTMLAppletElement,
HTMLMediaElementSeekToFragmentStart, and
HTMLMediaElementSeekToFragmentEnd.

Corresponds to https://codereview.chromium.org/186673002/.

R=asvitkine@chromium.org
BUG=

Review URL: https://codereview.chromium.org/180743029

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@255604 0039d316-1c4b-4281-b951-d872f2087c98
philipj
Remove MediaControls::bufferingProgressed()
The implementation just updates the position on the timeline, which
playbackProgressed() already does. This callback would make sense if
buffering progress were actually shown, but until someone implements
that it's cleaner to not have it.

BUG=341813

Review URL: https://codereview.chromium.org/188853002

git-svn-id: svn://svn.chromium.org/blink/trunk@168708 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove unused MediaControls* in MediaControlToggleClosedCaptionsButtonElement
BUG=341813

Review URL: https://codereview.chromium.org/187423004

git-svn-id: svn://svn.chromium.org/blink/trunk@168705 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Pre-bind the 'xml' prefix for serialization of XML fragments
The Namespaces in XML spec states:

"The prefix xml is by definition bound to the namespace name
http://www.w3.org/XML/1998/namespace."

BUG=340794

Review URL: https://codereview.chromium.org/183663033

git-svn-id: svn://svn.chromium.org/blink/trunk@168673 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Don't emit a default namespace declaration if it's already the default
If an element declares a new default namespace (has an xmlns="..."
attribute) make sure said namespace is used to update the namespace-table.
This avoids having to emit a default namespace declaration for descendants
of said element.

BUG=340794

Review URL: https://codereview.chromium.org/184633007

git-svn-id: svn://svn.chromium.org/blink/trunk@168672 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Avoid reattachWhitespaceSiblings when renderer does not change.
If the renderer is null before and after the style recalc, there is no need
to reattach whitespace siblings. It is necessary to check for needsAttach()
since the old renderer might have been detached by lazyReattachIfAttached(),
for instance.

BUG=340213

Review URL: https://codereview.chromium.org/188543002

git-svn-id: svn://svn.chromium.org/blink/trunk@168668 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Move SVGTextMetricsBuilder metrics computation state to a local helper class
Move all transient state, and methods operating on it, from
SVGTextMetricsBuilder to a locally defined helper class
(SVGTextMetricsCalculator).
This leads to a structure that better represents the life-time of the
state, as well as reduce the size of SVGTextLayoutAttributesBuilder (and
hence indirectly RenderSVGText.)

Review URL: https://codereview.chromium.org/186733005

git-svn-id: svn://svn.chromium.org/blink/trunk@168663 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
PartitionAlloc: support in-place resize of directly mapped allocation
In partitionReallocGeneric(), if both the current size and the new size
are in the direct mapped range, attempt to resize the allocation in place.
When downsizing, this is done by decommitting pages and making them
inaccessible.  When upsizing a previously downsized allocation to a size
not larger than its original size, we make the pages accessible again.

R=cevans@chromium.org
BUG=

Review URL: https://codereview.chromium.org/183113003

git-svn-id: svn://svn.chromium.org/blink/trunk@168633 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Drive SVG Animations via requestAnimationFrame
Start using FrameView::scheduleAnimation instead of a Timer for driving
the animations in a SMILTimeContainer.
The timer however remains to use when the next animation event is further
into the future than within the (~) next frame interval. Hence
SMILTimeContainer::m_timer is renamed to m_wakeupTimer.

The animation time from the compositor is plumbed through the layers, but
is not yet used as the "global" clock. That will have to wait for a later
CL.

For the SVG-in-<img> (and similar) case(s),
SVGImageChromeClient::scheduleAnimation is modified to use a fixed frame
interval.
In SVGImage, the initialization of m_page is moved later, to disable any
methods that depend on accessing the SVG root element (prompted by the
need to query if the image has any animations) until the actual document
is loaded/being loaded.

BUG=231576

Review URL: https://codereview.chromium.org/179293004

git-svn-id: svn://svn.chromium.org/blink/trunk@168631 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Keep text position locally in SVGTextMetricsBuilder::measureTextRenderer
Passing m_textPosition as an argument to the various helper methods
allows it to be removed from SVGTextMetricsBuilder and stored on the
stack of measureTextRenderer.

Review URL: https://codereview.chromium.org/182733010

git-svn-id: svn://svn.chromium.org/blink/trunk@168618 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: move Touch related objects to the oilpan heap.
In order to do so, make the IDL compiler able to emit code that uses
heap vectors if the types involved are of the garbage collected kind.
(For the most part done by adopting the changes from
 https://codereview.chromium.org/173363002 )

R=
BUG=340522

Review URL: https://codereview.chromium.org/185413023

git-svn-id: svn://svn.chromium.org/blink/trunk@168607 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Support deprecation + use counters for constructor attributes.
If a constructor attribute is annotated with either [MeasureAs=..] or
[DeprecateAs=..], then emit a needed callback wrapper that performs
the required reporting before looking up the constructor.

Use it to correctly handle use counters for the "webkitURL" properties
that both Window and WorkerGlobalScope currently provide; use counters
also added for these here.

(The above change also happens to fix use counter reporting
for the window.WebKitShadowRoot constructor.)

R=nbarth@chromium.org,haraken@chromium.org
BUG=348985

Review URL: https://codereview.chromium.org/186673002

git-svn-id: svn://svn.chromium.org/blink/trunk@168576 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Merge/rename two MediaControlElements into their parent classes
MediaControlPanelMuteButtonElement/MediaControlPanelVolumeSliderElement
were the only classes that inherited
MediaControlMuteButtonElement/MediaControlVolumeSliderElement.

Remove the m_panelMuteButton->show() in MediaControls::reset(), because
there is nothing that ever hides the button in the first place.

BUG=341813

Review URL: https://codereview.chromium.org/185363011

git-svn-id: svn://svn.chromium.org/blink/trunk@168572 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Sync Blob.close() behavior wrt updated spec.
The File API now defines Blobs as having a readability state of
opened/closed, http://dev.w3.org/2006/webapi/FileAPI/#readabilityState
With close() naturally making the Blob enter the 'closed' state,

  http://dev.w3.org/2006/webapi/FileAPI/#close-method

Like the FileReader operations, Blob methods will now throw
InvalidStateError when passed a Blob in such a 'closed' state.

Update the implementation to follow the spec.

R=kinuko@chromium.org
BUG=344820

Review URL: https://codereview.chromium.org/184473002

git-svn-id: svn://svn.chromium.org/blink/trunk@168567 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
When the ::first-letter pseudo element is added or removed, it causes a
Reattach which means everything will work fine for ::first-letter changes.

However, if there is a change in ::first-letter style, but the element had
::first-letter style both before and after the change, we would not try to
recalc any ::first-letter pseudo for LocalStyleChange.

The introduction of LocalStyleChange for :hover/:active/:focus caused a
regression for the combination of ::first-letter and e.g. :hover.

This fix does a SubtreeStyleChange for :hover/:active/:focus updates when
the existing renderStyle is marked as having ::first-letter pseudo.

::first-line is working fine. Added a layout test to make sure it will
continue to do so.

R=esprehn
BUG=344322

Review URL: https://codereview.chromium.org/169643002

git-svn-id: svn://svn.chromium.org/blink/trunk@168509 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Always reset the animated property for CSS-type SVG animation
When resetting the animated property value for animations that is applied
as a CSS property always create a new property, or additive animations
will accumulate incorrectly to the underlying value.

BUG=349052

Review URL: https://codereview.chromium.org/183973023

git-svn-id: svn://svn.chromium.org/blink/trunk@168475 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove unfailable null checks in MediaControls
MediaControls::create returns null if any of these would be null.

BUG=341813
R=acolwell@chromium.org

Review URL: https://codereview.chromium.org/182383006

git-svn-id: svn://svn.chromium.org/blink/trunk@168474 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Refactor away SVGTextMetricsBuilder::advance
This method has two logical parts: Advancing the text position and
checking for termination, and computing the metrics for the current
character.
Split this method to better show this. The latter part is put into a
new method, computeMetricsForCurrentCharacter, while the former part is
open-coded in SVGTextMetricsBuilder::measureTextRenderer.
The advance{Simple,Complex}Text methods are renamed to
computeMetricsForCurrentCharacter{Simple,Complex}.

With this change, it becomes easier to see that
SVGTextMetricsBuilder::m_currentMetrics can be trivially removed in favor
of returning it from computeMetricsForCurrentCharacter, and storing it on
the stack in SVGTextMetricsBuilder::measureTextRenderer.
The same is true for SVGTextMetricsBuilder::m_complexStartToCurrentMetrics,
which can be made local to computeMetricsForCurrentCharacterComplex.

Review URL: https://codereview.chromium.org/184103024

git-svn-id: svn://svn.chromium.org/blink/trunk@168461 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: move core/fileapi to oilpan's heap.
This moves the File API and its objects to Oilpan using transition
types.

R=haraken@chromium.org,tkent@chromium.org
BUG=340522

Review URL: https://codereview.chromium.org/176853004

git-svn-id: svn://svn.chromium.org/blink/trunk@168460 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove MediaControls::showVolumeSlider()
This is a remnant from WebKit when there was a volume slider container
that could be shown and hidden. What remains is essentially dead code,
because at most it shows the slider when m_mediaController->hasAudio(),
but MediaControls::reset() already does that.

BUG=341813

Review URL: https://codereview.chromium.org/176883020

git-svn-id: svn://svn.chromium.org/blink/trunk@168452 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Count how often a Media Fragments URI is applied in HTMLMediaElement
http://lists.w3.org/Archives/Public/public-media-fragment/2014Feb/0000.html
http://lists.w3.org/Archives/Public/public-media-fragment/2014Feb/0002.html

In this thread about looping over media fragments it became clear that
no spec actually says how media fragment end times integrate in
HTMLMediaElement. (The start time is mapped to the "initial playback
position", which almost matches what Blink does.)

Blink/WebKit pauses at the fragment end time once. Firefox Nightly does
the same, while IE11 appears to not support MF URIs at all.

The counter data will tell us whether or not breaking changes can be
made and the relative usage could help inform the spec discussion.

BUG=none
R=acolwell@chromium.org

Review URL: https://codereview.chromium.org/185363002

git-svn-id: svn://svn.chromium.org/blink/trunk@168441 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove MediaControlVolumeSliderElement::m_clearMutedOnUserInteraction
It is always set to true.

Also drop the volume change check, since HTMLMediaElement::setVolume()
and MediaController::setVolume() already do that.

BUG=341813

Review URL: https://codereview.chromium.org/177423011

git-svn-id: svn://svn.chromium.org/blink/trunk@168438 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
only do linux pvalloc OutOfMemoryDeathTest on non-tcmalloc glibc builds
We only override libc's pvalloc if when using glibc and not tcmalloc
(in base/process/memory_linux.cc), and pvalloc is not always available
on uclibc, so let's use the same ifdef in the unit test.

Review URL: https://codereview.chromium.org/184313002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@254659 0039d316-1c4b-4281-b951-d872f2087c98
fs
Reduce state kept in MeasureTextData by SVGTextMetricsBuilder
MeasureTextData::processRenderer is only used within
SVGTextMetricsBuilder::measureTextRenderer, and is always set before a
call to that method. This makes a good candidate for removal from the
traversal state struct (MeasureTextData) and being passed as an argument
to measureTextRenderer instead.

There's no need to track both the last character and whether there was
a previous character. It's sufficient to track if the the last character
was a whitespace or not. (The initial case which previously had
hasLastCharacter == false can be represented as having a been a whitespace
character.) This allows replacing the two fields hasLastCharacter and
lastCharacter with a single field lastCharacterWasWhiteSpace.

MeasureTextData::skippedCharacters is reset to zero (0) at the end of
SVGTextMetricsBuilder::measureTextRenderer, and is only read or written
if MeasureTextData::allCharactersMap is non-null.
This means it can be kept on the stack of measureTextRenderer instead.

Also change the type of surrogatePairCharacters from int to unsigned,
since it's a simple counter, that should never be negative (and is used
in arithmetic with unsigned typed variables.)

Review URL: https://codereview.chromium.org/183203003

git-svn-id: svn://svn.chromium.org/blink/trunk@168342 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ed
Add UseCounter value for SVGClassName.
Also add the missing values for JavascriptExhaustedMemory and
InsertAdjacentHTML.

Corresponds to https://codereview.chromium.org/181783002/.

BUG=

Review URL: https://codereview.chromium.org/185713002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@254482 0039d316-1c4b-4281-b951-d872f2087c98
haavardm
Remove unused NSS dependencies in mac certificate handling code.
Needed to avoid compile error when compiling for mac with OpenSSL.

BUG=None
TEST=None

Review URL: https://codereview.chromium.org/179363006

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@254455 0039d316-1c4b-4281-b951-d872f2087c98
sigbjornf
Consistently use ExceptionState::throwTypeError().
Prefer this helper function when throwing TypeErrors.

R=
BUG=

Review URL: https://codereview.chromium.org/183253003

git-svn-id: svn://svn.chromium.org/blink/trunk@168247 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Add missing USED_FROM_MULTIPLE_THREADS(IDBVersionChangeEvent) decl.
indexeddb is available in Worker contexts, including this event.

R=
BUG=340522

Review URL: https://codereview.chromium.org/185323003

git-svn-id: svn://svn.chromium.org/blink/trunk@168246 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: add more Event-related USED_FROM_MULTIPLE_THREADS() decls.
CloseEvent and XMLHttpRequestProgressEvent are also exposed inside Workers.

R=
BUG=340522

Review URL: https://codereview.chromium.org/178193014

git-svn-id: svn://svn.chromium.org/blink/trunk@168240 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Remove SVGAnimatedType
With the transition to the new SVGProperty hierarchy complete,
SVGAnimatedType is nothing but a wrapper holding a reference to
a NewSVGPropertyBase.
By unwrapping this reference in SVGAnimateElement, and modifying
the SVGAnimatedTypeAnimator interface to pass NewSVGPropertyBase
references instead it becomes possible to remove SVGAnimatedType
without much hassle.

The SVGAnimatedTypeAnimator interfaces are to a large degree left
unchanged, with the exceptions being:

 * addAnimatedTypes is folded in favor just using the add() method
   on NewSVGPropertyBase.

 * resetAnimValToBaseVal returns the value instead of setting it
   through an out-parameter.

Review URL: https://codereview.chromium.org/183143002

git-svn-id: svn://svn.chromium.org/blink/trunk@168150 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Also use transition types when constructing Events that raise exceptions.
Follow up the switch to making Events be garbage collected in
http://codereview.chromium.org/182763002 and also use a transition
type for the result if the event constructor raises exceptions.

R=haraken@chromium.org
BUG=340522

Review URL: https://codereview.chromium.org/183973007

git-svn-id: svn://svn.chromium.org/blink/trunk@168149 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ed
Add a UseCounter for SVGElement.className.
BUG=

Review URL: https://codereview.chromium.org/181783002

git-svn-id: svn://svn.chromium.org/blink/trunk@168147 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: add missing Event-related USED_FROM_MULTIPLE_THREADS() decls.
ErrorEvent and ProgressEvent are available in Worker contexts.

R=wibling@chromium.org
BUG=340522

Review URL: https://codereview.chromium.org/184413003

git-svn-id: svn://svn.chromium.org/blink/trunk@168141 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mpawlowski
Fix memory leak in components_unittests
This is a trivial fix for a leak that fires on the bots

BUG=

Review URL: https://codereview.chromium.org/183273003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@253998 0039d316-1c4b-4281-b951-d872f2087c98
fs
Replace use of GC::alpha() in SVGImage::draw() with GC::getNormalizedAlpha()
As requested in https://codereview.chromium.org/181633002/

BUG=261177

Review URL: https://codereview.chromium.org/182853002

git-svn-id: svn://svn.chromium.org/blink/trunk@168049 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mpawlowski
Update incomplete credentials in Login Database
Incomplete credentials (missing username_element, password_element
or submit_element) that might get added to the database via importing
from other browsers should now be updated correctly when they're
entered into the right form.

BUG=344337

Review URL: https://codereview.chromium.org/169173005

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@253791 0039d316-1c4b-4281-b951-d872f2087c98
fs
Use glyph-ids for lookups of SVG font kerning-pairs
This CL eliminates the SVGTextMetrics::Glyph class in favor
of a simple Glyph (glyph-id). This shrinks SVGTextMetrics
objects by two pointers, and avoids the allocation of tiny
(often single-character/code-unit) strings.

It achieves this by replacing the linear kerning-pair lookup
with a table (HashMap) indexed by a key made up of the glyph id's of the two glyphs.

Review URL: https://codereview.chromium.org/181443002

git-svn-id: svn://svn.chromium.org/blink/trunk@168007 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Eliminate recursion in SVGTextMetricsBuilder::walkTree
This tree-traveral can be trivially rewritten as a pre-order traversal
using RenderObject::nextInPreOrderAfterChildren.

Also fold the branches in the RenderSVGInlineText case to reduce the
number of callsites to measureTextRenderer.

Review URL: https://codereview.chromium.org/175323002

git-svn-id: svn://svn.chromium.org/blink/trunk@168005 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Simplify partitionReallocGeneric() implementation
Using the new partitionAllocActualSize() and partitionAllocGetSize()
the implementation of partitionReallocGeneric() can be made quite a
bit simpler and more high-level.

R=cevans@chromium.org
BUG=

Review URL: https://codereview.chromium.org/180293003

git-svn-id: svn://svn.chromium.org/blink/trunk@167997 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove the TextTrackCue constructor
Intent to Remove:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/R34xpMQGtXU/XwXsi85Y7acJ

BUG=346235

Review URL: https://codereview.chromium.org/177613005

git-svn-id: svn://svn.chromium.org/blink/trunk@167972 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Apply .globalAlpha to SVG-images painted using <canvas> drawImage()
BUG=261177

Review URL: https://codereview.chromium.org/181633002

git-svn-id: svn://svn.chromium.org/blink/trunk@167970 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ed
SVG2: Ship 'paint-order' property.
Intent-to-ship thread: https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/ccVN9-oSwe8

BUG=343496

Review URL: https://codereview.chromium.org/181233003

git-svn-id: svn://svn.chromium.org/blink/trunk@167915 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
[New multicol] Eliminate the need for RenderMultiColumnBlock.
Having a distinct renderer for multicol is problematic, both
table cells and list items may become multicol containers. Also,
if we want to use the new multicol implementation to do
pagination, we need RenderView to be able to do multicol as well.

Moved most of the logic over to RenderMultiColumnFlowThread, but some
hooks are needed in RenderBlockFlow as well.

This is based on work by hyatt@apple.com in WebKit. Original patches:
https://bugs.webkit.org/show_bug.cgi?id=127365
https://bugs.webkit.org/show_bug.cgi?id=127565

Added Layout tests for multicol list-item and table-cell.

Also added tests for turning a regular block into multicol, and back into a
regular block (passed before, passes now).

BUG=none

Review URL: https://codereview.chromium.org/179993006

git-svn-id: svn://svn.chromium.org/blink/trunk@167891 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
[New multicol] Make -webkit-column-break-inside:avoid work.
adjustForUnsplittableChild() simply forgot to check whether we
were inside flow thread based multicol, which kept it from even
considering what -webkit-column-break-inside was set to in such cases.

BUG=346661

Review URL: https://codereview.chromium.org/179763003

git-svn-id: svn://svn.chromium.org/blink/trunk@167882 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Implement Blob.close().
This adds support for the close() methods to Blobs,

 http://dev.w3.org/2006/webapi/FileAPI/#close-method

providing a way to explicitly release the underlying data of a Blob.

Subsequent uses of a closed Blob is required/assumed to have the
following behavior:

  - the size of a closed Blob should be zero.
  - Consumers of such a Blob should treat it as having
    size 0 (e.g., FormData.append(), XHR.send()), and not throw.
  - FileReader read operations that are underway on a Blob
    being close()d should not be impacted.
  - Subsequent FileReader read operations on a closed Blob
    should fail with InvalidStateError.
  - Slices of a closed Blob should still be usable.
  - Dereferencing a blob URL that has been closed should
    cause a network error, like a revoke.

In other words, closing a shared object is not a straightforward
matter.

R=kinuko@chromium.org,michaeln@chromium.org, jochen@chromium.org
BUG=157794

Review URL: https://codereview.chromium.org/157363003

git-svn-id: svn://svn.chromium.org/blink/trunk@167874 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Simplify DefaultAllocator::Quantizer using partitionAllocActualSize()
Drop QuantizedAllocation completely, and replace with a much simpler
implementation that lets PartitionAlloc just round the allocation size
upwards to fit the nearest bucket.

R=cevans@chromium.org
BUG=

Review URL: https://codereview.chromium.org/177213007

git-svn-id: svn://svn.chromium.org/blink/trunk@167870 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Reduce HTMLMediaElement BehaviorRestrictions to a single state bit
There's only a single restriction left, so make it more obvious.

Although not the main purpose, this reduces sizeof(HTMLMediaElement) by
4 bytes, from 584 to 580 on Mac Debug.

BUG=none

Review URL: https://codereview.chromium.org/177123006

git-svn-id: svn://svn.chromium.org/blink/trunk@167864 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Made setWholeSubtreeInvalid non-inline.
Fix for review issue in https://codereview.chromium.org/177653003/ raised
after it landed.

R=ojan
BUG=335247

Review URL: https://codereview.chromium.org/179483002

git-svn-id: svn://svn.chromium.org/blink/trunk@167827 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Make clearing the animated type at the end of an interval more robust
When an interval of a timed element ends, and said timed element will no
longer contribute to the target element, the animator of the timed element
needs to stopped, and it's state cleared (so that another timed element
may assume that role).
With "linked" syncbases involved, the end of one interval would trigger a
new interval, which in turn allowed resolving yet another interval - which
end up signaling a restart.

Fix by tightening the condition when maybeRestartInterval() returns by
checking if the newly resolved interval is active. Also attempt to make
the condition for when to clear the animator more robust by checking if
the timed element is no longer contributing to the target using
|animationIsContributing|, rather trying to re-deduce it from
the active-state transition + restart (which would observe
'active' -> 'in-active' + restart in this case.)
(Either one of these fix the issue.)

BUG=344408

Review URL: https://codereview.chromium.org/173523003

git-svn-id: svn://svn.chromium.org/blink/trunk@167822 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Add missing USED_FROM_MULTIPLE_THREADS(EventSource) declaration.
EventSource is available to Web Workers; declare its ThreadingTrait
accordingly.

R=
BUG=340522

Review URL: https://codereview.chromium.org/178913003

git-svn-id: svn://svn.chromium.org/blink/trunk@167818 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove the HTMLVideoElement-specific prefixed fullscreen API
Intent to Remove:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/Bxe7DnDVRZ0/5K61HQPrNK4J

BUG=346236

Review URL: https://codereview.chromium.org/178003008

git-svn-id: svn://svn.chromium.org/blink/trunk@167815 bbb929c8-8fbe-4397-9dbb-9b2b20218538
andersr
Make font-weight animatable.
We currently don't animate font-weight, even though (1) the spec calls for it, and (2) other
browsers (IE+FF) do.

The interpolator converts the font weights to equivalent real numbers, and performs
the interpolation on these values. The font weight is rounded to the nearest 100 when
the animated style is built.

BUG=289734
TEST=automated

Review URL: https://codereview.chromium.org/173953002

git-svn-id: svn://svn.chromium.org/blink/trunk@167784 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Fix serialization of (xlink:)href attributes in document fragments
If the namespace of an attribute has a "well-known" prefix, then make
sure that prefix is used during serialization instead of the prefix
from the attribute (which could be empty.)

BUG=345132

Review URL: https://codereview.chromium.org/177763002

git-svn-id: svn://svn.chromium.org/blink/trunk@167779 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Only swap positions if both characters actually are absolute positioned
When re-ordering inline boxes within a "line", character-based absolute
positioning attributes are re-ordered to match. However, when attempting
to re-order/swap a inline box that does have a absolute positioning
attribute (and is of length 1) with one that doesn't, the positioning
attribute is copied rather than swapped - leading to additional chunks
being created and consequently additional adjustments being performed.
However, swapping is not needed/required in this case, since the attribute
is already in the correct (logical) position.
To mitigate this, only perform the attribute swap if both characters
(and consequently inline boxes) have attributes in the first place.

BUG=343486

Review URL: https://codereview.chromium.org/177263003

git-svn-id: svn://svn.chromium.org/blink/trunk@167777 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Free HashSets on setWholeSubtreeInvalid.
In order to keep memory use as low as possible, free any HashSets which are
allocated in DescendantInvalidationSets when setWholeSubtreeInvalid is
called. Also ensure that none of the HashSets are re-created in a
DescendantInvalidationSet when wholeSubtreeInvalid is already true.

Additionally fixed some constness and removed non-existing method from header
file.

R=esprehn@chromium.org, chrishtr@chromium.org
BUG=335247

Review URL: https://codereview.chromium.org/177653003

git-svn-id: svn://svn.chromium.org/blink/trunk@167709 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Finalize a throttled FileReader in stages.
File read operations are throttled, a controller keeping track of a
set of running readers, and those waiting for a turn. In the case of a
running FileReader just completing its operation and an onload* event
listener issuing a new read operation over the same reader, the
throttling controller must correctly handle the renewal of that
FileReader as a running (or now-pending) reader.

This includes signalling that there's pending activity starting (and
later on, completing) on the FileReader itself, something that wasn't
correctly in this nested case.

To address, a FileReader will now remove itself from its throttling
controller in two stages:

  - once the readyState transitions from LOADING, the FileReader is
    removed as a running reader.

  - once the FileReader has dispatched all the required events, the
    FileReader itself signals that the pending activity has completed.

In combination, this balances the reference counting on the underlying
object.

R=kinuko@chromium.org
BUG=345608

Review URL: https://codereview.chromium.org/174963002

git-svn-id: svn://svn.chromium.org/blink/trunk@167706 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
RTCPeerConnection: remove redundant throwing for callback args.
The generated binding code checks that the callback arguments are
callable, reporting the required TypeError. Hence, implementation
methods can simply assume that the supplied callback argument is
valid.

R=
BUG=

Review URL: https://codereview.chromium.org/177873002

git-svn-id: svn://svn.chromium.org/blink/trunk@167692 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Remove unused WebPrivatePtr::operator=(std::nullptr_t).
With std::nullptr_t constructors in place for the various Ptr types,
this method is no longer needed.

R=
BUG=

Review URL: https://codereview.chromium.org/177243002

git-svn-id: svn://svn.chromium.org/blink/trunk@167690 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Add Oilpan transition types for core/speech.
Add Oilpan support to the SpeechInputResult interface object along
with its list version.

R=
BUG=340522

Review URL: https://codereview.chromium.org/170423004

git-svn-id: svn://svn.chromium.org/blink/trunk@167687 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Do not add features to classes in rightmost compound selector.
Features found in the rightmost compound selector should always have empty
invalidation sets. Their invalidation set should not contain itself or any
other features found in the same compound selector.

No need to look for descendants with classes 'a' or 'b' when changing 'a'
or 'b' on elements for the following selectors:

.a {}
.a.b {}
.x .a {}
.x .a.b {}

R=esprehn@chromium.org, chrishtr@chromium.org
BUG=345238

Review URL: https://codereview.chromium.org/171513013

git-svn-id: svn://svn.chromium.org/blink/trunk@167674 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: move DOMURL to oilpan's heap.
R=haraken@chromium.org
BUG=340522

Review URL: https://codereview.chromium.org/176623003

git-svn-id: svn://svn.chromium.org/blink/trunk@167673 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Remove unused WorkerGlobalScope::m_domURL field.
The URL constructor is now available via the generated bindings.

R=mkwst@chromium.org
BUG=

Review URL: https://codereview.chromium.org/176553003

git-svn-id: svn://svn.chromium.org/blink/trunk@167647 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Add partitionAllocActualSize() for predicting actual size of allocation
Similar to partitionAllocGetSize() but can be used before the allocation
has been performed.  Falls back to returning the size unchanged for
"impossible" cases, like when PartitionAlloc isn't actually used, or when
the size is too large to allocate.

R=cevans@chromium.org
BUG=

Review URL: https://codereview.chromium.org/172533004

git-svn-id: svn://svn.chromium.org/blink/trunk@167644 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Don't let RenderScrollbarPart have padding.
Return 0 padding for all sides. While RenderScrollbarPart isn't laid
out normally and padding is ignored anyway, the padding getters may
still be used from outside layout, and if padding is percent-based, a
containing block is required, which not all RenderScrollbarPart
objects have, so it would crash.

BUG=341004

Review URL: https://codereview.chromium.org/138903031

git-svn-id: svn://svn.chromium.org/blink/trunk@167640 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Always initialize LayoutScope::m_block.
While the missing initialization was completely harmless,
I got a compilation error with gcc 4.7.2.

BUG=none

Review URL: https://codereview.chromium.org/176433002

git-svn-id: svn://svn.chromium.org/blink/trunk@167638 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove unused UseCounter features
These are the bugs/reviews in which the enum values became unused:

MultipartMainResource:
https://code.google.com/p/chromium/issues/detail?id=249132

InputTypeDateTime:
https://code.google.com/p/chromium/issues/detail?id=239210

HTMLShadowElementOlderShadowRoot:
https://code.google.com/p/chromium/issues/detail?id=339025

ShadowDOMPrefixedPseudo:
https://code.google.com/p/chromium/issues/detail?id=321953

CSSDisplayRunIn:
https://codereview.chromium.org/53373003

CSSDisplayCompact:
https://codereview.chromium.org/52713012

DocumentTypeEntities:
https://code.google.com/p/chromium/issues/detail?id=342302

DocumentTypeNotations:
https://code.google.com/p/chromium/issues/detail?id=342286

ScrollTopBodyNotQuirksMode, ScrollLeftBodyNotQuirksMode:
https://code.google.com/p/chromium/issues/detail?id=314700

BUG=none

Review URL: https://codereview.chromium.org/173023004

git-svn-id: svn://svn.chromium.org/blink/trunk@167631 bbb929c8-8fbe-4397-9dbb-9b2b20218538
andersr
Improve support for :read-only and :read-write pseudoclasses.
This change fixes these two issues:

 1) The :read-write pseudoclass should apply to all elements which are
    editable, not just form elements.
 2) The :read-only pseudoclass should match all elements which is not
    matched by the :read-write class, not just form elements which are
    non-editable.

Case (1) is problematic because of the -webkit-user-modify property.
When we try to match :read-write to an element, we may not yet have applied
other rules which contain -webkit-user-modify and hence modify the
editability of the element. So, we can not check the computed style for
an element for a match against :read-write. Instead, I suggest checking
the conteteditable attribute on the element. If this attribute is set, and
contains an absolute value, then we have our answer. If the value is
"inherit", then we check the computed style of parent elements (via
rendererIsEditable()).

Note that this fix only works for elements which specify "contenteditable",
not for elements with -webkit-user-modify properties in their style.
However, the CSS property was removed from the spec, and it doesn't
appear to work in Firefox anymore either. It should probably be removed
from Blink.

The test-case fast/forms/select-live-pseudo-selectors.html failed with this
change, because it incorrectly and probably accidentally depended on
:read-only not being applied to <select> elements. Fixed by not applying
:read-only to <select> elements.

TEST=automated
BUG=338309

Review URL: https://codereview.chromium.org/148223004

git-svn-id: svn://svn.chromium.org/blink/trunk@167629 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Remove unused WebPrivatePtr::operator=(std::nullptr_t).
With std::nullptr_t constructors in place for the various Ptr types,
this method is no longer needed.

Also revert some reset() uses that were introduced while waiting for
the same nullptr change to land.

R=abarth@chromium.org
BUG=

Review URL: https://codereview.chromium.org/173713008

git-svn-id: svn://svn.chromium.org/blink/trunk@167612 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Avoid unnecessary style recalc for subtree of focused element.
*** Relanding https://codereview.chromium.org/135183002/

Updating the styles for an element that changes its focus state only needs to
force a recalc of the subtree if the subtree contains an element that could
match a selector which contains a :focus pseudo class left of child or
descendant combinator. At the same time, that :focus pseudo must match the
element we are updating focus state for. This is indicated by the return value
of Element::childrenAffectedByFocus.

This change does a LocalStyleChange when updating the focus state of an
element which returns false for childrenAffectedByFocus, and
SubtreeStyleChange otherwise.

TBR=eseidel
BUG=315923

Review URL: https://codereview.chromium.org/169643003

git-svn-id: svn://svn.chromium.org/blink/trunk@167598 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Add partitionAllocGetSize() for determining actual size of allocation
Since PartitionAlloc allocates from buckets of quantized sizes, it will
sometimes allocate a significantly larger block than requested.  Add the
utility function partitionAllocGetSize() for retrieving the actual size
of an allocation, useful if the client can make use of the extra size.

BUG=

Review URL: https://codereview.chromium.org/169523004

git-svn-id: svn://svn.chromium.org/blink/trunk@167582 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove the mediaEnabled setting
This setting only prevented HTMLMediaElement::load() from running, which
very rarely makes any difference, since scripts modifying the DOM will
almost always implicitly invoke resource selection. The exceptions are
adding source elements when networkState is not NETWORK_EMPTY, removing
the src attribute, and removing source elements.

Since the callers to setMediaEnabled(false) seems to have survived
without actually disabling media, just remove the setting for now.

BUG=none

Review URL: https://codereview.chromium.org/169363004

git-svn-id: svn://svn.chromium.org/blink/trunk@167575 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Use LocalStyleChange when changing TD presentation attributes.
Border and cellpadding attributes on TABLE affects computed styles of TD
elements, but LocalStyleChange on the TD elements should be sufficient to
have changes applied.

The setNeedsStyleRecalc call on the TABLE element is removed since that is
handled via HTMLTableElement::isPresentationAttribute called from
Element::attributeChanged.

Unwind the recursion looking for TD elements using ElementTraversal.

BUG=341987

Review URL: https://codereview.chromium.org/157383004

git-svn-id: svn://svn.chromium.org/blink/trunk@167568 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Make selector list pseudos work with class invalidation sets.
Selectors like :not and :-webkit-any have selector lists. Classes, ids and
tag names in those lists were not taken into account when building class
invalidation sets.

Re-introduce a white-list for supported pseudos and disallow :not and
:-webkit-any for now.

R=esprehn@chromium.org,chrishtr@chromium.org
BUG=344893

Review URL: https://codereview.chromium.org/174013010

git-svn-id: svn://svn.chromium.org/blink/trunk@167560 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove NodeIsSupported from UseCounter.h
I forgot this in r165237: https://codereview.chromium.org/133703014

BUG=334970

Review URL: https://codereview.chromium.org/173813003

git-svn-id: svn://svn.chromium.org/blink/trunk@167558 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
Followup from https://codereview.chromium.org/147513003/
Since linux builds now depend on macros defined in linux/magic.h let's make sure that some of the newer values are set.

Review URL: https://codereview.chromium.org/170823002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@252279 0039d316-1c4b-4281-b951-d872f2087c98
rune
Removed O(n!) traversal of selectors for selectorList.
When collectFeaturesFromSelector got a for-loop for tagHistory in [1], the
for-loop for tagHistory was kept in collectFeaturesFromSelectorList which
means we did n! visits of n sub-selectors in selectors like
:-webkit-any(.a.b.c).

[1] https://codereview.chromium.org/143653010

R=esprehn,chrishtr
BUG=335247

Review URL: https://codereview.chromium.org/172993002

git-svn-id: svn://svn.chromium.org/blink/trunk@167475 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Support invalidation sets for simple class selectors.
Invalidation sets were supported for selectors like '.a .b' with an empty
invalidation set for 'b' and a LocalStyleChange for elements for which 'b'
was added or removed. However, not for simple class selectors like '.b' for
which an empty invalidation set would be added, but also marked with
wholeSubtreeInvalid yielding a SubtreeStyleChange instead.

Now, start using invalidation sets for class selectors in the rightmost
compound selector even when there are no other class selectors present.

R=chrishtr@chromium.org,ojan@chromium.org
BUG=335247

Review URL: https://codereview.chromium.org/171513006

git-svn-id: svn://svn.chromium.org/blink/trunk@167470 bbb929c8-8fbe-4397-9dbb-9b2b20218538
bratell
Use data driven code when registering Element constructors.
For more compact initialization code. Because I want to.

R=adamk@chromium.org

Review URL: https://codereview.chromium.org/170793003

git-svn-id: svn://svn.chromium.org/blink/trunk@167443 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Fire canplaythrough after play and playing when autoplaying
The new test case is copied (with style adjustments) from
https://github.com/w3c/web-platform-tests/pull/636

Once it is imported under LayoutTests/w3c/web-platform-tests/ it should
be removed from LayoutTests/media/W3C/.

BUG=344531

Review URL: https://codereview.chromium.org/169223003

git-svn-id: svn://svn.chromium.org/blink/trunk@167438 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Recalc OPTION and OPTGROUP from recalcOwnStyle.
When recalc was done from willRecalcStyle, the StyleRecalcChange state for
OPTGROUP would always be NoChange for recalcOwnStyle and inherited properties
not propagated to OPTION children for LocalStyleChange in OPTGROUP.

R=esprehn
BUG=343536
NOTRY=true

Review URL: https://codereview.chromium.org/165433002

git-svn-id: svn://svn.chromium.org/blink/trunk@167414 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Make WebPrivatePtr capable of wrapping garbage collected objects.
Extend WebPrivatePtr to let it safely hold on to garbage collected
objects, via a strong, persistent object reference.

As an example of use, adopt it for the Speech API platform layer
objects.

The implementation of WebPrivatPtr is courtesy of Vyacheslav Egorov <vegorov@chromium.org>

R=haraken@chromium.org,ager@chromium.org,jochen@chromium.org,tkent@chromium.org
BUG=340522

Review URL: https://codereview.chromium.org/168963003

git-svn-id: svn://svn.chromium.org/blink/trunk@167391 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Regression test for class removal.
Added test to avoid future regressions in class removal.

R=ojan
BUG=344376

Review URL: https://codereview.chromium.org/165723006

git-svn-id: svn://svn.chromium.org/blink/trunk@167364 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
fix may be used uninitialized warning on older compilers
Some older compilers give a warning that m_block may be used
uninitialized, since it's not always initialised in the LayoutScope
constructor.

Review URL: https://codereview.chromium.org/170233006

git-svn-id: svn://svn.chromium.org/blink/trunk@167358 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ckulakowski
Removing unnecessary creation of RenderViewHostDestructionObserver for all WebContents
ProcessManager creates RenderViewHostDestructionObserver for all WebContents.
It's not necessary as ProcessManager keeps information about WebContents
only related to extensions (extension's background page, extension's popup).

BUG=344297

Review URL: https://codereview.chromium.org/169413002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@251765 0039d316-1c4b-4281-b951-d872f2087c98
sigbjornf
Remove sync-repeated-and-caching test expectation.
Test no longer flaky on Windows, remove expectation.

R=jochen@chromium.org
BUG=327877

Review URL: https://codereview.chromium.org/170393003

git-svn-id: svn://svn.chromium.org/blink/trunk@167335 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Don't perform a microtask checkpoint for document.write('<script><\/script>')
This is a willful violation of the spec, expecting that it will change:
https://www.w3.org/Bugs/Public/show_bug.cgi?id=24361

BUG=340322

Review URL: https://codereview.chromium.org/169093004

git-svn-id: svn://svn.chromium.org/blink/trunk@167302 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Remove CSS regions support, keeping a bare minimum to support "region-based" multicol.
Remove everything strictly specific to CSS regions, but keep the parts that
"region-based" multicol needs. So the render flow thread framework is still around,
albeit heavily trimmed down. RenderRegion has also been kept, but is now obviously
a misnomer (to be fixed later). It serves as a base class for what css3-break refers
to as a "fragmentainer" (e.g. column, page or region). Not sure if it should really
be a renderer type, seeing that these need to be created during layout (which should
be avoided for renderers). A fragmentainer is more akin to what a line box represents
than to what a renderer does.

Additional removal and cleanup is possible, but let's start with this.

BUG=none

Review URL: https://codereview.chromium.org/134473008

git-svn-id: svn://svn.chromium.org/blink/trunk@167275 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Add a second-order Dictionary::convert() function template.
Avoid source code duplication of convert() method bodies for the
parameterized pointer types.

R=
BUG=

Review URL: https://codereview.chromium.org/168483002

git-svn-id: svn://svn.chromium.org/blink/trunk@167271 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: reduce visibility of Visitor::trace(const RawPtr<T>&).
With Oilpan enabled, fail earlier and make it a compile-time error to
attempt to trace a RawPtr<>. (Previously it would only trigger an
assert at run-time.)

With Oilpan disabled, the method is needed to compile tracing methods
over RawPtr-using transition types.

R=
BUG=340522

Review URL: https://codereview.chromium.org/167443003

git-svn-id: svn://svn.chromium.org/blink/trunk@167267 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Remove unused ResourceLoaderOptions functionality.
Retire the enumerations ClientCrossOriginCredentialPolicy and
SecurityCheckPolicy, and their storage on the resource loader options
struct. Neither is made use of during resource loading.

The propagation of a SecurityCheckPolicy setting when issuing a load
request by the 'threadable' document loaders is as a result also no
longer done.

R=
BUG=

Review URL: https://codereview.chromium.org/167293003

git-svn-id: svn://svn.chromium.org/blink/trunk@167237 bbb929c8-8fbe-4397-9dbb-9b2b20218538
bratell
Simpler return value of HashTable::add/HashMap:add and others
The current return value of HashTable::add() is a bool paired 
with an iterator object. The creation and destruction of that 
iterator object contributed to code size and since it was only 
used at a few places it was not worth it. 

Instead, let us return a bool paired with a pointer to the stored 
object. That is after all what the code using the iterator object 
wanted to have. I renamed the variable iterator -> storedValue 
which is 99% [magic number] of the patch. Most users of HashTable 
did not access iterator and did not have to change at all. 

This change saves roughly 100 KB binary size of an x64 content_shell 
built with clang. Other compilers, other architectures will save 
different amounts, most likely less since most are not 64 bit. 

The save is both in the instantiated ::add methods that don't have 
to create an iterator object, and in the callers that don't have 
to copy and destroy it. 

R=morrita@chromium.org 
RSR=eseidel@chromium.org

Review URL: https://codereview.chromium.org/167123002

git-svn-id: svn://svn.chromium.org/blink/trunk@167217 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Have RenderBlockFlow sub-classes' methods call their super-class method properly.
RenderBlockFlowSubclass::foo() should typically call
RenderBlockFlow::foo(), not RenderBlock::foo(), unless there are
special reasons for bypassing RenderBlockFlow in particular cases.

I failed to come up with a test case that illustrates this problem,
but RenderListItem::styleDidChange() not calling
RenderBlockFlow::styleDidChange() sure looks bad. If it has floats and
becomes a BFC, parents, siblings, cousins etc. are not properly told
to remove the floats that are now fully contained by the list item. I
suppose there would be dangling pointers lying around because of this.

BUG=302024

Review URL: https://codereview.chromium.org/163513002

git-svn-id: svn://svn.chromium.org/blink/trunk@167161 bbb929c8-8fbe-4397-9dbb-9b2b20218538
andersr
Don't run paused animations on the compositor.
There is a bug where compositable animations are started (and played back)
even if their initial state is "paused".

It would appear that pausing/unpausing composited animations is not
implemented, and that pausing a currently running composited animation
causes it to be permanently "thrown out" of the compositor. In light of
this, I suggest to simply not start paused animations on the compositor,
for now.

BUG=342192
TEST=manual

Review URL: https://codereview.chromium.org/159733003

git-svn-id: svn://svn.chromium.org/blink/trunk@167140 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Oilpan: improve comment on why types need to be moved into WebCore.
Clarify why the explicit move of some type names into WebCore is
needed & label it a FIXME.

BUG=
NOTRY=true

Review URL: https://codereview.chromium.org/164713002

git-svn-id: svn://svn.chromium.org/blink/trunk@167119 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Require the entire document-tree to be single-origin for SVGImage
SVGImage::currentFrameHasSingleSecurityOrigin only checks the
first occurance of an <svg:image> or and <svg:feImage>, which
meant that if the first such element had a benign reference,
any later elements would be ignored.

Also, since |node| can only ever match one of the tagnames, use a
cascading 'if' where appropriate.

Review URL: https://codereview.chromium.org/163573003

git-svn-id: svn://svn.chromium.org/blink/trunk@167097 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mpawlowski
Autofilling passwords imported from IE more conservative
The trick is to leave action, username_element and password_element
fields of the form empty, this will stop the browser from autofilling
every form on the page with the credentials and will require user
interaction.
The user will have to click on the input box, select his login from
the drop down and click 'submit'. When this happens, Login Data will
be updated with the action url of the particular form.

Basically, since we don't know which form on the page is the one we 
have imported credentials for, we don't autofill anything until the 
user tells us. We'll remember his choice afterwards.

BUG=52513

Review URL: https://codereview.chromium.org/153043005

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@251035 0039d316-1c4b-4281-b951-d872f2087c98
sigbjornf
Move speech module over to Oilpan.
This moves the speech/ interfaces over to using Oilpan transition
types. With the exception of the event objects, which will wait until
the base classes have been moved over.

R=haraken@chromium.org, zerny@chromium.org
BUG=340522

Review URL: https://codereview.chromium.org/139803012

git-svn-id: svn://svn.chromium.org/blink/trunk@167088 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Clean the SVGSVGElement interface IDL
Remove some weird looking uses of [Default=Undefined] on suspendRedraw,
unsuspendRedraw and getElementById.
This means that TypeErrors will be thrown for the 0 arguments case. This
is consistent with Gecko.

Since the *Redraw* methods are deprecated (except forceRedraw), remove
the comment about (WebKit) bug# (11275, dupe of 10408) and move the
implementation stubs to the header file.

Review URL: https://codereview.chromium.org/131473011

git-svn-id: svn://svn.chromium.org/blink/trunk@167078 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Remove everything region-specific from LayoutTests.
The CSS regions feature is being removed (in an upcoming CL).

BUG=none

Review URL: https://codereview.chromium.org/159933010

git-svn-id: svn://svn.chromium.org/blink/trunk@167048 bbb929c8-8fbe-4397-9dbb-9b2b20218538
joaoe
Changed RefCountedStaticMemory() to accept a void pointer.
Using a void pointer saves lots of redundant casting.

Also added RefCountedMemory front_as<type> which saves typing by not having to
wrap each call with a reinterpret_cast<>.

Review URL: https://codereview.chromium.org/126103003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@250808 0039d316-1c4b-4281-b951-d872f2087c98
fs
Remove SVGExternalResourcesRequired.h
r164692 removed SVGExternalResourcesRequired.cpp and .idl, but left the
header file. Remove it.

R=pdr@chromium.org,schenney@chromium.org,fmalita@chromium.org

Review URL: https://codereview.chromium.org/159893011

git-svn-id: svn://svn.chromium.org/blink/trunk@167020 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Fixup SVGSVGElement.createSVGTransformFromMatrix IDL definition
The optional SVGMatrix with a default of undefined is nonsensical, and
is not in line with the spec (where the argument is not optional).

Remove the 'optional' qualifier and the default value. This aligns
behavior with Gecko. (The exception thrown now is about arity, and not
about type mismatch as previously.)

As a result, the move of the [StrictTypeChecking] attribute to the
interface can be completed.

Review URL: https://codereview.chromium.org/149603007

git-svn-id: svn://svn.chromium.org/blink/trunk@167014 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Add [StrictTypeChecking] to the SVGGeometryElement interface
Apply strict type checking to the SVGGeometryElement interface.

Fix an issue with the [StrictTypeChecking] attribute, where 'undefined'
would be accepted when it shouldn't have been. This made the explicit
checking in SVGTransformListPropertyTearOff unnecessary, so remove (and
update test with the new expected result.)

BUG=341810
BUG=342741
BUG=341379
BUG=341620
BUG=341030
BUG=341776

Review URL: https://codereview.chromium.org/144463014

git-svn-id: svn://svn.chromium.org/blink/trunk@167003 bbb929c8-8fbe-4397-9dbb-9b2b20218538
andersr
Fix incorrect animation for some values of background-position.
There is a bug which causes incorrect animation for background-position
values with right/bottom edge origin. This is because we interpolate
the offset value itself, but do not take into account that the offset
value represents different positions based on the edge origin of the
offset.

Example: If we want to animate from "left 10px" to "right 20px", we
interpolate 10px to 20px, but "forget" the edge affinitiy of the second
value, and end up with a value offset from the left.

Fixed by emitting calculated lengths for bottom/right edge origins during
animation, such that "right N" or "bottom N" becomes "calc(100% - N)".

BUG=341440
TEST=automated

Review URL: https://codereview.chromium.org/157523002

git-svn-id: svn://svn.chromium.org/blink/trunk@166997 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
[New multicol] Avoid 1px tall multicol if percent height is unresolvable.
If a box has a percentage height, but the computed height of its
containing block is auto, the computed height of the box also becomes
auto. computeContentLogicalHeight() returns -1 if the height isn't
resolvable, and we need to make sure that such a value doesn't
constrain the height of the multicol container.

This is a merge of https://bugs.webkit.org/show_bug.cgi?id=122826
Reviewed in WebKit by David Hyatt.

BUG=342779

Review URL: https://codereview.chromium.org/144463015

git-svn-id: svn://svn.chromium.org/blink/trunk@166974 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Verify that appendChild(script) does not perform a microtask checkpoint
This potential bug was raised in the review for the previous patch:
https://codereview.chromium.org/130983011/

BUG=340322

Review URL: https://codereview.chromium.org/146043008

git-svn-id: svn://svn.chromium.org/blink/trunk@166962 bbb929c8-8fbe-4397-9dbb-9b2b20218538
davve
Make arguments to insertAdjacent{Text,Element} non-optional
In https://codereview.chromium.org/109273003/ the arguments to
insertAdjacentHTML were made non-optional. Even though
insertAdjacent{Text,Element} is not in any spec yet, it's reasonable
that they should behave similarly, if ever spec'ed.

Since there's already (still necessary) error reporting at lower
levels, the only real functional difference by this change is that:

  element.insertAdjacentText('beforeEnd')

will now throw TypeError instead of appending the string 'undefined'
to the element's text content. The other cases will just get more
descriptive error messages, like:

  "2 arguments required, but only 0 present."

instead of:

  "The node provided is null."

when both arguments are missing.

Also align the insertAdjacent{HTML,Element,Text}.html tests to look
and behave similarly.

IE10 passes all three with slightly different error message output.

R=ojan@chromium.org
BUG=342754

Review URL: https://codereview.chromium.org/146313006

git-svn-id: svn://svn.chromium.org/blink/trunk@166941 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Let V8 know about the external memory owned by large StaticNodeList
If a script allocates many large but short-lived StaticNodeList objects,
for instance by using querySelectorAll() in an inefficient way, memory
usage will balloon since V8's garbage collector won't realize that much
memory owned by it is being allocated, and thus doesn't run its GC.

Reporting external allocated memory to V8 is unnecessary overhead for
small objects, so only do it for objects larger than a limit.

BUG=342752

Review URL: https://codereview.chromium.org/154263007

git-svn-id: svn://svn.chromium.org/blink/trunk@166937 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Remove the Pagination struct, clean up viewport scroll policy propagation.
The Pagination struct no longer served a purpose, now that the
internal setPagination() API is gone. Without any purpose in its own,
all it did was complicate the code (some unnecessary translations back
and forth involving writing mode, text direction and column
progression direction).

Added a bunch of tests for paged overflow, to test every combination
of writing mode, text direction, overflow direction, and whether it's
set on the viewport or on a regular DIV. DIV tests for paged-y are
omitted, since there's no vertical scrollbar then (which is an old bug
that could be fixed separately).

Also added tests for dynamically switching between paged and
non-paged.

Since this work required some changes regarding how overflow from BODY
or root is propagated to the viewport, I cleaned up this a bit. There
used to be 2 places with duplicated logic (picking the right element
for propagation; root or BODY). With my changes that would easily
become 3. Reduced it to 1 instead. :)

Added some tests for overflow policy propagation as well.

No behavioral changes are intended with this patch, except: it is now
possible to make the BODY renderer itself paginated - if it is the
root element that got its overflow properties propagated to the
viewport
(e.g. <html style="overflow:hidden;"><body style="overflow:-webkit-paged-x;">...)

BUG=

Review URL: https://codereview.chromium.org/157553002

git-svn-id: svn://svn.chromium.org/blink/trunk@166923 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Tweak the public/protected/private sections of MediaControls
After the merge this looked rather strange, so keep as public that
which is used by HTMLMediaElement or MediaControlElements, make
protected that which is used/overridden by MediaControlsAndroid, and
make everything else private.

BUG=341813

Review URL: https://codereview.chromium.org/143703007

git-svn-id: svn://svn.chromium.org/blink/trunk@166911 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Make MediaControls minimally virtual
Only the functions which are overridden in MediaControlsAndroid need
be virtual.

updateStatusDisplay() didn't do anything, so it was removed.

BUG=341813

Review URL: https://codereview.chromium.org/141323005

git-svn-id: svn://svn.chromium.org/blink/trunk@166907 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Rename MediaControlsChromiumAndroid to MediaControlsAndroid
BUG=341813

Review URL: https://codereview.chromium.org/157423002

git-svn-id: svn://svn.chromium.org/blink/trunk@166901 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove HTMLMediaElement::pageConsentRequiredForLoad()
It is unused.

BUG=342339

Review URL: https://codereview.chromium.org/137883009

git-svn-id: svn://svn.chromium.org/blink/trunk@166899 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove the user gesture restriction for HTMLMediaElement::load()
load() resets some state and invokes resource selection. Preventing
resource selection is not useful, since there are several other
unguarded ways to trigger it using plain markup or scripts.

m_loadInitiatedByUserGesture has been unused outside of load() since the
npr.org quirk was removed in r158703.

If a similar feature is needed in the future, forcing preload="none"
internally would be an alternative.

BUG=342339

Review URL: https://codereview.chromium.org/144663006

git-svn-id: svn://svn.chromium.org/blink/trunk@166895 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Merge MediaControlsChromium into MediaControls (2nd try)
To the largest extent possible, code was copied from
MediaControlsChromium.* to MediaControls.* without modification. Where
MediaControlsChromium virtual functions called the MediaControls base
functions, the order was preserved to avoid changing behavior.

The 1st try broke Android: https://codereview.chromium.org/144083003/

The problem was that MediaControlsChromiumAndroid::createControls()
was merged into the Android MediaControls::create(), but obviously
that doesn't have access to the private members it needs.

Simplify things by having only a single implementation of create() and
make initializeControls() virtual instead. The ifdefery is thus
reduced to a single line in MediaControls::create().

BUG=341813

Review URL: https://codereview.chromium.org/158333002

git-svn-id: svn://svn.chromium.org/blink/trunk@166893 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove the user gesture restriction for HTMLMediaElement::pause()
This is very nearly dead code, because when the setting is enabled, the
only way to play a video is using play(), which removes all restrictions
if it succeeds. Therefore, the only observable behavior from the pause
restriction is that if pause() is called from an input event handler
when networkState is NETWORK_EMPTY, LoadMediaResource is scheduled.

Further, it hardly seems like a useful restriction even if it worked.
Web sites that pause a video against the will of the user seem rather
improbable. Possibly the restriction was originally added to guard the
scheduling of LoadMediaResource.

Preventing LoadMediaResource is not useful, since there are several
other ways to trigger a load, e.g. just <video src="foo"> in markup.

Note that there was no test for this restriction, but there are tests
for load(), play() and autoplay.

BUG=342339

Review URL: https://codereview.chromium.org/130813006

git-svn-id: svn://svn.chromium.org/blink/trunk@166888 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Region based multicol: support explicit column breaks
Merely supporting insertion of explicit (forced) column breaks in
the region based multicol implementation is really simple: just
hook up with what the CSS regions code is already doing.

However, there is one complication: column balancing. In order to
balance columns as nicely as possible when there are explicit
breaks, we need to figure out between which explicit breaks the
implicit breaks will occur (if there's room for any at all).

This is a merge of https://bugs.webkit.org/show_bug.cgi?id=123993
Reviewed in WebKit by David Hyatt.

BUG=336192

Review URL: https://codereview.chromium.org/143383002

git-svn-id: svn://svn.chromium.org/blink/trunk@166859 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Move quota module to oilpan
This moves the storage quota interfaces to oilpan, using transition
types.

Mostly regular, apart from one one interface (DeprecatedStorageQuota)
being used from both a main world and worker context, requiring thread
affinity defaults to be overridden for its class.

R=haraken@chromium.org
BUG=340522

Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=166819

Review URL: https://codereview.chromium.org/158133003

git-svn-id: svn://svn.chromium.org/blink/trunk@166849 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Add ScriptPromiseResolver RawPtr overloads.
In an Oilpan setting, promises may now be passed RawPtr<> values
instead of RefPtr<>s. Accommodate such use by adding the needed
reject() + resolve() overloads.

(This change has been extricated from

  https://codereview.chromium.org/153083006

which we're holding off on in its entirety for the time being.)

R=haraken@chromium.org
BUG=340522

Review URL: https://codereview.chromium.org/148513008

git-svn-id: svn://svn.chromium.org/blink/trunk@166840 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Limit beforeunload returnValue propagation to event handlers.
The required extra handling of the return value from an
'onbeforeunload' event handler,

  http://www.whatwg.org/specs/web-apps/current-work/#the-event-handler-processing-algorithm
  (step 4)

should not apply to event listeners.

R=
BUG=341476

Review URL: https://codereview.chromium.org/158783002

git-svn-id: svn://svn.chromium.org/blink/trunk@166828 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Move quota module to oilpan
This moves the storage quota interfaces to oilpan, using transition
types.

Mostly regular, apart from one one interface (DeprecatedStorageQuota)
being used from both a main world and worker context, requiring thread
affinity defaults to be overridden for its class.

R=haraken@chromium.org
BUG=340522

Review URL: https://codereview.chromium.org/158133003

git-svn-id: svn://svn.chromium.org/blink/trunk@166819 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Optimize glyph positioning for SVG <textPath> layout
Introduce a new class Path::PositionCalculator, that keeps traversal
state related to path position/normal calculations, and allows
exploiting locality for such queries.

Using this new class for the layout of glyphs on a <textPath>. This
means it possible to achieve O(n) runtimes in many cases. The worst
case remains the same, O(n^2), as when using state-less queries.

Review URL: https://codereview.chromium.org/140053006

git-svn-id: svn://svn.chromium.org/blink/trunk@166813 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Fix WorkerGlobalScopePerformance thread state mismatch asserts.
A handful of worker tests (in webexposed/ and http/tests/w3c/webperf/)
currently assert and fail.

The Persistent reference to WorkerPerformance from
WorkerGlobalScopePerformance requires that the worker thread looks up
and uses the current thread state rather than that of the main thread.
That state is associated with the Persistent object when created.

R=
BUG=340522

Review URL: https://codereview.chromium.org/158513002

git-svn-id: svn://svn.chromium.org/blink/trunk@166791 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Reduce test code duplication in fast/forms/file
Factor out some repeatedly used functions when dragging files onto
type=file elements.

R=
BUG=

Review URL: https://codereview.chromium.org/148983008

git-svn-id: svn://svn.chromium.org/blink/trunk@166782 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Clean up MediaControlElement virtual and unused functions
This class was a bit confusing:

isShowing() was never used.

The state of MediaControlElement::shadowPseudoId() was odd. The same
virtual function exists on Element, and the MediaControl*Element
classes inherit both Element and MediaControlElement. When they
override shadowPseudoId() they override both of their base classes.
However, MediaControlElement::shadowPseudoId() wasn't ever used...

The remaining functions don't need to be virtual since they're never
overridden.

BUG=none

Review URL: https://codereview.chromium.org/145503008

git-svn-id: svn://svn.chromium.org/blink/trunk@166767 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove unused parts of MediaControllerInterface
Remove the parts of MediaControllerInterface that aren't actually used
by the MediaControls code, which is the only place where this abstract
interface is used as opposed to HTMLMediaElement or MediaController.

hasCurrentSrc() wasn't used anywhere, so remove it.

BUG=341852

Review URL: https://codereview.chromium.org/156173003

git-svn-id: svn://svn.chromium.org/blink/trunk@166766 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Move ReadyState enum from MediaControllerInterface to HTMLMediaElement
The spec for MediaController.readyState says "uses
HTMLMediaElement.readyState's values", so make it so in the
implementation as well.

This is a first step in reducing the size of MediaControllerInterface.

BUG=341852

Review URL: https://codereview.chromium.org/154283004

git-svn-id: svn://svn.chromium.org/blink/trunk@166764 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove MediaController::m_mediaGroup
It is unused.

BUG=none

Review URL: https://codereview.chromium.org/150423006

git-svn-id: svn://svn.chromium.org/blink/trunk@166759 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove HTMLMediaElement::togglePlayState()
It is unused.

BUG=none

Review URL: https://codereview.chromium.org/139233008

git-svn-id: svn://svn.chromium.org/blink/trunk@166758 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Merge MediaControlsChromium into MediaControls
To the largest extent possible, code was copied from
MediaControlsChromium.* to MediaControls.* without modification. Where
MediaControlsChromium virtual functions called the MediaControls base
functions, the order was preserved to avoid changing behavior.

BUG=341813

Review URL: https://codereview.chromium.org/157403002

git-svn-id: svn://svn.chromium.org/blink/trunk@166753 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Use LocalStyleChange for updating :-webkit-drag.
If you don't have childrenAffectedByDrag, use LocalStyleChange instead of
SubtreeStyleChange to avoid unnecessary recalc of the whole subtree.

R=ojan
BUG=341831

Review URL: https://codereview.chromium.org/140053005

git-svn-id: svn://svn.chromium.org/blink/trunk@166746 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jadahl
base: Don't generate unused BoundFunctorTraits typedef
Having it there causes a warning or error (unused-local-typedefs).

BUG=

Review URL: https://codereview.chromium.org/133553003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@249808 0039d316-1c4b-4281-b951-d872f2087c98
fs
Remove SVGElement::childShouldCreateRenderer
All implementation now return true, and the RenderObject::isChildAllowed
mechanism is used instead.

BUG=337607

Review URL: https://codereview.chromium.org/157663002

git-svn-id: svn://svn.chromium.org/blink/trunk@166733 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Convert remaining RenderSVG* nodes to RenderObject::isChildAllowed
Reland of:
r165851 (https://codereview.chromium.org/146833003) and
r166238 (https://codereview.chromium.org/136963005)

Performance issues should have been adressed by the latter.

BUG=337607

Review URL: https://codereview.chromium.org/145333003

git-svn-id: svn://svn.chromium.org/blink/trunk@166705 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mharanczyk
Skip root dir when iterating over path in reparse points search.
It turns out that ::GetFileAttributes(...) Windows API for paths in form of "<drive>:" returns attribute of binary file work dir instead of "<drive>:\"
dir.

BUG=340625

Review URL: https://codereview.chromium.org/150093006

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@249667 0039d316-1c4b-4281-b951-d872f2087c98
mstensho
New watchlists for tables and fragment layout. Add myself to them.
git-svn-id: svn://svn.chromium.org/blink/trunk@166655 bbb929c8-8fbe-4397-9dbb-9b2b20218538
andersr
Fix repaint on :hover for empty elements with a border.
If the color changes on :hover, then the border of the element may need to
be repainted. Currently, we only repaint if an immediate child has a
border, but not if the element itself has a border. This causes a missing
repaint in some cases for bordered elements with whitespace-only contents.

Fixed by repainting when the element itself has a border.

BUG=275044
TEST=automated

Review URL: https://codereview.chromium.org/140673006

git-svn-id: svn://svn.chromium.org/blink/trunk@166654 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Add a UseCounter for HTMLMediaElement.controller
MediaController isn't getting the attention it needs right now. Count
usage to help decide whether or not removal is feasible. Feasible does
not imply desirable, but the data can inform the decision.

Count a non-null controller without distinguishing how it was set
(markup or script) to measure the usage that affects behavior.

BUG=none

Review URL: https://codereview.chromium.org/156493002

git-svn-id: svn://svn.chromium.org/blink/trunk@166651 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Use isFinishedParsingChildren() in HTMLMediaElement
Remove HTMLMediaElement::m_parsingInProgress.

There is no runtime change, as isFinishedParsingChildren() is true per
default, even for script-created elements, and only returns false
between the beginParsingChildren() and finishParsingChildren().

BUG=341414

Review URL: https://codereview.chromium.org/142413014

git-svn-id: svn://svn.chromium.org/blink/trunk@166645 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove HTMLMediaElement::percentLoaded()
It is not used anywhere.

BUG=none

Review URL: https://codereview.chromium.org/156183003

git-svn-id: svn://svn.chromium.org/blink/trunk@166638 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Use isFinishedParsingChildren() in HTMLSelectElement
Remove HTMLSelectElement::m_isParsingInProgress and
HTMLSelectElement::isParsingInProgress().

There is no runtime change, as isFinishedParsingChildren() is true per
default, even for script-created elements, and only returns false
between the beginParsingChildren() and finishParsingChildren().

BUG=341414

Review URL: https://codereview.chromium.org/146973006

git-svn-id: svn://svn.chromium.org/blink/trunk@166637 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Make sure begin and end events are dispatched for back-to-back intervals
When the end time of the previous interval is the same as the
begin time of the new/current interval, the active state won't 
visibly transition Inactive -> Active (for 'begin' - the other
way around for 'end') if the interval can be resolved up
front (i.e. isn't event-base).

Fix by having SVGSMILElement::checkRestart return a bool indicating
whether an interval ended up being restarted, and then use this bool to
extend the predicates looking for Inactive<->Active transitions.

BUG=337724

Review URL: https://codereview.chromium.org/141013017

git-svn-id: svn://svn.chromium.org/blink/trunk@166625 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Reduce scope (and running time) of sync-repeated-and-caching test.
Synchronous XMLHttpRequest fetches are slow end-to-end when running
LayoutTests, particularly on Windows. The range of requests issued by
xmlhttprequest/sync-repeated-and-caching really doesn't have to be
that extensive to catch regressions. Hence, reduce scope somewhat.

R=tyoshino@chromium.org
BUG=327877

Review URL: https://codereview.chromium.org/150103005

git-svn-id: svn://svn.chromium.org/blink/trunk@166615 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Remove input.type = ""; quirk.
Do not treat setting input.type to the empty string as a special case
(i.e., as removing the attribute), just update the underlying
attribute as for any other value.

This aligns behavior with Gecko and Presto (and spec); Trident treats
such as a no-op, which in any case was incompatible with the previous
behavior here of removing the attribute. i.e., the test added passes
for all but Trident.

R=tkent@chromium.org
BUG=
TEST=fast/forms/input-type-change3

Review URL: https://codereview.chromium.org/141703028

git-svn-id: svn://svn.chromium.org/blink/trunk@166593 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Upgrade stepUp()/stepDown() implementation to match spec.
The spec for stepUp()/stepDown()

  http://www.whatwg.org/specs/web-apps/current-work/#dom-input-stepdown

requires that out-of-step values snap to step, just like the UI
implementation will do. Hence, bring the required clamping/snapping
handling into scope.

Also, stepUp()/stepDown() shouldn't throw if the current value is not
a number, nor if the resulting stepped-to value is too far out of
range. Snapping to range (modulo step base) is what's supposed to
happen now.

R=yosin@chromium.org,keishi1@chromium.org,tkent@chromium.org
BUG=339194

Review URL: https://codereview.chromium.org/136783006

git-svn-id: svn://svn.chromium.org/blink/trunk@166525 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Coalesce writes in SVGPathByteStreamBuilder
Add a helper class CoalescingBuffer, that collects the data for a segment
into a local (stack) buffer, and then writes the entire stack buffer in
one go to the SVGPathByteStream.

This reduces codesize (on GCC 4.8) by roughly 50% (closePath being the
only method that grows).

Review URL: https://codereview.chromium.org/149913004

git-svn-id: svn://svn.chromium.org/blink/trunk@166523 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Avoid unnecessary style recalc for subtree of focused element.
Updating the styles for an element that changes its focus state only needs to
force a recalc of the subtree if the subtree contains an element that could
match a selector which contains a :focus pseudo class left of a child or
descendant combinator. At the same time, that :focus pseudo must match the
element we are updating focus state for. This is indicated by the return value
of Element::childrenAffectedByFocus.

This change does a LocalStyleChange when updating the focus state of an
element which returns false for childrenAffectedByFocus, and
SubtreeStyleChange otherwise.

BUG=315923

Review URL: https://codereview.chromium.org/135183002

git-svn-id: svn://svn.chromium.org/blink/trunk@166517 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Use memcpy in SVGPathByteStreamSource::readType
This avoids having the compiler beating around the bush trying to
recognize the memcpy, and results in smaller code (roughly 50% smaller
measured for GCC 4.8). All at the affordable price of upsetting a few
language purists.

Review URL: https://codereview.chromium.org/133163007

git-svn-id: svn://svn.chromium.org/blink/trunk@166516 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Update breakpad to refer to libtest_netscape_plugin.so
libTestNetscapePlugIn.so has been renamed to libtest_netscape_plugin.so, sync.

R=jochen@chromium.org
BUG=341016

Review URL: https://codereview.chromium.org/146913007

git-svn-id: svn://svn.chromium.org/blink/trunk@166515 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Added myself to 'css' watchlist.
TBR=eseidel
NOTRY=true
BUG=None

Review URL: https://codereview.chromium.org/150663008

git-svn-id: svn://svn.chromium.org/blink/trunk@166510 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Improve handling of CORS redirects for some resource loads.
To align with what CORS requires for redirects, have CORS-enabled
resource loading perform access control checks on redirects.

The ResourceLoader delegates the access control check to its host's
canAccessRedirect() implementation:

 bool ResourceLoaderHost::canAccessRedirect(Resource*, ResourceRequest&, const ResourceResponse&, ResourceLoaderOptions&);

which is passed the redirect request + response along with other
arguments needed to make a yes/no decision on following the redirect.

To correctly handle redirects to another origin, the
canAccessRedirect() predicate is also responsible for updating the
'source origin' as the redirect is followed. This and other redirect
steps are taken care of by the helper method

  CrossOriginAccessControl::handleRedirect()

The included tests cover redirects over <img> and <script>, for the
various redirect responses possible (wrt CORS.) Rely on existing
redirect tests for HTML imports.

Notice that the redirect handling added here does not apply to
resource types and loaders that implement their special (and extended)
handling of CORS + redirects -- e.g., XMLHttpRequest fetches.

R=abarth@chromium.org
BUG=274843

Review URL: https://codereview.chromium.org/149643003

git-svn-id: svn://svn.chromium.org/blink/trunk@166508 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
<br> nodes should not be allowed within SVG text
Add new method isRenderableTextNode to SVGRenderSupport to filter out any
RenderObjects that return true for isText(), but is not recognized by the
SVG text rendering codepath.

BUG=339993, 337607

Review URL: https://codereview.chromium.org/145493012

git-svn-id: svn://svn.chromium.org/blink/trunk@166505 bbb929c8-8fbe-4397-9dbb-9b2b20218538
bratell
Better grouping of data in Deep Memory Profiler
In the linux browser profile, put string data under their
own sections, and teach the system about style and css memory.

R=

BUG=

Review URL: https://codereview.chromium.org/148133003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@248996 0039d316-1c4b-4281-b951-d872f2087c98
fs
Make the timer in SMILTimeContainer more of an implementation detail
Add a few new methods to represent the different actions required:

 scheduleAnimationFrame(SMILTime fireTime)
 immediateAnimationFrame()
 cancelAnimationFrame()

and replace uses of m_timer.foo() and startTimer with the appropriate
method.

BUG=231576

Review URL: https://codereview.chromium.org/143403005

git-svn-id: svn://svn.chromium.org/blink/trunk@166497 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Get rid of the *Byte types used for (de)serializing to SVGPathByteStream
Use a single ByteType<T> instead.

Additionally clean up SVGPathByteStream a bit by delegating two more
methods {isEmpty(), append(SVGPathByteStream*)} to the wrapped WTF::Vector.

Review URL: https://codereview.chromium.org/130563014

git-svn-id: svn://svn.chromium.org/blink/trunk@166481 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Count consecutive direct adjacent selectors.
The maxDirectAdjacentSelectors counter in RuleFeatureSet should only count
the maximum number of consecutive direct adjacent combinators. The number is
used to invalidate style for sibling trees.

For instance a selector like "div+div div+div" only needs to invalidate a
single sibling tree.

When a different combinator is encountered, store the number of consecutive
direct adjacent combinators seen and reset the counter; instead of counting
all direct adjacent combinators in the selector.

R=ojan
BUG=340866

Review URL: https://codereview.chromium.org/155283002

git-svn-id: svn://svn.chromium.org/blink/trunk@166468 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Perform a microtask checkpoint for document.write('<script><\/script>')
http://whatwg.org/html#scriptEndTag

The spec does 'Perform a microtask checkpoint' unconditionally for 'An
end tag whose tag name is "script"', which means that document.write
can trigger it while a script is running.

A spec bug was filed for the similar situation with 'Provide a stable
state' on the assumption that this was a mistake, but it was not:
https://www.w3.org/Bugs/Public/show_bug.cgi?id=24361

Unless performing a microtask checkpoint here will lead to other
complications, it's simpler to just align with the spec.

BUG=340322

Review URL: https://codereview.chromium.org/130983011

git-svn-id: svn://svn.chromium.org/blink/trunk@166445 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Move HighResolutionTimeInWorkers to stable.
This moves the "High Resolution Time Level 2" mini feature to stable,
extending high resolution timing support to also cover Web Workers,

 https://dvcs.w3.org/hg/webperf/raw-file/tip/specs/HighResolutionTime2/Overview.html

Relevant "Intent to Ship" thread,

 https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/R3OiFdzqm1w

R=jochen@chromium.org
BUG=169318

Review URL: https://codereview.chromium.org/153543004

git-svn-id: svn://svn.chromium.org/blink/trunk@166435 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Deprecate the HTMLSourceElement.media IDL attribute
Intent to Deprecate:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/L5h6KP5nmbE/CGlSWugrFl0J

BUG=338197

Review URL: https://codereview.chromium.org/153613002

git-svn-id: svn://svn.chromium.org/blink/trunk@166421 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Avoid double lookup of crossorigin attribute.
Minor code tidying.

R=
BUG=

Review URL: https://codereview.chromium.org/153823002

git-svn-id: svn://svn.chromium.org/blink/trunk@166416 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Don't use cached inherited props for distributed nodes.
The -webkit-user-modify, which is inherited, does not follow normal inheritance
for distributed nodes in a shadow dom tree. Distributed nodes will have
-webkit-user-modify propagated from the shadow host overriding any inheritance
from non-distributed shadow dom nodes.

This propagation, which happens in StyleResolver::styleForElement will not be
caught will not be caught when computing the cacheHash in
StyleResolver::applyMatchedProperties and the inherited properties might
incorrectly be shared, effectively cancelling out the -webkit-user-modify
propagation.

R=esprehn
BUG=339463

Review URL: https://codereview.chromium.org/144853004

git-svn-id: svn://svn.chromium.org/blink/trunk@166414 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Add use counters for EventSource.URL, WebSocket.URL.
These two properties (in their uppercased form) are an accident of
spec history. Add use counters to gauge if the process of retirement
can be started.

R=jochen@chromium.org
BUG=249727

Review URL: https://codereview.chromium.org/149773004

git-svn-id: svn://svn.chromium.org/blink/trunk@166400 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Revert of Convert remaining RenderSVG* nodes to RenderObject::isChildAllowed
Revert r165851 and r166238 because of performance regressions (issue 339470).

BUG=339470
TBR=pdr,schenney

Review URL: https://codereview.chromium.org/147213004

git-svn-id: svn://svn.chromium.org/blink/trunk@166392 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Use LocalStyleChange for :hover/:active not affected by descendants.
Before this change, an element that changes its hover/active state would have
its subtree recalculated even if none of its descendants were affected by that
change in hover/active state.

childrenAffectedByHover/Active will still cause a subtree recalc. The reason
is that elements with that flags set will have selectors of type:

  div:hover span { ... }

where a change in the hover state of a div will affect an unknown number of
span elements in its subtree. Elements with affectedByHover/Active and no
childrenAffectedByHover/Active will only match selectors where the :hover or
:active pseudo class is in the rightmost sub-selector. Those can use
LocalStyleChange recalcs since none of the descendants will match affected
selectors.

This CL depends on https://codereview.chromium.org/144963002/

R=esprehn
BUG=337983

Review URL: https://codereview.chromium.org/148243004

git-svn-id: svn://svn.chromium.org/blink/trunk@166387 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Update input[type=range]'s step base handling to match spec.
The HTML spec recently shifted to using 'value' as the first fallback
option for an input element's "step base" (if no 'min' attribute),

 http://www.whatwg.org/specs/web-apps/current-work/#concept-input-min-zero

Also bring type=range elements into line with that, including using
that step base when clamping values to the supported range.

R=
BUG=339194

Review URL: https://codereview.chromium.org/152753002

git-svn-id: svn://svn.chromium.org/blink/trunk@166367 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Clarify what code handles 'An end tag whose tag name is "script"'
The "running a script" algorithm was renamed to "prepare a script" in
2011 <http://html5.org/r/5855>, but HTMLScriptRunner::runScript
doesn't actually correspond to that algorithm, so remove the comment.

BUG=none
NOTRY=true

Review URL: https://codereview.chromium.org/152903004

git-svn-id: svn://svn.chromium.org/blink/trunk@166345 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Make StyleChange parameter explicit in setNeedsStyleRecalc.
The SubtreeStyleChange is a very expensive change, yet the default parameter
used for changeType in setNeedsStyleRecalc. It is made non-default here in
order to enforce a more conscious choice when adding calls to
setNeedsStyleRecalc.

BUG=None

Review URL: https://codereview.chromium.org/152623002

git-svn-id: svn://svn.chromium.org/blink/trunk@166335 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Clean up and deflake history navigation test
When returning from having navigated to navigate-back.html, both
runSecondStageOfTest() and the popstate event handler would set a
timeout that called history.back().  The first navigation would
trigger the hashchange event handler that signaled a pass, the
second ought to have had no effect.

In practice, the test occasionally timed out or crashed instead,
for unknown reasons.  Removing the extra history.back() timeout
apparently avoids this.

BUG=339265

Review URL: https://codereview.chromium.org/148453014

git-svn-id: svn://svn.chromium.org/blink/trunk@166325 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Make dmprof handle long runs better
Read the dump files one by one as they are processed instead of reading
them all into memory at the start of the program, to reduce peak memory
consumption.  This makes it possible to process larger data sets.

Also restructure a few sub-command implementations to avoid iterating
over the list of dumps more than once and to avoid accessing any given
dump (typically the first) more than once.

BUG=

Review URL: https://codereview.chromium.org/141563014

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@248458 0039d316-1c4b-4281-b951-d872f2087c98
sigbjornf
Revert egov.uscis.gov site quirk.
Site has changed, hence the 'required=no' workaround no longer needed.

R=
BUG=154611

Review URL: https://codereview.chromium.org/141713006

git-svn-id: svn://svn.chromium.org/blink/trunk@166275 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Implement canHaveWhitespaceChildren on RenderSVG{Root,ModelObject}
Make said method return false to signal that we don't care about
whitespace-only Nodes in these contexts.
This avoids creating large number of text RenderObjects
(RenderSVGInlineTexts) and also avoids hitting the linear search
at the bottom of Text::textRendererIsNeeded.

R=pdr,schenney,fmalita
BUG=339470,337607

Review URL: https://codereview.chromium.org/136963005

git-svn-id: svn://svn.chromium.org/blink/trunk@166238 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Deprecate MediaError.MEDIA_ERR_ENCRYPTED
Intent to Deprecate:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/C3h1LApSVx8/G2s2OV5azvgJ

BUG=none

Review URL: https://codereview.chromium.org/132903015

git-svn-id: svn://svn.chromium.org/blink/trunk@166206 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Correctly handle CORS access checks over cache-validating responses.
If a CORS-enabled load of a resource is also done conditionally, the
response may be a 304 (Not Modified.) That 304 response is not
required (nor expected) to have any CORS headers included, so arrange
for the required CORS access control check to be performed over the
cached resource having been (successfully) validated.

R=
BUG=339058
TEST=http/tests/security/script-crossorigin-fails-cross-origin-conditional

Review URL: https://codereview.chromium.org/146853003

git-svn-id: svn://svn.chromium.org/blink/trunk@166188 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ohrn
Fix fullscreen video race condition.
A newly initialized media player must enter fullscreen if there is a
pending request sent by a previous media player.

BUG=338670

Review URL: https://codereview.chromium.org/136113015

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@247941 0039d316-1c4b-4281-b951-d872f2087c98
sigbjornf
Synchronize is-valid flag upon programmatic clearing of file.value
If a type=file input element is cleared of its current contents by
setting the "value" property to the empty string, make sure the 'is
valid' flag kept on the input element is synchronized.

Failure to do so could incorrectly make the element pass follow-on
validation -- if it additionally has 'required' set.

R=tkent@chromium.org
BUG=336818

Review URL: https://codereview.chromium.org/132233059

git-svn-id: svn://svn.chromium.org/blink/trunk@166115 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
HTMLInputElement.valueAsNumber compliance (NaN handling.)
Change the valueAsNumber setter to follow the spec more closely:

 http://www.whatwg.org/specs/web-apps/current-work/#dom-input-valueasnumber

 - throw TypeError instead of NotSupportedError if the new value is
   infinite.
 - if the input element type supports 'valueAsNumber', then no longer
   throw for NaN values, but consider this as setting the empty
   string.
 - better InvalidStateError error message when attempting to update
   'valueAsNumber'.

This aligns with the spec as well as Gecko. And Trident (IE11) with
respect to NaN handling.

R=mkwst@chromium.org
BUG=

Review URL: https://codereview.chromium.org/149413004

git-svn-id: svn://svn.chromium.org/blink/trunk@166112 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ed
Let svg event attributes be reflected the same as html event attributes.
Corresponds to "SVGElement implements GlobalEventHandlers", https://svgwg.org/svg2-draft/types.html#InterfaceSVGElement.

BUG=338288

Review URL: https://codereview.chromium.org/144733003

git-svn-id: svn://svn.chromium.org/blink/trunk@166087 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Add a UseCounter for the HTMLSourceElement.media IDL attribute
The content attribute no longer does anything, so the IDL attribute
should also be removed as soon as the usage allows.

BUG=338197

Review URL: https://codereview.chromium.org/146483002

git-svn-id: svn://svn.chromium.org/blink/trunk@166044 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Acquire lock in Args::SetSystemVars()
Since the function manipulates Args::declared_arguments_, it needs to
hold the lock to avoid heap corruption.

BUG=335587

Review URL: https://codereview.chromium.org/136783005

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@247710 0039d316-1c4b-4281-b951-d872f2087c98
philipj
Remove the media attribute from the resource selection algorithm
Intent to Deprecate and Remove:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/5sWUMC_d8Tg/ZZ0Z7rfeCqUJ

The HTMLSourceElement.media IDL attribute is left dangling, but a
UseCounter will be added for it in a separate commit, with the
intention to remove it once we have the data to support it.

BUG=338197

Review URL: https://codereview.chromium.org/147933002

git-svn-id: svn://svn.chromium.org/blink/trunk@166034 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Initialize VTTCue::m_displaySize to undefinedSize
It was not initialized at all, and while the current code appears
to always write it before reading it, it's a bug waiting to happen.

(It would be nice to not have render state in VTTCue at all.)

BUG=none

Review URL: https://codereview.chromium.org/132563005

git-svn-id: svn://svn.chromium.org/blink/trunk@165987 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Make pseudo element update work with LocalStyleChange.
The missing pseudo element update on LocalStyleChange did not cause any bugs
at the moment since LocalStyleChange is not used when pseudo element selector
matching changes, but necessary to fix in preparation for optimizing :hover,
:active, and :focus updates using LocalStyleChange. If pseudo elements are
updated for LocalStyleChange, style updates for mentioned pseudo classes can
use LocalStyleChange in many cases where SubtreeStyleChange is currently used.

LocalStyleChange recalc style for the given element and descendants which
inherit any of the changes from that element. In addition, there is code
to make sure pseudo element children were being updated when the styles for
the element itself did not change, but matching of its pseudo elements did.

That code (shouldRecalcStyle() check on the actual element before calling
updatePseudoElement() in recalcChildStyle) was introduced in [1], but changed
behavior in [2] because needsRecalcStyle was cleared before recalcChildStyle.

UpdatePseudoElements is added as a new StyleRecalcChange which causes an
update of the pseudo element children, but not other children in the case
where the styles for the actual element were recalculated, but resulted in
NoChange or NoInherit, and any of the pseudo element bits were set on
RenderStyle.

[1] https://src.chromium.org/viewvc/blink?revision=147696&view=revision
[2] https://src.chromium.org/viewvc/blink?revision=161568&view=revision

BUG=337983

Review URL: https://codereview.chromium.org/144963002

git-svn-id: svn://svn.chromium.org/blink/trunk@165981 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Correctly report TypeError for HTML{Meter,Progress}Element setters.
For the IDL attributes with a 'double' type on <meter> and <progress>,
throw the WebIDL-required TypeError if the value being set isn't finite,

  http://heycam.github.io/webidl/#es-double

Reporting TypeError rather than NotSupportedError also aligns with
Gecko. (Trident doesn't throw.)

R=
BUG=

Review URL: https://codereview.chromium.org/131483008

git-svn-id: svn://svn.chromium.org/blink/trunk@165959 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Fix FIXME in findPreviousAndNextAttributes in RenderSVGText.cpp
Use the existing pre-order traversal methods on RenderObject to implement
the traversal in an iterative fashion instead of as a recursion.

This allows moving the |stopAfterNext| boolean to the scope of
findPreviousAndNextAttributes, so do that and fix up the callers.

BUG=

Review URL: https://codereview.chromium.org/141703017

git-svn-id: svn://svn.chromium.org/blink/trunk@165950 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Update is-valid flag upon resetting input elements.
If the value of an input element is reset back to empty, make sure we
sync its is-valid flag when doing so. If not, form control elements
marked as 'required' may end up being incorrectly labelled as valid.

R=
BUG=336818

Review URL: https://codereview.chromium.org/148463008

git-svn-id: svn://svn.chromium.org/blink/trunk@165942 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Add CORS support for <link> elements.
The HTMLLinkElement object supports CORS-enabled fetches,

  http://www.whatwg.org/specs/web-apps/current-work/#htmllinkelement

by using the 'crossorigin' attribute. Extend HTMLLinkElement loading
to support this over its link types, in particular / of note,
"stylesheet" and "subresource" / "prefetch".

R=abarth@chromium.org
BUG=178787

Review URL: https://codereview.chromium.org/135723008

git-svn-id: svn://svn.chromium.org/blink/trunk@165923 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Aura content shell: make the window shrinkable.
Don't let the initial size (800x600) serve as minimum size.

BUG=none

Review URL: https://codereview.chromium.org/134223005

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@247306 0039d316-1c4b-4281-b951-d872f2087c98
sigbjornf
(Re)organize handling of CORS access control during resource loading.
Common up and simplify the various pieces of code that handles CORS
access control, avoiding per resource type handling.

That is, a ResourceLoader's host will now be called upon by the loader
when it receives the initial response. The host deciding if a response
should be allowed loaded or not:

  bool ResourceLoaderHost::canAccessResource(Resource*, const KURL&);

If not, the loader cancels the loading of the resource and signals an
error. The loader host is responsible for emitting a suitable console
error message.

Switch over the 'loader' resource clients to rely on that, avoiding
custom CORS checks (and error reporting) for scripts, imports, images,
text tracks.

As the resource loader now needs to know if a load operation is CORS
enabled or not, this is now/again recorded by ResourceLoaderOptions.

R=abarth@chromium.org,japhet@chromium.org
BUG=178787

Review URL: https://codereview.chromium.org/137983010

git-svn-id: svn://svn.chromium.org/blink/trunk@165877 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Tighten up the allowable-child criteria in RenderSVGInline
BUG=337607,338109

Review URL: https://codereview.chromium.org/148343003

git-svn-id: svn://svn.chromium.org/blink/trunk@165876 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Convert remaining RenderSVG* nodes to RenderObject::isChildAllowed
BUG=337607

Review URL: https://codereview.chromium.org/146833003

git-svn-id: svn://svn.chromium.org/blink/trunk@165851 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Disable HTTP authentication dialog for XHR with credentials
According to the XHR[1] and Fetch[2] specifications, a request made with
URL credentials should not trigger the browser's authentication dialog
upon authentication failure, but rather return the 401 response.

[1] http://xhr.spec.whatwg.org/
[2] http://fetch.spec.whatwg.org/

BUG=31582

Review URL: https://codereview.chromium.org/143903003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@247117 0039d316-1c4b-4281-b951-d872f2087c98
mstensho
Add F5 (reload), back and forward key accelerators to the Aura-based content shell.
BUG=none

Review URL: https://codereview.chromium.org/143983015

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@246963 0039d316-1c4b-4281-b951-d872f2087c98
fs
Add support for converting Colors to linear RGB; Fix relevant filters
Moves get{Linear,Device}RgbLUT out of ImageBuffer.cpp and into the (new)
ColorSpace.cpp and a (new) namespace ColorSpaceUtilities.
Implement ColorSpaceUtilities::convertColor and getConversionLUT, and use them in a
new FilterEffect::adaptColorToOperatingColorSpace method, that derived
classes can use.

With the above infrastructure in place, use it in FEDropShadow to make
sure the result of the (conceptual) flood operation is in correct color
space (== the operating colorspace of the FEDropShadow).
Also use it to transform the lighting-color of the lighting primitives.

BUG=336440

Review URL: https://codereview.chromium.org/134733016

git-svn-id: svn://svn.chromium.org/blink/trunk@165767 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Convert SVG <text> and descendants to use RenderObject::isChildAllowed
BUG=337607

Review URL: https://codereview.chromium.org/143263011

git-svn-id: svn://svn.chromium.org/blink/trunk@165765 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Convert SVG <filter> and <fe*> to RenderObject::isChildAllowed
BUG=337607

Review URL: https://codereview.chromium.org/143983016

git-svn-id: svn://svn.chromium.org/blink/trunk@165764 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Convert SVG <foreignObject> to use RenderObject::isChildAllowed
BUG=337607

Review URL: https://codereview.chromium.org/133873003

git-svn-id: svn://svn.chromium.org/blink/trunk@165763 bbb929c8-8fbe-4397-9dbb-9b2b20218538
andersr
Allow counter-reset/increment: none.
When applying counter-reset/increment with value=none, we did not clear
the CounterDirectives values because the value was not a ValueList.

Fixed by performing the value-clearing before the isValueList-check.

BUG=319812
TEST=automated

Review URL: https://codereview.chromium.org/141763003

git-svn-id: svn://svn.chromium.org/blink/trunk@165753 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Eliminate large chunks of nearly duplicated code for table-row-group border calculation.
calcOuterBorderBefore() and calcOuterBorderAfter() were almost identical.
So were calcOuterBorderStart() and calcOuterBorderEnd().

Merge them into calcBlockDirectionOuterBorder() and calcInlineDirectionOuterBorder().

This is just code cleanup; no behavior changes intended.

BUG=none

Review URL: https://codereview.chromium.org/145603002

git-svn-id: svn://svn.chromium.org/blink/trunk@165746 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Add UseCounter for case-insensitive attribute value selector matching
More specifically, count the cases where the result would be different
if a currently (automatically) case-insensitive attribute value match
was made case-sensitive instead, as is the current status of the spec.

BUG=327060

Review URL: https://codereview.chromium.org/140323003

git-svn-id: svn://svn.chromium.org/blink/trunk@165740 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Don't propagate Inherit ad infinitum.
In recalcStyle, when the StyleRecalcChange became Inherit it was effectively
a Force causing a full subtree recalc even for the parts of the subtree that
didn't need to propagate inherited properties further. For instance, setting
document.body.style.color would always cause a full document recalc.

This change effectively reverts https://codereview.chromium.org/119693002
which relied on Inherit being a Force for SubtreeStyleChange.

R=esprehn@chromium.org

BUG=336908

Review URL: https://codereview.chromium.org/139743017

git-svn-id: svn://svn.chromium.org/blink/trunk@165739 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Keep frames to navigate alive in HistoryController::goToEntry()
Otherwise, if a script executed during the navigation of one frame (for
instance a popstate event handler) removes other frames from the document,
the calls to navigate those frames later on are given pointers to dead
objects.

This patch makes the more localized fix committed as r165081 redundant,
and thus reverts it from FrameLoader::loadHistoryItem().

BUG=337120

Review URL: https://codereview.chromium.org/145493005

git-svn-id: svn://svn.chromium.org/blink/trunk@165724 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Support MessageEventInit.ports sequences.
For MessageEvent constructor dictionaries,

 http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#messageevent

don't limit ourselves to array objects, but support the required
sequence type.

R=
BUG=

Review URL: https://codereview.chromium.org/145323005

git-svn-id: svn://svn.chromium.org/blink/trunk@165656 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Add Eric Carlson to 'track' and 'media' WATCHLISTS
This is on request from Eric, <video> implementor at Apple.

BUG=none

Review URL: https://codereview.chromium.org/144593002

git-svn-id: svn://svn.chromium.org/blink/trunk@165612 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Allow determining if an SVG value has been specified
When checking for the "presence" of a value (if a value has been
specified - either via an attribute or via an animation), using
hasAttribute is not sufficient since if misses if the value is being
animated.

Extend the property interfaces to allow providing an answer to this query.

R=kouhei@chromium.org
TEST=svg/animations/no-attr-*.svg
BUG=330191

Review URL: https://codereview.chromium.org/141793002

git-svn-id: svn://svn.chromium.org/blink/trunk@165537 bbb929c8-8fbe-4397-9dbb-9b2b20218538
tmoniuszko
Missing comma in event_utils_win.cc
BUG=

Review URL: https://codereview.chromium.org/143003003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@246323 0039d316-1c4b-4281-b951-d872f2087c98
fs
Pass a VTTScanner to VTTRegion::parseSettingValue
Complete the transition to using VTTScanner for VTTRegion, by pushing
a VTTScanner-reference down into VTTRegion::parseSettingValue, and make
the different "subparsers" use it instead of a locally declared one.

BUG=305317

Review URL: https://codereview.chromium.org/144893002

git-svn-id: svn://svn.chromium.org/blink/trunk@165526 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Support relative file paths in FilePathToFileURL().
This makes it possible for content_shell to resolve relative file paths
on the command line and turn them into proper startup URLs.

BUG=336416

Review URL: https://codereview.chromium.org/137233006

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@246278 0039d316-1c4b-4281-b951-d872f2087c98
philipj
Remove implementations of WebMediaPlayer::supportsFullscreen()
WebMediaPlayer::supportsFullscreen() was removed in Blink r165243.

BUG=334985

Review URL: https://codereview.chromium.org/142273002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@246127 0039d316-1c4b-4281-b951-d872f2087c98
fs
Rework end-of-value field handling in VTTRegion::parseSettingValue
Hoist the end-of-input/value check in
VTTParser::parseFloatPercentageValuePair, and pass a Scanner directly
to it.

Open-code VTTParser::collectDigitsToInt in VTTRegion::parseSettingValue,
and then remove the former. This leaves VTTLegacyScanner without any
users, so remove it too.

BUG=305317

Review URL: https://codereview.chromium.org/143983002

git-svn-id: svn://svn.chromium.org/blink/trunk@165456 bbb929c8-8fbe-4397-9dbb-9b2b20218538
davve
Don't create an empty text node when setting document.title to the empty string
http://www.whatwg.org/specs/web-apps/current-work/#document.title
http://www.whatwg.org/specs/web-apps/current-work/#the-title-element

now both refer to:

http://dom.spec.whatwg.org/#dom-node-textcontent

for how the empty string should handled: empty string -> no child
element. Note that the act of updating the document's copy of the
title then falls on the removeChildren() call.

Since FF and IE10 already follows the spec, web compatibility risk
should be small.

BUG=336154

Review URL: https://codereview.chromium.org/143363002

git-svn-id: svn://svn.chromium.org/blink/trunk@165453 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Apply flood-opacity for feDropShadow
FEDropShadow::m_shadowOpacity was set but never used.

Also fix a typo nearby in FEDropShadow::createImageFilter (stdY should
be scaled with the vertical scale factor - as in
FEDropShadow::applySoftware.)

TEST=svg/filters/feDropShadow-flood-opacity-*.svg
BUG=336222

Review URL: https://codereview.chromium.org/143463002

git-svn-id: svn://svn.chromium.org/blink/trunk@165445 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Make Window.alert/confirm/prompt default values the empty string
http://whatwg.org/html#the-window-object

Ad-hoc testing in Firefox Nightly and Opera 12.16 (Presto) reveal that
these browsers already treat missing arguments as the empty string.

Since this is not Web-exposed behavior, the risk is low.

The test case description no longer made sense, so rather than writing
new instructions for manual testing, just let -expected.txt say it.

BUG=335855

Review URL: https://codereview.chromium.org/142263002

git-svn-id: svn://svn.chromium.org/blink/trunk@165443 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Rework float value/percentage scanning for VTTRegion
Next step in the transition to VTTScanner for VTTRegion parsing.
Add a new method scanFloat(...) to VTTScanner (basing the implementation
on VTTParser::parseFloatPercentageValue).

Use this new method scanFloat in VTTParser::parseFloatPercentageValue,
and change (remove) the end-of-input/value requirement (hoisting it into
the callers).

Let the above propagate into VTTParser::parseFloatPercentageValuePair,
and make it use VTTScanner internally.

BUG=305317

Review URL: https://codereview.chromium.org/139343006

git-svn-id: svn://svn.chromium.org/blink/trunk@165442 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Test non-crashing updating of worker scope event handlers.
Add a pair of tests to verify that repeatedly updating attribute event
handlers on a worker global scope doesn't fall over.

R=jochen@chromium.org,dslomov@chromium.org
BUG=239669

Review URL: https://codereview.chromium.org/140723002

git-svn-id: svn://svn.chromium.org/blink/trunk@165439 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ed
Add ed to svg, css WATCHLISTS.
TBR=abarth@chromium.org
NOTRY=true
BUG=

Review URL: https://codereview.chromium.org/136793013

git-svn-id: svn://svn.chromium.org/blink/trunk@165414 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ed
Followup fixes for bug 332066.
* <use> elements only dispatch load if there's an external resource,
  adjust tests accordingly.
* <use> incorrectly reported that it wasn't done if there was no
  xlink:href attribute.
* don't dispatch 'load' to svg documents that are not xml-wellformed.

BUG=333242
R=pdr@chromium.org, schenney@chromium.org

Review URL: https://codereview.chromium.org/134263003

git-svn-id: svn://svn.chromium.org/blink/trunk@165413 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Make VTTRegion::setRegionSettings use VTTScanner
Next step in the transition of VTTRegion parsing code to VTTScanner.
Convert VTTRegion::setRegionSettings, and fold VTTRegion::parseSetting
into it.

BUG=305317

Review URL: https://codereview.chromium.org/140503004

git-svn-id: svn://svn.chromium.org/blink/trunk@165399 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Add self to svg and track watchlists
TBR=schenney@chromium.org
NOTRY=true
BUG=

Review URL: https://codereview.chromium.org/137973003

git-svn-id: svn://svn.chromium.org/blink/trunk@165386 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove TreatNullAs=NullString for SVGScriptElement.type
http://www.w3.org/TR/SVG/script.html#InterfaceSVGScriptElement

The test passes in Firefox Nightly and IE11 Release Preview, but fails
in Opera 12.16.

BUG=310298

Review URL: https://codereview.chromium.org/130503013

git-svn-id: svn://svn.chromium.org/blink/trunk@165366 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Add UseCounters for prefixed media features
These are the remaining seven prefixed media features:
-webkit-device-pixel-ratio
-webkit-max-device-pixel-ratio
-webkit-min-device-pixel-ratio
-webkit-transform-2d
-webkit-transform-3d
-webkit-animation
-webkit-view-mode

BUG=335842

Review URL: https://codereview.chromium.org/141163011

git-svn-id: svn://svn.chromium.org/blink/trunk@165360 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Don't support mixed dashed/camel-cased CSS property names
CSSStyleDeclaration's custom getter and setter support property names that
are either dashed ("border-top-width") or camel-cased ("borderTopWidth")
but shouldn't support names that are both (such as "border-topWidth".)

BUG=334562

Review URL: https://codereview.chromium.org/141693002

git-svn-id: svn://svn.chromium.org/blink/trunk@165331 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Add a UseCounter for the HTMLMediaElement.canPlayType keySystem argument
This has been replaced in the spec by MediaKeys.isTypeSupported:

https://dvcs.w3.org/hg/html-media/raw-file/tip/encrypted-media/encrypted-media.html#extensions

Add a counter now so that we have the data needed for removal when the
new spec has been implemented.

BUG=334941

Review URL: https://codereview.chromium.org/135003003

git-svn-id: svn://svn.chromium.org/blink/trunk@165312 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove the -webkit-transition media feature (PrefixedTransitionMediaFeature)
Intent to Remove:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/RO9K26CeuhI/ZWIx0Tb1LHgJ

BUG=335470

Review URL: https://codereview.chromium.org/135903006

git-svn-id: svn://svn.chromium.org/blink/trunk@165310 bbb929c8-8fbe-4397-9dbb-9b2b20218538
davve
Remove children of title element before setting new title
http://www.whatwg.org/specs/web-apps/current-work/multipage/dom.html#document.title

When setting the document title through the document.title or
<title>.text there was an optimization that reused a child text node
in the cases it could. But according to the specification, all
children must be removed and re-created with the new value.

Removing the optimization has a performance impact and makes setting
document.title (or <title>.text) up to ten times slower. This has been
deemed acceptable since the change should only be visible in
specialized micro-benchmarks. It is more important to align with other
browsers and the spec that don't do this optimization.

blink-dev thread about the performance regression:

https://groups.google.com/a/chromium.org/d/msg/blink-dev/ONBQQ5uhBik/fEiTrzQeYlkJ

This is a reland of:

https://codereview.chromium.org/128603002
https://codereview.chromium.org/107513013

The original WebKit bug:

https://bugs.webkit.org/show_bug.cgi?id=28864

BUG=330140,331076

Review URL: https://codereview.chromium.org/139313009

git-svn-id: svn://svn.chromium.org/blink/trunk@165309 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Count DOMImplementation.hasFeature usage and cases where it returns false
This is in order to support the spec discussion:
http://lists.w3.org/Archives/Public/www-dom/2014JanMar/0031.html
http://lists.w3.org/Archives/Public/www-svg/2014Jan/0042.html

BUG=335301

Review URL: https://codereview.chromium.org/141363002

git-svn-id: svn://svn.chromium.org/blink/trunk@165299 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Updating <object> upon changing "data", "classid", "type" attributes.
If an HTMLObjectElement's "type", "data", or "classid" attributes are
dynamically modified, trigger a refresh of the element. Following the
rules given in

  http://www.whatwg.org/specs/web-apps/current-work/#dom-object-data

(cf. "Whenever one of the following conditions occur:")

R=abarth,eseidel,esprehn
BUG=123536
TEST=fast/dom/HTMLObjectElement/update-data

Review URL: https://codereview.chromium.org/135103003

git-svn-id: svn://svn.chromium.org/blink/trunk@165298 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove window.performance.webkit* (PrefixedUserTiming)
Intent to Remove:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/wVPFvUwq4cc/0SKFo56fIg0J

BUG=335459

Review URL: https://codereview.chromium.org/130213008

git-svn-id: svn://svn.chromium.org/blink/trunk@165295 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Measure usage of the prefixed encrypted media APIs
The unprefixed replacements for these aren't implemented yet, but it's
just as well to start collecting data early.

PrefixedMediaGenerateKeyRequest and PrefixedMediaAddKey were already in
UseCounter.h, but unused. Add the missing PrefixedMediaCancelKeyRequest
and put them all to use.

Remove the deprecation message for PrefixedMediaGenerateKeyRequest,
which was left behind in r150962. Otherwise, the ASSERTs in
UseCounter::count would start failing.

BUG=334983

Review URL: https://codereview.chromium.org/140663002

git-svn-id: svn://svn.chromium.org/blink/trunk@165290 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Deprecate HTMLVideoElement-specific prefixed fullscreen API
Intent to Deprecate:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/DULRMEUkeJw/9HXn55X1gj4J

Unfortunately Blink doesn't support the unprefixed fullscreen API yet,
so advise authors to use both the unprefixed and prefixed APIs.

webkitSupportsFullscreen was found to be needlessly complicated for what
it does, so a bug to simplify it was filed: http://crbug.com/334985

BUG=334987

Review URL: https://codereview.chromium.org/139313007

git-svn-id: svn://svn.chromium.org/blink/trunk@165288 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Rename bindingFoo to fooForBindings
Switch to the majority convention so that no one needs to investigate
which to use, as in https://codereview.chromium.org/141363002/

BUG=none

Review URL: https://codereview.chromium.org/141013010

git-svn-id: svn://svn.chromium.org/blink/trunk@165287 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Move from UnusedSlotXX to REMOVEDOldFeature in UseCounter.h
The previous system would end up with either out-of-order slots, which
makes it hard to find the next free slot, or would require frequent
re-ordering, which makes patches harder to write and review.

Some digging was done to find the original names for each slot.

BUG=none

Review URL: https://codereview.chromium.org/132983005

git-svn-id: svn://svn.chromium.org/blink/trunk@165277 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove AudioBufferSourceNode.looping
Intent to Remove:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/v1KTqntSFKU/UWoupLnxPawJ

BUG=335126

Review URL: https://codereview.chromium.org/140973002

git-svn-id: svn://svn.chromium.org/blink/trunk@165267 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove WebMediaPlayer::supportsFullscreen()
All the implementations on the Chromium side simply return true, so
simplify things as much as possible. Leave only traces of this in
HTMLVideoElement to preserve the old behavior, to be removed together
with the rest of that prefixed fullscreen API.

BUG=334985

Review URL: https://codereview.chromium.org/139943006

git-svn-id: svn://svn.chromium.org/blink/trunk@165243 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove unused url argument to HTMLMediaElement::canPlayType
BUG=none

Review URL: https://codereview.chromium.org/139763004

git-svn-id: svn://svn.chromium.org/blink/trunk@165242 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove Node.isSupported
Intent to Deprecate and Remove:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/MUEjC37jFNg/hf1AHFl-4jsJ

There were many old W3C tests for isSupported, which were all removed.
These indirectly tested DOMImplementation.hasFeature, but there are many
direct tests for that which should suffice.

BUG=334970

Review URL: https://codereview.chromium.org/133703014

git-svn-id: svn://svn.chromium.org/blink/trunk@165237 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Split TextTrackCue exceptions test into TextTrackCue+VTTCue
This does not change anything, it is for purity reasons only.

BUG=none

Review URL: https://codereview.chromium.org/140573002

git-svn-id: svn://svn.chromium.org/blink/trunk@165235 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Deprecate the TextTrackCue constructor
Intent to deprecate thread:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/YJ4SY6WHxso/SJ_f8ZCsExwJ

BUG=334942

Review URL: https://codereview.chromium.org/139303007

git-svn-id: svn://svn.chromium.org/blink/trunk@165234 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mpawlowski
Fixing Firefox 21+ password import
Firefox 21 changed the directory layout within Firefox.app.
Some libs and content were moved from Firefox.app/Content/MacOS to
Firefox.app/Content/MacOS/browser, and this new location was
read as app_path_ by the importer. However, libnss3.dylib is still
in Firefox.app/Content/MacOS.

Changing utils to set app_path_ based on compatibility.ini's
LastPlatformDir (which always has Firefox.app/Content/MacOS)
instead of LastAppDir (which was changed to
Firefox.app/Content/MacOS/browser).

'searchplugins' subdir was moved into the new 'browser' subdir
so search engine importing code has to be adjusted.

Enabling Firefox importer browser tests on Mac. They didn't
work because they attempted to use Windows nss libraries. 
They should have been using Mac-specific libraries which are 
already available for Mac unit tests.

BUG=321112, 48007

Review URL: https://codereview.chromium.org/117123002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@245198 0039d316-1c4b-4281-b951-d872f2087c98
sigbjornf
Check for duplicate ArrayBuffer transferables.
Attempts to pass duplicate transferable object should be caught by
postMessage(),

  http://www.whatwg.org/specs/web-apps/current-work/#dom-window-postmessage
  http://www.whatwg.org/specs/web-apps/current-work/#dom-messageport-postmessage

Add the required case for ArrayBuffer.

R=mkwst,dslomov
BUG=334397

Review URL: https://codereview.chromium.org/138273013

git-svn-id: svn://svn.chromium.org/blink/trunk@165224 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Don't fire popstate event on initial document load
According to the specification [1], a popstate event should only be fired
when the document has a "last entry" and the entry being navigated to isn't
it.  A document is created without a "last entry" and gets one just after
this check when it is first navigated to, so a popstate should be fired any
time a document is navigated to except for the first time after it has been
created.

[1] http://www.whatwg.org/specs/web-apps/current-work/multipage/history.html#traverse-the-history (step 12-14 in particular)

BUG=63040

Review URL: https://codereview.chromium.org/136463002

git-svn-id: svn://svn.chromium.org/blink/trunk@165221 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Stop infinite recursion when generating anonymous table boxes
Update the list of box types to expect directly inside (anonymous) table
boxes to include 'table-column' (in addition to 'table-column-group'
and 'table-caption'.)  This fixes the code that looks for an existing
anonymous table section to add a child to so that it doesn't accidentally
try to add the child to the same table box again recursively.

Also drop a couple of lines of code that had no effect in practice.

BUG=330651

Review URL: https://codereview.chromium.org/131993002

git-svn-id: svn://svn.chromium.org/blink/trunk@165216 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Use the VTTCue constructor instead of TextTrackCue in test
The TextTrackCue constructor is being deprecated.

BUG=334942

Review URL: https://codereview.chromium.org/140563002

git-svn-id: svn://svn.chromium.org/blink/trunk@165199 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove an extra ' in the KeyboardEventKeyLocation deprecation message
BUG=none

Review URL: https://codereview.chromium.org/140523002

git-svn-id: svn://svn.chromium.org/blink/trunk@165195 bbb929c8-8fbe-4397-9dbb-9b2b20218538
tmoniuszko
Flash video doesn't play if opened in background tab
This is a regression introduced by 9702820616f52aff8d22dc15e6f25cb86dcc90b2 (bug 299224).

BUG= 
TEST=Go to youtube.com or dailymotion.com. Start playing Flash video. Middle-click one of suggested link to videos to open new tab in background. Activate the tab you've just opened. Expected: Flash video should be playing in active tab. Current: Flash video is not playing until you scroll the page.

Review URL: https://codereview.chromium.org/137883003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@245127 0039d316-1c4b-4281-b951-d872f2087c98
philipj
Improve test coverage of TreatNullAs=NullString and TreatUndefinedAs=NullString
BUG=334519

Review URL: https://codereview.chromium.org/138483004

git-svn-id: svn://svn.chromium.org/blink/trunk@165178 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Make the type argument to HTMLMediaElement.canPlayType non-optional
http://www.whatwg.org/specs/web-apps/current-work/multipage/the-video-element.html#htmlmediaelement

Ad-hoc testing shows that it is also non-optional in Firefox Nightly,
IE11 and Opera 12.16.

BUG=334660

Review URL: https://codereview.chromium.org/138063006

git-svn-id: svn://svn.chromium.org/blink/trunk@165153 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Use VTTScanner for VTT region settings parsing
Start transitioning the VTTRegion settings parsing code to use
VTTScanner, by modifying VTTRegion::parseSetting (the "name=value pair"-
part of the parsing) to use VTTScanner.

Remove VTTParser::collectWord since it becomes unused.

BUG=305317

Review URL: https://codereview.chromium.org/137033002

git-svn-id: svn://svn.chromium.org/blink/trunk@165149 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Allow frames to be free'd even for static images
r151702 added limit for pruning in ImageDecoded::clearCacheExceptFrame,
which would disallow pruning single-frame/static images altogether.

Allow such images to be pruned in their entirety by dropping the
condition for <= 1 frames - the for-loop will handle the kNotFound case.

(Also related is r156651, which re-added the destroyAll flag.)

Modify the ImageFrameGeneratorTest.frameHasAlpha unittest to use frame 0
instead of frame 1, to avoid clearing frame 1 (MockImageDecoder
maps all indices to frame 0.)

R=hclam@chromium.org,pkasting@chromium.org,senorblanco@chromium.org
BUG=302851

Review URL: https://codereview.chromium.org/136503002

git-svn-id: svn://svn.chromium.org/blink/trunk@165127 bbb929c8-8fbe-4397-9dbb-9b2b20218538
davve
Revert "Remove children of title node before updating"
It causes performance problems. See
https://code.google.com/p/chromium/issues/detail?id=331076

Micro-benchmarks like http://jsperf.com/setting-document-title regress
about one magnitude.

We need to figure out whether the spec should change or if the CL
could be written in a less performance-intrusive way, or if it's a
performance penalty we accept. So revert for now.

The follow-up "Inhibit title updates when removing children before
setting new value" is reverted too since it has no value without the
first patch.

Reverted CLs:

https://codereview.chromium.org/128603002
https://codereview.chromium.org/107513013

BUG=331076

Review URL: https://codereview.chromium.org/138213005

git-svn-id: svn://svn.chromium.org/blink/trunk@165117 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove TreatNullAs=NullString for SVGElement.xmlbase
http://www.w3.org/TR/SVG11/types.html#InterfaceSVGElement

The test passes in Firefox Nightly, IE11 Release Preview and Opera 12.16.

BUG=310298

Review URL: https://codereview.chromium.org/138433003

git-svn-id: svn://svn.chromium.org/blink/trunk@165083 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Fix crash when popstate handler detaches frame during history navigation
Protect FrameLoader::m_frame in FrameLoader::loadHistoryItem() to
keep it from being destroyed if a popstate event handler, dispatched
via FrameLoader::loadInSameDocument(), removes the frame from the
parent document.

BUG=334239

Review URL: https://codereview.chromium.org/138213002

git-svn-id: svn://svn.chromium.org/blink/trunk@165081 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Minor optimization of SVG <textPath> layout
Path::pointAtLength and Path::normalAngleAtLength both call
Path::pointAndNormalAtLength to do the work.
SVGTextLayoutEngine::layoutTextOnLineOrPath call the two former, which
means it'll setup and process the path twice.

Change the two calls into one call to pointAndNormalAtLength to reduce
the work required.

BUG=135310

Review URL: https://codereview.chromium.org/135853005

git-svn-id: svn://svn.chromium.org/blink/trunk@165078 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ed
Remove support for <animateColor>.
Makes SVGAnimateColorElement an unknown DOM interface, but preserves HTML5 parsing rules (e.g ANIMATECOLOR -> animateColor).

BUG=332839

Review URL: https://codereview.chromium.org/137443006

git-svn-id: svn://svn.chromium.org/blink/trunk@165071 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Ensure ElementData exists before modifying when animating class attribute
This is a merge of http://trac.webkit.org/changeset/153835
by Rob Buis <rwlbuis@webkit.org>.

BUG=334194

Review URL: https://codereview.chromium.org/138173002

git-svn-id: svn://svn.chromium.org/blink/trunk@165068 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Move onresize from just Window to Window and elements
The resize event was added to HTMLMediaElement in http://crbug.com/328140

Add a trailing newline to some files to work around http://crbug.com/307023

Also sync with the list of properties in the latest spec revision.

BUG=330953

Review URL: https://codereview.chromium.org/136593002

git-svn-id: svn://svn.chromium.org/blink/trunk@165057 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Compatible handling of the form.autocomplete IDL attribute.
Align with the spec and Gecko for the enumerated attribute
'autocomplete' over form elements. That is, map both missing and
invalid content attribute values to the "on" keyword/string.

R=
BUG=333229

Review URL: https://codereview.chromium.org/133703002

git-svn-id: svn://svn.chromium.org/blink/trunk@165043 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Make the second argument to Element.setAttribute non-optional
This change broke Twitter the first time: http://crbug.com/330261

Twitter was fixed on Dec 20, 2013, so it should be safe to try again.

BUG=325922

Review URL: https://codereview.chromium.org/130193003

git-svn-id: svn://svn.chromium.org/blink/trunk@165028 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Limit HTMLKeygenElement.keytype to only known values.
The only supported value for the <keygen/> element's keytype attribute
is the keyword for the RSA state ("rsa".) Impose the required
normalization of the IDL attribute when getting its value.

R=
BUG=321862

Review URL: https://codereview.chromium.org/123833005

git-svn-id: svn://svn.chromium.org/blink/trunk@165027 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Correctly reflect the 'crossOrigin' attribute.
The CORS settings attribute

 http://www.whatwg.org/specs/web-apps/current-work/#cors-settings-attribute

when reflected as an IDL attribute, should map a bare/empty
'crossorigin' attribute to "anonymous". And if set to an invalid
value, to "anonymous" also.

So, for the reflected "crossOrigin" IDL attribute on <script>, <img>
and <video> (HTMLMediaElement, really), these attribute states should
be observable via its getter.

R=
BUG=332346

Review URL: https://codereview.chromium.org/131483006

git-svn-id: svn://svn.chromium.org/blink/trunk@164980 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Make arguments to Element methods non-optional (except setAttribute)
This partially re-lands <https://codereview.chromium.org/105883012/>,
which was reverted in <https://codereview.chromium.org/120373003> because
making the second argument to setAttribute broke Twitter.

The second argument to setAttribute is left optional, making it
non-optional will be attempted again separately.

BUG=325922

Review URL: https://codereview.chromium.org/133683004

git-svn-id: svn://svn.chromium.org/blink/trunk@164971 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Revert "Revert "Implement Element.matches(selectors)""
This re-lands <https://codereview.chromium.org/106983004>, which was
reverted in <https://codereview.chromium.org/103303005>.

The root bug causing the revert was fixed in Polymer in
<https://github.com/Polymer/ShadowDOM/pull/332> and reached Chromium in
<https://codereview.chromium.org/98583008>.

BUG=326652

Review URL: https://codereview.chromium.org/133643006

git-svn-id: svn://svn.chromium.org/blink/trunk@164970 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mmaliszkiewicz
[Aura] Drop to WebContentsView sets wrong drop effect.
Types mismatch causes setting wrong DROPEFFECT (move swapped with copy) on Windows.

Review URL: https://codereview.chromium.org/131653002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@244500 0039d316-1c4b-4281-b951-d872f2087c98
fs
Use VTTScanner for VTT cue settings parsing
Transcribe VTTCue::parseSettings (and helpers) into using VTTScanner
to perform the parsing of cue settings.

BUG=305317

Review URL: https://codereview.chromium.org/134153002

git-svn-id: svn://svn.chromium.org/blink/trunk@164955 bbb929c8-8fbe-4397-9dbb-9b2b20218538
davve
Align SameSizeAsFillLayer with FillLayer
After http://crrev.com/35303002/ added a bit in FillLayer, it was
discovered that SameSizeAsFillLayer was slightly out-of-date (by 11
bits). Remove ambition to track the number of used bits in each bit
field since it easily goes out-of-date and doesn't serve a useful
purpose.

BUG=304721

Review URL: https://codereview.chromium.org/37223002

git-svn-id: svn://svn.chromium.org/blink/trunk@164932 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Remove position argument from VTTParser::collectTimeStamp
The |position| argument is no longer used by any of the callers.
(They all pass a pointer to a dummy local set to zero.)

BUG=305317

Review URL: https://codereview.chromium.org/134173002

git-svn-id: svn://svn.chromium.org/blink/trunk@164884 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Schedule GC of document resources when loading data URLs
If a page loads a large number of data URLs, without any intervening loads
of other resources, ResourceFetcher::m_documentResources will hold
references to the data URL Resources, without attempting to remove ("GC")
them.
Scheduling a GC of Resources after having created a data URI Resource to
prevent accumulation.

BUG=309543

Review URL: https://codereview.chromium.org/133013006

git-svn-id: svn://svn.chromium.org/blink/trunk@164879 bbb929c8-8fbe-4397-9dbb-9b2b20218538
davve
Teach mapFill{X,Y}Position about initial values to individual background layers
In <https://codereview.chromium.org/35303002>, it was falsely assumed
that the initial values for background-position-{x,y} only came from
the property as a whole, ignoring that the initial value must be taken
into account *for each layer* too. Otherwise we will leak background
positions from one layer to the next, causing the positioning bug the
reporter found.

This is a partial revert of r160243 along with an added js test.

BUG=327307

Review URL: https://codereview.chromium.org/128203003

git-svn-id: svn://svn.chromium.org/blink/trunk@164877 bbb929c8-8fbe-4397-9dbb-9b2b20218538
davve
Inhibit title updates when removing children before setting new value
In <https://codereview.chromium.org/107513013> children to <title>
were removed before setting the new title child. This caused one extra
title change notification to the empty string before the new value was
set.

Avoid the extra notification by ignoring title updates when children
of HTMLTitleElement change until the final appendChild with the new
text node.

Also make sure to add a child list mutation scope for the update so
that both the removal and addition ends up in the same mutation. Add
test for this.

BUG=331351

Review URL: https://codereview.chromium.org/128603002

git-svn-id: svn://svn.chromium.org/blink/trunk@164789 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Empty reflected attributes and string literals in extended attributes.
Encoding the CORS setting attribute

  http://www.whatwg.org/specs/web-apps/current-work/#cors-settings-attribute

as a reflected attribute exposed a missing piece in our reflected
attribute handling: attributes that are empty (no value) can
separately be mapped to an attribute state. Upon reflection via its
IDL attribute, that state must then be mapped to its canonical
value/keyword.

Support the expression of this through the setting of
[ReflectEmpty="value"].

Separately, but also induced by CORS attributes, an attribute value
may contain non-identifier characters (as defined by WebIDL), which
makes identifiers not a perfect fit for specifying these reflected
attribute values (the use of "-" being the direct problem for CORS
attribute values.)

To address, extended attributes can now take string literals on their
right hand sides (e.g., [Attr="B"|"C"|"D"].) Attribute value lists
provided with [ReflectOnly=<list>] can then contain the wider range of
characters.

To go with that, the [ReflectEmpty], [ReflectMissing] and
[ReflectInvalid] attributes can also be given string literals on their
right hand side, e.g.,

  [ReflectEmpty="Value1", ReflectInvalid="Value2"]

The string literal must match one of the values in the [ReflectOnly]
list.

R=haraken,nbarth
BUG=331694

Review URL: https://codereview.chromium.org/127903002

git-svn-id: svn://svn.chromium.org/blink/trunk@164776 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Introduce VTTScanner - a parser helper for various VTT parsing needs
Add a new helper class - VTTScanner - with the aim of performing less
explicit splitting/reallocation of strings (best case, none at all) and
have less explicit index boundary checks.

To allow this new scheme to interact and work side-by-side with the
old <String, position> scheme, also add a wrapper VTTLegacyScanner
which allows state to be imported and exported based on scope.

Start converting code to the new scheme by modifying
VTTParser::collectTimingsAndSettings and VTTParser::collectTimeStamp to
use this helper.

TEST=unittests:VTTScanner.*
TEST=Existing VTT cue settings parsing tests (various in media/track/*)
BUG=305317

Review URL: https://codereview.chromium.org/119143002

git-svn-id: svn://svn.chromium.org/blink/trunk@164775 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ed
Remove support for the externalResourcesRequired attribute.
Intent: https://groups.google.com/a/chromium.org/forum/#!searchin/blink-dev/intent$20to$20remove/blink-dev/cyBqba-FxQU/fL208UQx3sEJ

Changes in behavior:

1. Load events should only be dispatched to elements that have some actual external content to load and to the outermost svg element.
2. Scripts should be killed/not executed if the svg is not xml wellformed.
3. Load events on elements that have external resources to fetch will not be dispatched until that resource is ready for use, similar to how externalResourcesRequired="true" used to work.

BUG=332066

Review URL: https://codereview.chromium.org/62083002

git-svn-id: svn://svn.chromium.org/blink/trunk@164692 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Support colors w/ alpha in SVG 'stop' elements and 'feFlood'
When a color w/ alpha is specified (via rgba(...)) as stop-color on
a SVG 'stop' element, or as flood-color (or equivalent) on 'feFlood',
then modulate the alpha-channel with the stop-opacity or flood-opacity
respectively to produce the final color to use.

BUG=331516

Review URL: https://codereview.chromium.org/126033003

git-svn-id: svn://svn.chromium.org/blink/trunk@164690 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jadahl
gpu: Support parallel active queries in command buffer
Add support for having multiple queries to be active at the same time
given that their targets are different.

BUG=328808

Review URL: https://codereview.chromium.org/106623008

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@243524 0039d316-1c4b-4281-b951-d872f2087c98
joaoe
Added a new overload of gfx::Image::CreateFrom1xPNGBytes
... that accepts a RefCountedMemory. This saves some buffer copying in
many places, specially welcome with big images.

Review URL: https://codereview.chromium.org/78903003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@243492 0039d316-1c4b-4281-b951-d872f2087c98
sigbjornf
Gracefully handle <meta http-equiv name content> elements.
If presented with a <meta> element having both a 'name' and
'http-equiv' attribute, try interpreting the 'name' attribute first
before _also_ considering 'http-equiv'. The specification requires
that at most one of these attributes to be used, but authors don't
always keep their side of the bargain.

This simply reinstates previous behavior, something that regressed in
https://codereview.chromium.org/25728006/ (it ignores 'http-equiv' if
'name' is supplied, even if the latter is set to some unknown value.)

R=
BUG=332090

Review URL: https://codereview.chromium.org/126313002

git-svn-id: svn://svn.chromium.org/blink/trunk@164642 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Reset SVGAnimationElement values animation state on attribute changes
If the animation element is moved in the DOM, and it is a 'values'
animation, then m_lastValuesAnimation{From,To} would not be reset, which
could mean that if the current from/to values matched those prior to the
move (reinsertion), calculateFromAndtoValues would not be called, and
the SVGAnimateElement::m_{from,to}Type values would not be initialized,
and hence cause a crash when trying to compute the animated value.

BUG=329822

Review URL: https://codereview.chromium.org/107083007

git-svn-id: svn://svn.chromium.org/blink/trunk@164599 bbb929c8-8fbe-4397-9dbb-9b2b20218538
davve
Don't set document.title when there is no <head>
Align setting document.title with

http://www.whatwg.org/specs/web-apps/current-work/multipage/dom.html#document.title

a bit closer by refusing to update the document title when there is no
head element.

BUG=330165

Review URL: https://codereview.chromium.org/98373012

git-svn-id: svn://svn.chromium.org/blink/trunk@164582 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Support missing and invalid defaults for reflected attributes.
Some enumerated attributes have a designated state if the underlying
attribute value is either missing or in an invalid state. That state
should be observable for reflected IDL attributes on getting, hence
add support for controlling what values to use for these attribute
states:

  [ReflectMissing=missingValue]
  [ReflectInvalid=invalidValue]

The attributes only have an interpretation for limited DOMString
attributes that use [ReflectOnly=<list>]. The missing/invalid value
defaults must appear in the ReflectOnly list.

R=
BUG=331694

Review URL: https://codereview.chromium.org/98033003

git-svn-id: svn://svn.chromium.org/blink/trunk@164579 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Improve handling of failed integer type conversions.
Change over the V8Binding methods for converting to integer types
(to*Int*()) to take an ExceptionState argument instead of using a
bool reference argument to indicate success/failure.

Improve the exception messages from failed type conversion as a
result; adjust the binding code generator to emit compatible calls and
exception propagation.

Reworked some of the error reporting in the WebGL custom binding code
while switching over; more informative exception messages will now
flow.

R=jsbell,nbarth,haraken
BUG=

Review URL: https://codereview.chromium.org/121113004

git-svn-id: svn://svn.chromium.org/blink/trunk@164568 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Add the SharedWorker.workerStart property for high resolution timers.
Update the Worker implementation of the high resolution timer spec
(v2), supporting the workerStart attribute which provides the
difference between the time origins of a shared worker and the
document it is accessed from

 https://dvcs.w3.org/hg/webperf/raw-file/tip/specs/HighResolutionTime2/Overview.html#sec-worker-start

R=tonyg,abarth
BUG=169318

Review URL: https://codereview.chromium.org/111743007

git-svn-id: svn://svn.chromium.org/blink/trunk@164535 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Support IDL attributes limited to only known values.
Provide the required binding layer support for IDL attributes that
reflect an enumerated content attribute that is limited to a set of
known values:

 http://www.whatwg.org/specs/web-apps/current-work/#limited-to-only-known-values

That is, have the getter for such attributes check with respect to the
known value set and perform the required filtering + canonicalization
of the value returned.

R=haraken
BUG=331695

Review URL: https://codereview.chromium.org/124763002

git-svn-id: svn://svn.chromium.org/blink/trunk@164509 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
MIME type predicates and case-insensitive matching.
The registered type portion of a MIME type must be compared
case-insensitively for equality. Make all Blink-side predicates (e.g.,
is*MIMEType()) do such equality testing.

If the equality testing delegates to external platform predicates,
then ensure that the MIME type is first translated to lower case.
(This is due to the net/base/ MIME type predicates assuming
lower-cased input.)

The downstream benefit of this is that we can let go of various
explicit lower case conversions before invoking these predicates.

R=jochen
BUG=

Review URL: https://codereview.chromium.org/122743002

git-svn-id: svn://svn.chromium.org/blink/trunk@164453 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
depend on fontconfig for linux rather than x11
https://codereview.chromium.org/99103006 moved WebFontInfo.cpp from
core to platform.  In core fontconfig is enabled if OS=="linux",
but in platform it is enabled if use_x11==1.  In most setups this
works because the headers are in the same base directory, but if
that's not the case the build will fail.

To fix this, I think platform should just depend on fontconfig if
OS=="linux".

BUG=303332

Review URL: https://codereview.chromium.org/122653004

git-svn-id: svn://svn.chromium.org/blink/trunk@164428 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
wrap stray switches::kDisableWebRtcHWEncoding in ifdefs
Followup from https://codereview.chromium.org/74563002

TEST=Build with enable_webrtc=0
BUG=313115

Review URL: https://codereview.chromium.org/115063004

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@242794 0039d316-1c4b-4281-b951-d872f2087c98
mostynb
remove deprecated armv7 gyp setting now that all uses have been removed
BUG=234135

Review URL: https://codereview.chromium.org/120123004

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@242428 0039d316-1c4b-4281-b951-d872f2087c98
davve
Remove unused imports
After the https://codereview.chromium.org/14668003 refactor both of
these are unused.

BUG=330137

Review URL: https://codereview.chromium.org/116073005

git-svn-id: svn://svn.chromium.org/blink/trunk@164243 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Add ExceptionState checks in Document::createElement*() methods.
Check if nested createElement() / createElementNS() calls have
reported exceptions and return early if so. Missing in two cases.

R=
BUG=

Review URL: https://codereview.chromium.org/112353004

git-svn-id: svn://svn.chromium.org/blink/trunk@164239 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Have HTMLFormElement's named getter return a RadioNodeList.
The getter for HTMLFormElement is now required to return a
RadioNodeList if multiple form elements match,

 http://www.whatwg.org/specs/web-apps/current-work/#dom-form-nameditem

Provide this, with the extra wrinkle of having to support a live
RadioNodeList over only <img> elements if no 'listed elements' match
the given ID/name.

R=esprehn@chromium.org,tkent@chromium.org
BUG=315851
TEST=fast/forms/form-radio-node-list
TEST=fast/forms/form-radio-img-node-list

Review URL: https://codereview.chromium.org/119063002

git-svn-id: svn://svn.chromium.org/blink/trunk@164232 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
skip neon code in libwebp when neon is explicitly unavailable
This patch makes it possible to build libwebp without runtime neon detection/usage.

Review URL: https://codereview.chromium.org/95873002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@242079 0039d316-1c4b-4281-b951-d872f2087c98
tmoniuszko
Don't redraw plugin windows on moving when using gpu browser compositor
Plugin windows are redrawn after EndDeferWindowPos call anyway.
Redrawing in SetWindowRgn causes plugin windows to be drawn on browser chrome.

BUG=

Review URL: https://codereview.chromium.org/118163003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@242070 0039d316-1c4b-4281-b951-d872f2087c98
davve
Remove children of title node before updating
http://www.whatwg.org/specs/web-apps/current-work/multipage/dom.html#document.title

Extra care must be taken because of mutation events, which may cause
just about anything to happen including m_titleElement to be removed
itself when removing its children (see

LayoutTests/fast/dom/document-set-title-mutation-crash.html

for a good example). So make sure to again check m_titleElement before
actually setting the new title text.

Also update a related code comment that had rotted a bit.

Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=28864

BUG=330140

Review URL: https://codereview.chromium.org/107513013

git-svn-id: svn://svn.chromium.org/blink/trunk@164228 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Support for json media types as (non-image) mime types.
Consider mime types with a JSON media type (*) just like
"application/json" is; i.e., rendered as text content. Similarly for
devtools, have such mime types be equally previewable. Also addressed
a smaller bug which made non-XHR loaded resources with text mime types
(but no charset supplied in the response) to not be previewable.

Added inspector tests to verify that such mime types are indeed
previewed using the JSON viewer.

* - "application/<something>+json", http://tools.ietf.org/html/rfc6839#section-3.1

R=tyoshino@chromium.org,pfeldman@chromium.org,vsevik@chromium.org
BUG=278568

Review URL: https://codereview.chromium.org/94893003

git-svn-id: svn://svn.chromium.org/blink/trunk@164220 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Recognize json media types as (non-image) mime types.
Extend the IsSupportedNonImageMimeType() predicate to also
recognize the JSON media types ("application/<something>+json")
( http://tools.ietf.org/html/rfc6839#section-3.1 )

Note that the 6839 RFC text allows the use of any toplevel type, not just "application/". No known uses outside of application/  however, hence we limit ourselves for now.

R=
BUG=278568

Review URL: https://codereview.chromium.org/97913002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@242008 0039d316-1c4b-4281-b951-d872f2087c98
fs
Handle "url(...) none" and "url(...) currentColor" SVG paint specs
Consider all paint types with a URI in paintingResourceFromSVGPaint -
URI_NONE, URI_CURRENTCOLOR and URI_RGBCOLOR_ICCCOLOR were previously
not considered. (The last one, URI_RGBCOLOR_ICCCOLOR, will never appear
out of the parser.)
Add parsing support for the URI_CURRENTCOLOR type, since it's trivial.

TEST=svg/custom/fill-fallback-{none,currentcolor-{1,2}}.svg
BUG=162547

Review URL: https://codereview.chromium.org/108303009

git-svn-id: svn://svn.chromium.org/blink/trunk@164200 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
HTMLOptionElement code style: consistently access select owner.
For methods that access the select owner, do this consistently
when otherwise possible.

R=
BUG=

Review URL: https://codereview.chromium.org/109533003

git-svn-id: svn://svn.chromium.org/blink/trunk@164189 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ed
Remove the SVGColor and SVGPaint DOM interfaces (were deprecated).
Spec: http://www.w3.org/TR/SVG11/svgdom.html#ExtendedInterfaces
SVG2 spec removal: https://svgwg.org/svg2-draft/changes.html#svgdom

Change test expectations, serialize colors as CSS component values, aka
the same way as the 'color' property. Opera (Presto) and Firefox already
use that way of serializing SVGColor/SVGPaint values.
CSSOM WD spec for serializing <color> values:
http://dev.w3.org/csswg/cssom/#serialize-a-css-component-value

This is to prepare for rewriting the SVG side, removing the respective
classes there too.

BUG=329518
R=pdr, krit, schenney

Review URL: https://codereview.chromium.org/114373004

git-svn-id: svn://svn.chromium.org/blink/trunk@164179 bbb929c8-8fbe-4397-9dbb-9b2b20218538
tmoniuszko
RenderWidgetHostImpl::OnWindowlessPluginDummyWindowCreated() compilation fix on Windows non-Aura
BUG=

Review URL: https://codereview.chromium.org/112273004

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@241839 0039d316-1c4b-4281-b951-d872f2087c98
joaoe
Implemented DocumentType.cloneNode(bool)
Spec: http://dom.spec.whatwg.org/#concept-node-clone

BUG=325226

Review URL: https://codereview.chromium.org/102533002

git-svn-id: svn://svn.chromium.org/blink/trunk@164168 bbb929c8-8fbe-4397-9dbb-9b2b20218538
johannesa
Fixes duplicate listing of third party libraries in credits
The party license generator can return duplicate paths when a path is both
defined in ADDITIONAL_PATHS and found through the recursive scan. This patch
makes sure an additional path is not reported multiple times if it has
already been found.

BUG=329448

Review URL: https://codereview.chromium.org/114723009

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@241834 0039d316-1c4b-4281-b951-d872f2087c98
sigbjornf
Cancel load event on a failed image resource fetch.
If the image loader is notified of a resource that finished loading
with an error, make sure the pending load event is cancelled and an
error event is dispatched in its stead.

R=
BUG=324417
TEST=http/tests/misc/image-onerror-no-load-event

Review URL: https://codereview.chromium.org/113633005

git-svn-id: svn://svn.chromium.org/blink/trunk@164111 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Structured cloning: improve DataCloneError reporting.
The spec tells us that cloning of neutered objects should throw
DataCloneError:

   http://www.whatwg.org/specs/web-apps/current-work/#safe-passing-of-structured-data

And if an attempt, like in the above, to re-transfer a neutered object
is made, DataCloneError should also be thrown:

  http://www.whatwg.org/specs/web-apps/current-work/#dom-window-postmessage
  http://www.whatwg.org/specs/web-apps/current-work/#dom-messageport-postmessage

The implementation used InvalidStateError instead.

Switch to throwing DataCloneError in SerializedScriptValue, both
during the handling of transferables and the actual cloning step. Hand
in hand with that switch away from the older InvalidStateError,
improve the quality of the error messages that go with the failed
cloning operations. i.e.,

 * SerializedScriptValue::create() now takes an ExceptionState for
   reporting exceptions. This allows context (e.g., what postMessage()
   that is attempting to clone) to be included in the error message.

   (As a result, removed the old method for signalling errors via a
   bool reference.)

 * Rephrase the unmarshalling/extraction of transferable arrays to
   also be reported over an incoming ExceptionState.

 * Make the error messages emitted by MessagePort.postMessage() a
   little bit more consistent.

R=mkwst@chromium.org,dslomov@chromium.org
BUG=327994

Review URL: https://codereview.chromium.org/114363002

git-svn-id: svn://svn.chromium.org/blink/trunk@164106 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
change cr/lf to lf in testcase.
BUG=
R=fs@opera.com

Review URL: https://codereview.chromium.org/109373004

git-svn-id: svn://svn.chromium.org/blink/trunk@164101 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Add UseCounter for initMessageEvent (including prefixed version.)
Compile some data on whether these init*Event() methods can indeed be
retired.

R=
BUG=311332

Review URL: https://codereview.chromium.org/112583005

git-svn-id: svn://svn.chromium.org/blink/trunk@164098 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Split out common parsing code for Position/Size VTT cue settings
While in the vicinity, also reposition the braces for the cases in
the switch.

BUG=305317

Review URL: https://codereview.chromium.org/118263002

git-svn-id: svn://svn.chromium.org/blink/trunk@164095 bbb929c8-8fbe-4397-9dbb-9b2b20218538
tiger
This review merges the two existing page serializers, WebPageSerializerImpl and
PageSerializer, into one, PageSerializer. In addition to this it moves all
the old tests from WebPageNewSerializerTest and WebPageSerializerTest to the
PageSerializerTest structure and splits out one test for MHTML into a new
MHTMLTest file.

Saving as 'Webpage, Complete', 'Webpage, HTML Only' and as MHTML when the
'Save Page as MHTML' flag is enabled now uses the same code, and should thus
have the same feature set. Meaning that both modes now should be a bit better.

Detailed list of changes:

- PageSerializerTest: Prepare for more DTD test
- PageSerializerTest: Remove now unneccesary input image test
- PageSerializerTest: Remove unused WebPageSerializer/Impl code
- PageSerializerTest: Move data URI morph test
- PageSerializerTest: Move data URI test
- PageSerializerTest: Move namespace test
- PageSerializerTest: Move SVG Image test
- MHTMLTest: Move MHTML specific test to own test file
- PageSerializerTest: Delete duplicate XML header test
- PageSerializerTest: Move blank frame test
- PageSerializerTest: Move CSS test
- PageSerializerTest: Add frameset/frame test
- PageSerializerTest: Move old iframe test
- PageSerializerTest: Move old elements test
- Use PageSerizer for saving web pages
- PageSerializerTest: Test for rewriting links
- PageSerializer: Add rewrite link accumulator
- PageSerializer: Serialize images in iframes/frames src
- PageSerializer: XHTML fix for meta tags
- PageSerializer: Add presentation CSS
- PageSerializer: Rename out parameter

BUG=328354
R=abarth@chromium.org

Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=162155

Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=162294

Review URL: https://codereview.chromium.org/68613003

git-svn-id: svn://svn.chromium.org/blink/trunk@164094 bbb929c8-8fbe-4397-9dbb-9b2b20218538
tiger
Disable three DomSerializerTests in preperation of page serializer merge
This CL fixes my mistake in https://codereview.chromium.org/115163002/ where
I prepended the tests with 'DISABLE_' instead of 'DISABLED_'. It also disables
one additional test that will not work due to the merge.

R=jochen
BUG=328354

Review URL: https://codereview.chromium.org/106023004

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@241545 0039d316-1c4b-4281-b951-d872f2087c98
sigbjornf
Implement platform deleters per spec.
Extend the functionality of platform deleter operations slightly to
allow them to implement what WebIDL prescribes,

   http://heycam.github.io/webidl/#delete

That is, if the property name being deleted isn't exposed by the
platform object, any native property should be deleted instead.

Update the two deleters that this currently applies to, Storage and
DOMStringMap (dataset).

This change reflects the outcome of a spec clarification issue raised
via https://www.w3.org/Bugs/Public/show_bug.cgi?id=24096

R=
BUG=329176

Review URL: https://codereview.chromium.org/106853005

git-svn-id: svn://svn.chromium.org/blink/trunk@164081 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Compute source/destination rectangles in FEComponentTransfer::applySkia
When applying the filtering operation, care must be taken to use the
proper rectangle from the input efffect/primitive to adjust for a
potential difference in the filter primitive subregion.

TEST=svg/filters/feComponentTransfer-subregion.svg
BUG=327693

Review URL: https://codereview.chromium.org/112053007

git-svn-id: svn://svn.chromium.org/blink/trunk@164019 bbb929c8-8fbe-4397-9dbb-9b2b20218538
joaoe
Preserve modification timestamp when zipping files.
Files packaged in a zip archive now have their last modification date
and time set. When unzipping the files, the output file's last
modification time is also set (if the time in the zip file is not valid,
the output's file time is not set to prevent the original bug causing
files to have dates set to 1980).

Also fixed some cpplint issues.

BUG=326988
TEST=ZipTest.ZipTimeStamp

Review URL: https://codereview.chromium.org/99333019

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@241278 0039d316-1c4b-4281-b951-d872f2087c98
mostynb
update armv6 floating point defaults
Update the armv6 floating point defaults as suggested in
http://crbug.com/234135

BUG=234135

Review URL: https://codereview.chromium.org/104403004

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@240891 0039d316-1c4b-4281-b951-d872f2087c98
sigbjornf
Make cloning of File objects more useful.
Make the structured cloning of File objects complete, extending their
wire format to also include:

 * name
 * relative path
 * size
 * last modification date.

As this changes the format, bump the serialization version number up
to 4. The deserializer is backwards compatible, including for File
objects; verify this to be so through tests.

Files constructed via the File constructor weren't correctly cloned
as-was; added a Worker test to have some coverage.

R=dslomov@chromium.org,jochen@chromium.org
BUG=171905
TEST=fast/storage/serialized-script-value
TEST=fast/files/workers/worker-read-file-constructor-async

Review URL: https://codereview.chromium.org/100023005

git-svn-id: svn://svn.chromium.org/blink/trunk@163956 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Add missing FileReader argument typechecking.
If the supplied argument to the readAs*() methods is not a Blob, throw
the required TypeError.

Also, improve the error message used when signalling attempts to
concurrently read from the same FileReader object.

R=
BUG=223762
TEST=fast/files/file-reader-methods-illegal-arguments

Review URL: https://codereview.chromium.org/114953006

git-svn-id: svn://svn.chromium.org/blink/trunk@163944 bbb929c8-8fbe-4397-9dbb-9b2b20218538
tiger
Disable two DomSerializerTests in preperation of page serializer merge
BUG=328354

Review URL: https://codereview.chromium.org/115163002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@240671 0039d316-1c4b-4281-b951-d872f2087c98
sigbjornf
Add sigbjornf to bindings, dom WATCHLISTS.
R=
BUG=none
NOTRY=true

Review URL: https://codereview.chromium.org/115193002

git-svn-id: svn://svn.chromium.org/blink/trunk@163865 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Add UseCounters for CSSStyleSheet IE extensions
Ad-hoc testing reveals that none of these are implemented by Opera 12.16
(Presto) or Firefox Nightly, so maybe they can be removed.

BUG=none

Review URL: https://codereview.chromium.org/114573002

git-svn-id: svn://svn.chromium.org/blink/trunk@163859 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Make arguments to Location.assign() and .replace() non-optional
http://whatwg.org/html#location

Firefox Nightly, IE11 Release Preview and Opera 12.16 all throw an
exception when these functions are called with no argument.

BUG=328194

Review URL: https://codereview.chromium.org/108213011

git-svn-id: svn://svn.chromium.org/blink/trunk@163852 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Enforce HTML range restriction on setting unsigned attribute values.
The HTML spec requires that reflected attributes over unsigned longs
are kept to a limited range [0, 2^31) on setting & getting,

   http://www.whatwg.org/specs/web-apps/current-work/#reflect

No such clamping was in place for the upper bound; enforce it when
setting the unsigned long attribute.

R=
BUG=316122

Review URL: https://codereview.chromium.org/99443005

git-svn-id: svn://svn.chromium.org/blink/trunk@163778 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Only 'form associated' elements have a potential form owner.
The spec tells us that only certain elements have the notion of a form
owner,

 http://www.whatwg.org/specs/web-apps/current-work/#form-associated-element
 http://www.whatwg.org/specs/web-apps/current-work/#form-owner

Implement that selective notion of 'form owner' over elements.

Internally, make use of a more precise form owner notion over elements
to slightly simplify form lookups (RadioNodeList + current form
selection in a frame.)

R=arv@chromium.org,tkent@chromium.org
BUG=324828
TEST=fast/forms/form-associated-element

Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=163697

Review URL: https://codereview.chromium.org/106423005

git-svn-id: svn://svn.chromium.org/blink/trunk@163738 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Make arguments to Element methods non-optional
http://dom.spec.whatwg.org/#interface-element

Only touch methods defined by the above spec.

The added missing-arguments test passes in Firefox Nightly, and
Opera 12.16. IE11 Release Preview passes all except getAttribute,
removeAttribute and setAttribute, where it returns null/undefined
instead of throwing.

Taken together, this could break IE- and Chrome-only content.

This re-lands https://codereview.chromium.org/98543009 after having
landed https://codereview.chromium.org/111833002/ in Chromium.

BUG=325922

Review URL: https://codereview.chromium.org/105883012

git-svn-id: svn://svn.chromium.org/blink/trunk@163705 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Only 'form associated' elements have a potential form owner.
The spec tells us that only certain elements have the notion of a form
owner,

 http://www.whatwg.org/specs/web-apps/current-work/#form-associated-element
 http://www.whatwg.org/specs/web-apps/current-work/#form-owner

Implement that selective notion of 'form owner' over elements.

Internally, make use of a more precise form owner notion over elements
to slightly simplify form lookups (RadioNodeList + current form
selection in a frame.)

R=arv@chromium.org,tkent@chromium.org
BUG=324828
TEST=fast/forms/form-associated-element

Review URL: https://codereview.chromium.org/106423005

git-svn-id: svn://svn.chromium.org/blink/trunk@163697 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Implement HTMLOptionElement.form as required by spec.
The spec tells us that an option element

  http://www.whatwg.org/specs/web-apps/current-work//#dom-option-form

only has a form value if inside a <select>. Implement this.

R=arv@chromium.org
BUG=324828
TEST=fast/forms/form-attribute

Review URL: https://codereview.chromium.org/102263006

git-svn-id: svn://svn.chromium.org/blink/trunk@163671 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Add missing argument to Element.setAttribute() calls
"Make arguments to Element methods non-optional" was
reverted in Blink because these tests began failing.

BUG=325922

Review URL: https://codereview.chromium.org/111833002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@239999 0039d316-1c4b-4281-b951-d872f2087c98
sigbjornf
Factor out common StepRange construction code.
Provide an InputType helper method for creating a StepRange given the
default values to use. Use it for all InputTypes that have a step
range bar Range.

R=
BUG=257369

Review URL: https://codereview.chromium.org/108513007

git-svn-id: svn://svn.chromium.org/blink/trunk@163656 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Sync DOMImplementation IDL with spec
http://dom.spec.whatwg.org/#domimplementation

The new tests pass in Firefox Nightly and Opera 12.16.

IE11 Release Preview returns null for doctype.publicId and
doctype.systemId, and does not throw an exception when calling
hasFeature with only 1 argument, but otherwise passes.

Finally, no other browser appears to implement createCSSStyleSheet,
so add a UseCounter in the hope that it can be removed.

BUG=310298, 325922

Review URL: https://codereview.chromium.org/104503006

git-svn-id: svn://svn.chromium.org/blink/trunk@163544 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Have document.evaluate() report TypeError over incorrect resolvers.
Switch from reporting TypeMismatchError to TypeError to align with
other implementations (and WebIDL) when faced with resolver arguments
that do not have a function type.

To help format the error message about an incorrectly typed argument,
introduced ExceptionMessages::incorrectArgumentType().

R=
BUG=270033

Review URL: https://codereview.chromium.org/111533002

git-svn-id: svn://svn.chromium.org/blink/trunk@163533 bbb929c8-8fbe-4397-9dbb-9b2b20218538
davve
Move insertAdjacentHTML to Element
http://domparsing.spec.whatwg.org/#insertadjacenthtml()

Remove some stale comments in the process, now that we actually have a
specification. Also, IE doesn't seem to allow parsing in the void
(e.g. "afterEnd" on a detached element) anymore, at least not for
insertAdjacentHTML.

BUG=326964

Review URL: https://codereview.chromium.org/105693009

git-svn-id: svn://svn.chromium.org/blink/trunk@163529 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Generate a bit less code to handle failed arity checks.
If a failed argument count check is in the context of an 'extended'
ExceptionState object, then throw the required TypeError using it
instead. This saves having to duplicate the information it already
contains, generating a bit less code overall.

R=mkwst@chromium.org
BUG=270033

Review URL: https://codereview.chromium.org/105693002

git-svn-id: svn://svn.chromium.org/blink/trunk@163527 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Rename HTMLElement::form() to formOwner().
To make the correspondence to the underlying concept clearer, rename
form() as formOwner(). It intending to implement the spec's notion of
"form owner",

 http://www.whatwg.org/specs/web-apps/current-work/#form-owner

As part of this, as HTMLLegendElement.form implements its own notion
of 'form',

  http://www.whatwg.org/specs/web-apps/current-work/#dom-legend-form

a separate form() accessor has been introduced (rather
than co-opt formOwner().)

R=tkent@chromium.org
BUG=324828

Review URL: https://codereview.chromium.org/93723003

git-svn-id: svn://svn.chromium.org/blink/trunk@163523 bbb929c8-8fbe-4397-9dbb-9b2b20218538
davve
Make arguments to insertAdjacentHTML method non-optional
http://domparsing.spec.whatwg.org/#dom-element-insertadjacenthtml

Both Firefox and IE throws when either argument is missing.

BUG=326970

Review URL: https://codereview.chromium.org/109273003

git-svn-id: svn://svn.chromium.org/blink/trunk@163519 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
[XHR] remove now-unnecessary RaisesException attributes.
A handful of getters and methods now follow the spec and no longer
throw: synchronize their signatures and underlying IDL to reflect that
by removing [RaisesException] use.

R=tyoshino@chromium.org
BUG=

Review URL: https://codereview.chromium.org/108573002

git-svn-id: svn://svn.chromium.org/blink/trunk@163491 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Make arguments to Range methods non-optional
http://dom.spec.whatwg.org/#interface-rage
http://domparsing.spec.whatwg.org/#extensions-to-the-range-interface

Only touch methods defined by the above specs.

The added missing-arguments test passes in Firefox Nightly, IE11
Release Preview and Opera 12.16, so there ought to be fairly little
Web content depending on the old behavior.

BUG=325922

Review URL: https://codereview.chromium.org/108063005

git-svn-id: svn://svn.chromium.org/blink/trunk@163463 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
Roll Breakpad r1240:r1247.
r1247: Back out r1244
r1246: switch armv7 setting to arm_version==7 in breakpad
r1245: Add include guards and avoid redefinition of false/true in convert_UTF.
r1244: Avoid redefinition of global static debug flag and remove unneeded #import "GTMDefines.h
r1243: Do not read CFI section when not outputing CFI information.
r1242: Fix unused method warning.
r1241: Fixing several instances of wrong printf format specifiers.

BUG=234135

Review URL: https://codereview.chromium.org/100923006

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@239555 0039d316-1c4b-4281-b951-d872f2087c98
davve
Throw DOM exception in insertAdjacentHTML if context becomes null
Align first part of the insertAdjacentHTML implementation with
http://domparsing.spec.whatwg.org/#insertadjacenthtml().

"Let context be the context object's parent.

 If context is null or a document, throw a DOMException with name
 NoModificationAllowedError and terminate these steps."

While the 'or a document' part was previously implemented, the
'context is null' part was not.

BUG=326965

Review URL: https://codereview.chromium.org/110383002

git-svn-id: svn://svn.chromium.org/blink/trunk@163452 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Implement Element.matches(selectors)
http://dom.spec.whatwg.org/#dom-element-matches

No tested browser (Firefox Nightly, IE11 Release Preview, Opera 12.16)
has implemented the unprefixed API yet.

Having verified that the other browsers throw an exception for
*MatchesSelector(), make the argument to webkitMatchesSelector()
non-optional to align with them and the unprefixed API.

The spec requires throwing a TypeError when parsing the selectors
fails, but we currently throw a SyntaxError. So do the other browsers
for *MatchesSelector(), so file a spec bug instead of changing it:
https://www.w3.org/Bugs/Public/show_bug.cgi?id=24028

BUG=326652

Review URL: https://codereview.chromium.org/106983004

git-svn-id: svn://svn.chromium.org/blink/trunk@163442 bbb929c8-8fbe-4397-9dbb-9b2b20218538
joaoe
Followup for bug when zipping a folder with non-ascii chars in its name.
The commit adds a unit test and replaces the substr with the more
stylistically adequate FilePath::AppendRelativePath.

BUG=248115
TEST=ZipTest.ZipNonASCIIDir

Review URL: https://codereview.chromium.org/106663006

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@239474 0039d316-1c4b-4281-b951-d872f2087c98
ed
Add pointer-events="bounding-box" for svg content.
The 'bounding-box' keyword in 'pointer-events' enables
svg authors to leave out certain invisible 'hit-area'
elements, and instead get them generated based on the
bounding box. This is convenient for example if one wants
multiline text in svg to respond to mouse events over the
entire region it covers. Another common use-case is
groups, which are container elements. These elements
currently are not possible to target directly, since
they only get events through bubbling from their
children.

This patch makes container elements targetable if one
specifies 'pointer-events: bounding-box' on them (either
as an svg presentation attribute or in css).

The 'bounding-box' keyword is specified in SVG2, 
https://svgwg.org/svg2-draft/interact.html#PointerEventsProp. 

Note: The keyword was called 'boundingbox' in SVG Tiny 1.2,
http://www.w3.org/TR/SVGTiny12/interact.html#PointerEventsProperty,
but it was renamed to be more in sync with CSS syntax in general.

R=pdr
BUG=

Review URL: https://codereview.chromium.org/45733010

git-svn-id: svn://svn.chromium.org/blink/trunk@163425 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove TreatNullAs=NullString for CSS*Rule
http://dev.w3.org/csswg/cssom/#csscharsetrule
http://dev.w3.org/csswg/css-animations/#csskeyframesrule
http://dev.w3.org/csswg/cssom/#csspagerule
http://dev.w3.org/csswg/cssom/#cssrule
http://dev.w3.org/csswg/cssom/#cssstylerule

The tests for the updated properties pass in Firefox Nightly, IE11
Release Preview and Opera 12.16, with these exceptions:

Firefox reflects CSSCharsetRule.encoding, CSSKeyframesRule.name, and
CSSPageRule.selectorText as null, and ignores setting
CSSStyleRule.selectorText.

IE doesn't support CSSCharsetRule, throws an exception when setting
CSSPageRule.selectorText and ignores setting
CSSStyleRule.selectorText.

Opera throws an exception when setting CSSRule.cssText, ignores
setting CSSCharsetRule.encoding and throws an exception when setting
CSSPageRule.selectorText.

This is not very impressive, but since there is no attribute for which
all the other browsers agree, just going with the spec seems sound.

BUG=310298

Review URL: https://codereview.chromium.org/107313004

git-svn-id: svn://svn.chromium.org/blink/trunk@163424 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ed
Add beginEvent/endEvent listeners via the onbegin/onend attributes.
SVG2 spec: https://svgwg.org/svg2-draft/single-page.html#script-OnBeginEventAttribute
SVG 1.1 spec: http://www.w3.org/TR/SVG11/script.html#OnBeginEventAttribute

R=pdr@chromium.org, schenney@chromium.org, dschulze@chromium.org, fmalita@chromium.org
BUG=116595

Review URL: https://codereview.chromium.org/106053007

git-svn-id: svn://svn.chromium.org/blink/trunk@163419 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Improve precision of error messages from failed CORS checks.
Identify when the incoming Access-Control-Allow-Origin header value
contains multiple origin tokens and report this as not allowed.  If it
doesn't and the origin is valid, provide an error message that informs
of a mismatch between the origin strings.

The previous error message could lead users into thinking that
(white)lists of origins were supported. It is not by the spec nor
current implementations.

Removed a nearby and related FIXME; not a current concern.

R=
BUG=321517
TEST=http/tests/xmlhttprequest/origin-exact-matching

Review URL: https://codereview.chromium.org/109773002

git-svn-id: svn://svn.chromium.org/blink/trunk@163406 bbb929c8-8fbe-4397-9dbb-9b2b20218538
joaoe
Remove IO allowed assert in GetTempDir()
GetTempDir() does not do file IO, therefore it can be used from other threads
to create file paths. No other platform implementation has that assert.

Review URL: https://codereview.chromium.org/76633002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@239428 0039d316-1c4b-4281-b951-d872f2087c98
philipj
Add a UseCounter for Element.webkitMatchesSelector
http://dom.spec.whatwg.org/#dom-element-matches

Element.matches(selector) is now in DOM Standard, so the prefixed API
should be removed as soon as reality allows.

BUG=326652

Review URL: https://codereview.chromium.org/108063006

git-svn-id: svn://svn.chromium.org/blink/trunk@163375 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Make arguments to Element methods non-optional
http://dom.spec.whatwg.org/#interface-element

Only touch methods defined by the above spec.

The added missing-arguments test passes in Firefox Nightly, and
Opera 12.16. IE11 Release Preview passes all except getAttribute,
removeAttribute and setAttribute, where it returns null/undefined
instead of throwing.

Taken together, this could break IE- and Chrome-only content.

BUG=325922

Review URL: https://codereview.chromium.org/98543009

git-svn-id: svn://svn.chromium.org/blink/trunk@163374 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Add a UseCounter for Element.setAttributeNodeNS
This function was also removed from DOM4, it must have been overlooked
when the other UseCounters were added.

BUG=325922

Review URL: https://codereview.chromium.org/107093007

git-svn-id: svn://svn.chromium.org/blink/trunk@163363 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Make arguments to Node methods non-optional
http://dom.spec.whatwg.org/#interface-node

Only touch methods defined by the above spec.

The added missing-arguments test passes in Firefox Nightly, IE11
Release Preview and Opera 12.16, so there ought to be fairly little
Web content depending on the old behavior.

BUG=325922

Review URL: https://codereview.chromium.org/103613005

git-svn-id: svn://svn.chromium.org/blink/trunk@163349 bbb929c8-8fbe-4397-9dbb-9b2b20218538
joaoe
Zip utf-8 file names with encoding bit set.
This commit sets the 'locale' bit in global directory of a zip which
means that the file name was written in UTF-8. Chromium always writes
and reads zips as UTF-8 so it is not a problem per se but other, more
zip compliant, programs see packed files with wrong paths if this bit
is not set.

BUG=325737

Review URL: https://codereview.chromium.org/94093003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@239216 0039d316-1c4b-4281-b951-d872f2087c98
mostynb
OpenMAX requires armv7 or greater
BUG=234135
NOTRY=true

Review URL: https://codereview.chromium.org/106443003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@239214 0039d316-1c4b-4281-b951-d872f2087c98
philipj
Make arguments to Document methods non-optional
http://dom.spec.whatwg.org/#interface-document

Only touch methods defined by the above spec.

The added missing-arguments test passes in Firefox Nightly, IE11
Release Preview and Opera 12.16, so there ought to be fairly little
Web content depending on the old behavior.

BUG=325922

Review URL: https://codereview.chromium.org/106773003

git-svn-id: svn://svn.chromium.org/blink/trunk@163341 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Sync Document.createProcessingInstruction() with spec
http://dom.spec.whatwg.org/#dom-document-createprocessinginstruction

Firefox Nightly already passes the added tests, so we would not be the
first to adopt these changes.

BUG=325922

Review URL: https://codereview.chromium.org/100433004

git-svn-id: svn://svn.chromium.org/blink/trunk@163335 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Convert a few tests from CRLF to LF line endings
The CRLF line endings seemingly cause the apply_issue step to fail in
trybot runs for https://codereview.chromium.org/106773003

BUG=none
R=arv@chromium.org

Review URL: https://codereview.chromium.org/107393002

git-svn-id: svn://svn.chromium.org/blink/trunk@163305 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove TreatNullAs=NullString for URLUtils.href
http://url.spec.whatwg.org/#urlutils

The updated element-attribute-js-null tests pass in Firefox Nightly,
IE11 Release Preview and Opera 12.16.

No other browser passes the URL.href test, because Firefox throws when
setting a non-valid URL, while IE and Opera don't even support the URL
constructor.

BUG=310298

Review URL: https://codereview.chromium.org/105823005

git-svn-id: svn://svn.chromium.org/blink/trunk@163294 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Add UseCounters for HTMLElement.innerText and .outerText
There is no specification for this yet, and there's a chance that
at least outerText is used little enough to be removed.

All major engines except Gecko have some implementation:
https://bugzilla.mozilla.org/show_bug.cgi?id=264412

BUG=none

Review URL: https://codereview.chromium.org/104713004

git-svn-id: svn://svn.chromium.org/blink/trunk@163289 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Add 'exposed' objects and embeds to a document's named properties.
The spec tells us that exposed <embed> and <object> are to be included
in a document's "supported property names"

  http://www.whatwg.org/specs/web-apps/current-work/#dom-document-nameditem
  http://www.whatwg.org/specs/web-apps/current-work/#exposed

(along with various other side conditions.) 

crbug.com/313292 retired a partial notion of "exposed"ness, this
provides an implementation close to the spec's definition.

R=
BUG=316988

Review URL: https://codereview.chromium.org/75273004

git-svn-id: svn://svn.chromium.org/blink/trunk@163287 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove WTF::textAtom and WTF::commentAtom
These are only used in implementations of Node::nodeName(), where
CDATASection, Document and DocumentFragment already use raw strings.

Added in <https://trac.webkit.org/changeset/9639>, at which point both
atoms were used in multiple places. Previously raw strings were used.

BUG=none

Review URL: https://codereview.chromium.org/106483002

git-svn-id: svn://svn.chromium.org/blink/trunk@163281 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Let Node.textContent never throw
http://dom.spec.whatwg.org/#dom-node-textcontent

This is per the spec. The only case where it could previously have
thrown is if ContainerNode::checkAcceptChild returned false. I could
not find a situation where that would have happened, so just assert
that the internal appendChild call does not throw an exception.

BUG=326133
TEST=none

Review URL: https://codereview.chromium.org/106503002

git-svn-id: svn://svn.chromium.org/blink/trunk@163275 bbb929c8-8fbe-4397-9dbb-9b2b20218538
tmoniuszko
Stack at top functionality for Aura-based windows
Implementation of previously empty DesktopNativeWidgetAura::StackAtTop()
method.

BUG=

Review URL: https://codereview.chromium.org/32393002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@238978 0039d316-1c4b-4281-b951-d872f2087c98
philipj
Remove fourth argument to createNodeIterator/createTreeWalker
http://dom.spec.whatwg.org/#dom-document-createnodeiterator
http://dom.spec.whatwg.org/#dom-document-createtreewalker

As shown by the test cases, the extra argument is ignored, so it does
not need to be in the IDL in order to be compatible with legacy code.

BUG=325922

Review URL: https://codereview.chromium.org/106423002

git-svn-id: svn://svn.chromium.org/blink/trunk@163271 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Let Node.nodeName never return null
http://dom.spec.whatwg.org/#dom-node-nodename

Since I could not find any case where it would currently return null, no
observable diference is expected and no tests were added.

Also remove an outdated comment.

BUG=none
TEST=none

Review URL: https://codereview.chromium.org/105733008

git-svn-id: svn://svn.chromium.org/blink/trunk@163269 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Use the return value to signal success for VTTParser helpers
Convert functions on the form:

ValueType f(..., bool& success);

to the form:

bool f(..., ValueType& value);

Since the latter form tend to integrate more naturally in a
success/failure parsing scheme.
Make sure that the output value is not touched unless parsing was
successful.
Perform some (minor) simplifications due to this change.

Also simplify the check for a trailing '%' in parseFloatPercentageValue.

BUG=305317

Review URL: https://codereview.chromium.org/104713002

git-svn-id: svn://svn.chromium.org/blink/trunk@163248 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Have preloader handle crossorigin resources better.
Make the preloading of resources understand CORS better:

 - correctly interpret a 'crossorigin' attribute without a value
   as "anonymous".
 - enable a CORS fetch if the attribute was present. For <script>
   and <img>, currently.

R=
BUG=324974

Review URL: https://codereview.chromium.org/104943004

git-svn-id: svn://svn.chromium.org/blink/trunk@163210 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
remove arm_version==5 configuration, since it's no longer supported
Since armv5 builds are no longer supported (due to being dropped by V8),
let's remove a stray arm_version==5 section from the build configration.

BUG=234135

Review URL: https://codereview.chromium.org/104803002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@238725 0039d316-1c4b-4281-b951-d872f2087c98
philipj
Tweak TextTrackCue/VTTCue virtual functions
Remove unreachable implementations and remove toString from release.

BUG=270340

Review URL: https://codereview.chromium.org/104473002

git-svn-id: svn://svn.chromium.org/blink/trunk@163184 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Merge bools into bit fields in TextTrackCue and VTTCue
On x86_64 Linux, this reduces sizeof(VTTCue) from 248 to 232.
This does likely not result in real runtime savings, but is a
step back from 256, where a real memory increase is likely.

BUG=none

Review URL: https://codereview.chromium.org/104243003

git-svn-id: svn://svn.chromium.org/blink/trunk@163183 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove TreatNullAs=NullString for Element.id and .className
http://dom.spec.whatwg.org/#interface-element

The tests for the updated properties FAIL in Firefox Nightly, IE11
Release Preview and Opera 12.16, with the exception of the id test
in Firefox.

This is because id and className are not on the Element interface
in these browsers, if the test is modified to create a HTMLElement
then tests for both attributes pass in all browsers.

BUG=310298

Review URL: https://codereview.chromium.org/104263002

git-svn-id: svn://svn.chromium.org/blink/trunk@163182 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Simplify VTTParser::collectTimeStamp
Drop the various "is next character and ASCII digit" test that precede
calls to collectDigitsToInt. The latter will perform both the
"out of input" and "is ASCII digit" checks via collectDigits.

BUG=305317

Review URL: https://codereview.chromium.org/104443002

git-svn-id: svn://svn.chromium.org/blink/trunk@163174 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Add a UseCounter for HTMLHtmlElement.manifest
http://whatwg.org/html#attr-html-manifest

The spec says "The manifest attribute only has an effect during the
early stages of document load. Changing the attribute dynamically thus
has no effect (and thus, no DOM API is provided for this attribute)."

Added in <http://trac.webkit.org/changeset/66327> and confirmed by
Darin Adler to be unintentional.

BUG=325420

Review URL: https://codereview.chromium.org/100953004

git-svn-id: svn://svn.chromium.org/blink/trunk@163170 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ed
Add UseCounter for SVGPoint.matrixTransform.
Requested by https://www.w3.org/Graphics/SVG/WG/track/actions/3534.

R=pdr,krit
BUG=

Review URL: https://codereview.chromium.org/104023003

git-svn-id: svn://svn.chromium.org/blink/trunk@163164 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
Roll libjpeg_turbo DEPS to r238478
Update libjpeg_turbo to get this CL:
https://codereview.chromium.org/95883002/

BUG=234135

Review URL: https://codereview.chromium.org/99073007

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@238662 0039d316-1c4b-4281-b951-d872f2087c98
fs
Make VTTParser::collectDigitsToInt non-copying
Modify VTTParser::collectDigits to simply count the number of digits and
advance the position. Rename it to scanDigits and make it local to the
compilation unit.
Convert users of collectDigits to use scanDigits instead. For
collectDigitsToInt this means that there's no longer a need to copy the
digits into a temporary String. Similarly for parseFloatPercentageValue.

Also fixes a minor issue in parseFloatPercentageValue where the endpoints
(0 and 100) were excluded from the range of valid values rather than
included.

BUG=305317

Review URL: https://codereview.chromium.org/102403002

git-svn-id: svn://svn.chromium.org/blink/trunk@163160 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove TextTrackCueBox
It is only used by the VTT code, so keep only VTTCueBox.

BUG=270340

Review URL: https://codereview.chromium.org/102073002

git-svn-id: svn://svn.chromium.org/blink/trunk@163149 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
TODO: remove armv7 setting
Leave a TODO note in build/common.gypi to remove this obsolete armv7
setting, once all uses of it are removed.

BUG=234135

Review URL: https://codereview.chromium.org/103203002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@238643 0039d316-1c4b-4281-b951-d872f2087c98
philipj
Add a UseCounter for the overflowchanged event
By request from PhistucK:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/uaQHXAtaQCg/m46ZdQU3K1IJ

BUG=none

Review URL: https://codereview.chromium.org/102793003

git-svn-id: svn://svn.chromium.org/blink/trunk@163128 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove TreatNullAs=NullString for HTMLElement
http://whatwg.org/html#htmlelement

Leave [TreatNullAs=NullString] on innerText/outerText, since they're
non-standard properties which need special investigation.

Split the tests for Element into a separate block for clarity.

The tests for the updated properties pass in Firefox Nightly, IE11
Release Preview and Opera 12.16, with these exceptions:

Firefox reflects dir as "" and innerText as null.

IE throws an exception for dir and reflects innerText as "null".

No tested browser throws an exception when setting outerHTML/outerText
to null, but ignore that since the behavior wasn't change here.

BUG=310298

Review URL: https://codereview.chromium.org/102763002

git-svn-id: svn://svn.chromium.org/blink/trunk@163116 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove TextTrackCue::isVTTCue
It is unused, as virtual functions are used instead of casting.

BUG=270340

Review URL: https://codereview.chromium.org/102003002

git-svn-id: svn://svn.chromium.org/blink/trunk@163113 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Add new helper VTTParser::collectDigitsToInt
Since most uses of VTTParser::collectDigits is followed by a call to
String::toInt on the resulting string, add this new helper with the
aim of later removing the temporary string construction.
Handle overflow in the string-to-int conversion by means of saturation.
(The latter is the intended change of semantics.)

Replace uses of collectDigits with collectDigitsToInt where applicable.
After doing this, there remain no callers to collectDigits outside of
VTTParser, so make the function static.

Also move VTTParser::skipWhiteSpace "textually" to group it with the other
'scanning' functions, and make it static since it does not depend on any
VTTParser state.

BUG=305317

Review URL: https://codereview.chromium.org/101513002

git-svn-id: svn://svn.chromium.org/blink/trunk@163098 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Add a UseCounter for HTMLHeadElement.profile
http://whatwg.org/html#htmlheadelement

The profile attribute is not in the spec and not supported by
Opera 12.16 or Firefox Nightly. It is supported by IE11 Release
Preview. Add a counter to see if we can remove it.

IE11 reflects null as 'null', not '', but leave that for now.

BUG=none

Review URL: https://codereview.chromium.org/101433002

git-svn-id: svn://svn.chromium.org/blink/trunk@163097 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove TreatNullAs=NullString for HTMLTextAreaElement
http://whatwg.org/html#htmltextareaelement

The value attribute has [TreatNullAs=EmptyString] in the spec.

The tests for the updated properties pass in Firefox Nightly, IE11
Release Preview and Opera 12.16, with these exceptions:

Firefox does not support dirName or inputMode.

IE does not support dirName or inputMode, reflects value as 'null',
and throws an exception for wrap.

Opera does not support inputMode.

BUG=310298

Review URL: https://codereview.chromium.org/101423002

git-svn-id: svn://svn.chromium.org/blink/trunk@163094 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove TreatNullAs=NullString for HTMLSelectElement
http://whatwg.org/html#htmlselectelement

The value attribute returns "" when there is no selected child
<option> element, so add another test to verify that null
stringifies to "null" on setting.

The tests for the updated properties pass in Firefox Nightly, IE11
Release Preview and Opera 12.16.

BUG=310298

Review URL: https://codereview.chromium.org/101573002

git-svn-id: svn://svn.chromium.org/blink/trunk@163087 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove TreatNullAs=NullString for HTMLHeadingElement
http://whatwg.org/html#HTMLHeadingElement-partial

The updated test passes in Firefox Nightly and Opera 12.16,
but throws an exception in IE.

BUG=310298

Review URL: https://codereview.chromium.org/101193003

git-svn-id: svn://svn.chromium.org/blink/trunk@163083 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jiangj
Fix typeahead for popup menu with attributes
Popup menu item with attributes (<optgroup> for instance) will
break typeahead matching support on Mac. Use the same trick Apple
uses in WebKit2 [1] to fix this.

BUG=90064

[1] http://trac.webkit.org/browser/trunk/Source/WebKit2/UIProcess/mac/WebPopupMenuProxyMac.mm#L90

Review URL: https://codereview.chromium.org/99043003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@238377 0039d316-1c4b-4281-b951-d872f2087c98
philipj
Remove TreatNullAs=NullString for HTMLHtmlElement
http://whatwg.org/html#HTMLHtmlElement-partial

The manifest attribute is not in the spec, so leave it alone pending a
decision about what to do with it:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/dSTAYLhhV3o/2Sh66-B7oAIJ

The test passes in Firefox Nightly, IE11 Release Preview and Opera 12.16.

BUG=310298

Review URL: https://codereview.chromium.org/101153003

git-svn-id: svn://svn.chromium.org/blink/trunk@163082 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove TreatNullAs=NullString for HTMLTable*Element
http://whatwg.org/html#HTMLTableCaptionElement-partial
http://whatwg.org/html#htmltablecellelement
http://whatwg.org/html#HTMLTableCellElement-partial
http://whatwg.org/html#htmltableheadercellelement
http://whatwg.org/html#HTMLTableDataCellElement-partial
http://whatwg.org/html#HTMLTableColElement-partial
http://whatwg.org/html#HTMLTableElement-partial
http://whatwg.org/html#HTMLTableRowElement-partial
http://whatwg.org/html#HTMLTableSectionElement-partial

The spec has HTMLTableDataCellElement and HTMLTableHeaderCellElement
interfaces which we don't have yet, but ignore that here.

HTMLTable*Element.bgColor and HTMLTableElement.cellPadding/cellSpacing
have [TreatNullAs=EmptyString] in the spec.

HTMLTableCellElement.headers is a DOMSettableTokenList in the spec, so
leave it alone until that is fixed.

The tests for the updated properties pass in Firefox Nightly, IE11
Release Preview and Opera 12.16, with these exceptions:

IE throws an exception for the align/vAlign/frame/rules, and reflects
border/width/height as the empty string.

BUG=310298

Review URL: https://codereview.chromium.org/101493002

git-svn-id: svn://svn.chromium.org/blink/trunk@163081 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove TreatNullAs=NullString for HTMLObjectElement
http://whatwg.org/html#htmlobjectelement
http://whatwg.org/html#HTMLObjectElement-partial

Make the codebase attribute reflect as a URL, as per spec.

The border attribute has [TreatNullAs=EmptyString] in the spec.

The tests for the updated properties pass in Firefox Nightly, IE11
Release Preview and Opera 12.16, with these exceptions:

Firefox reflect code as a URL.

IE throws an exception for align, doesn't reflect codeBase as a URL,
and reflects width/height as the empty string.

BUG=310298

Review URL: https://codereview.chromium.org/99233002

git-svn-id: svn://svn.chromium.org/blink/trunk@163037 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove TreatNullAs=NullString for HTMLScriptElement
http://whatwg.org/html#htmlscriptelement
http://whatwg.org/html#HTMLScriptElement-partial

The nonce attribute is experimental and not in the HTML spec, but
remove [TreatNullAs=NullString] anyway since it's hardly intended.

The tests for the updated properties pass in Firefox Nightly, IE11
Release Preview and Opera 12.16, with these exceptions:

Firefox does not support nonce.

IE does not support crossOrigin or nonce.

Opera throws an exception when setting text, and does not support
htmlFor, event, crossOrigin or nonce.

BUG=310298

Review URL: https://codereview.chromium.org/98543006

git-svn-id: svn://svn.chromium.org/blink/trunk@163036 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove TreatNullAs=NullString for HTMLMarqueeElement
http://whatwg.org/html#htmlmarqueeelement

Very few of the tests pass in any other browser, with little
agreement between them. There might be spec or implementation
work to do here, but this change is likely safe regardless.

BUG=310298

Review URL: https://codereview.chromium.org/98893003

git-svn-id: svn://svn.chromium.org/blink/trunk@163035 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove TreatNullAs=NullString for HTMLInputElement
http://whatwg.org/html#htmlinputelement
http://whatwg.org/html#HTMLInputElement-partial

The value attribute has [TreatNullAs=EmptyString] in the spec, so
leave it with [TreatNullAs=NullString] even though that doesn't
exactly match the spec, to be fixed in a later commit.

The tests for the updated properties pass in Firefox Nightly, IE11
Release Preview and Opera 12.16, with these exceptions:

Firefox reflects autocomplete as the empty string, and doesn't support
dirName.

IE throws an exception for align/type, doesn't support dirName, and
doesn't reflect formAction as a URL.

Opera doesn't reflect formAction as a URL, and reflects min/max as the
empty string.

BUG=310298

Review URL: https://codereview.chromium.org/98383004

git-svn-id: svn://svn.chromium.org/blink/trunk@163033 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove TreatNullAs=NullString for various HTML elements
http://whatwg.org/html#htmllabelelement
http://whatwg.org/html#HTMLLegendElement-partial
http://whatwg.org/html#htmlmapelement
http://whatwg.org/html#htmloptgroupelement
http://whatwg.org/html#htmlstyleelement
http://whatwg.org/html#htmltitleelement

The tests for the updated properties pass in Firefox Nightly, IE11
Release Preview and Opera 12.16, with these exceptions:

IE throws an exception for HTMLLegendElement.align.

BUG=310298

Review URL: https://codereview.chromium.org/99103002

git-svn-id: svn://svn.chromium.org/blink/trunk@163009 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove TreatNullAs=NullString for HTMLParamElement
http://whatwg.org/html#htmlparamelement
http://whatwg.org/html#HTMLParamElement-partial

The tests for the updated properties pass in Firefox Nightly, IE11
Release Preview and Opera 12.16.

BUG=310298

Review URL: https://codereview.chromium.org/99353002

git-svn-id: svn://svn.chromium.org/blink/trunk@163007 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ed
Add UseCounter for SVGLocatable.{nearest,farthest}ViewportElement
BUG=
R=pdr,schenney

Review URL: https://codereview.chromium.org/98573003

git-svn-id: svn://svn.chromium.org/blink/trunk@163005 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove TreatNullAs=NullString for HTMLOutputElement
http://whatwg.org/html#htmloutputelement

The tests for the updated properties pass in Firefox Nightly, IE11
Release Preview and Opera 12.16, with these exceptions:

IE does not support HTMLOutputElement at all.

BUG=310298

Review URL: https://codereview.chromium.org/99313002

git-svn-id: svn://svn.chromium.org/blink/trunk@163002 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove TreatNullAs=NullString for HTMLMetaElement
http://whatwg.org/html#the-meta-element
http://whatwg.org/html#HTMLMetaElement-partial

The tests for the updated properties pass in Firefox Nightly, IE11
Release Preview and Opera 12.16.

BUG=310298

Review URL: https://codereview.chromium.org/99203002

git-svn-id: svn://svn.chromium.org/blink/trunk@162999 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove TreatNullAs=NullString for HTMLModElement
http://whatwg.org/html#htmlmodelement

The tests for the updated properties pass in Firefox Nightly, IE11
Release Preview and Opera 12.16.

BUG=310298

Review URL: https://codereview.chromium.org/99213002

git-svn-id: svn://svn.chromium.org/blink/trunk@162997 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove TreatNullAs=NullString for HTMLLinkElement
http://whatwg.org/html#htmllinkelement
http://whatwg.org/html#HTMLLinkElement-partial

The tests for the updated properties pass in Firefox Nightly, IE11
Release Preview and Opera 12.16.

BUG=310298

Review URL: https://codereview.chromium.org/98313003

git-svn-id: svn://svn.chromium.org/blink/trunk@162996 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove TreatNullAs=NullString for HTMLKeygenElement
http://whatwg.org/html#htmlkeygenelement

The tests for the updated properties pass in Firefox Nightly, IE11
Release Preview and Opera 12.16, with these exceptions:

Firefox and IE support none of the attributes and thus fail all tests.

Opera reflects keytype as the empty string.

BUG=310298

Review URL: https://codereview.chromium.org/98543003

git-svn-id: svn://svn.chromium.org/blink/trunk@162995 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Cleanups for VTTTokenizer
Get rid of VTTTokenizer::m_token, and hence remove the need to play
games with pointers to the resulting token, since the token is now
produced at the end of VTTTokenizer::nextToken. This renders the reset()
method empty (and it wasn't previously used outside of VTTTokenizer), so
remove it.

Make a local, tailored, version of the ADVANCE_TO macro to get rid of the
redundant check of advance(). This in turn allows removing the (now
useless) part of the scaffolding which is haveBufferedCharacterToken(),
as well as turning VTTTokenizer::m_state into the local 'state' and
moving the definition of the state enumeration into the cpp-file.
This also means the state defintions can be moved from the header-file,
so do that as well.

BUG=319391

Review URL: https://codereview.chromium.org/98763004

git-svn-id: svn://svn.chromium.org/blink/trunk@162994 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove TreatNullAs=NullString for HTMLImageElement
http://whatwg.org/html#htmlimageelement
http://whatwg.org/html#HTMLImageElement-partial

Take the opportunity to move standardized attributes into the main
block and sort it.

The border attribute has [TreatNullAs=EmptyString] in the spec.

The tests for the updated properties pass in Firefox Nightly, IE11
Release Preview and Opera 12.16, with these exceptions:

Firefox and Opera do not reflect lowsrc as a URL, and do not support
srcset.

IE throws an exception for align and does not support srcset.

BUG=310298

Review URL: https://codereview.chromium.org/98833002

git-svn-id: svn://svn.chromium.org/blink/trunk@162990 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove TreatNullAs=NullString for HTMLHRElement
http://whatwg.org/html#HTMLHRElement-partial

Also add the missing color attribute.

The tests for the updated properties pass in Firefox Nightly, IE11
Release Preview and Opera 12.16, with these exceptions:

IE throws an exception for align and reflects color/size/width as
the empty string.

Opera does not support the color attribute.

BUG=310298

Review URL: https://codereview.chromium.org/98723003

git-svn-id: svn://svn.chromium.org/blink/trunk@162989 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Make HTMLOptionsCollection report TypeErrors.
Switch exceptions to throw TypeError instead of TypeMismatchError when
handling incorrectly typed values over HTMLOptionsCollection methods
and accessors. This aligns behavior with WebIDL, Gecko and Trident.

(Change also includes a drive-by fix to the TextTrackCue constructor
error message.)

R=mkwst
BUG=270033

Review URL: https://codereview.chromium.org/98783003

git-svn-id: svn://svn.chromium.org/blink/trunk@162988 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
WebVTT only allows <rt> if the currently innermost node is <ruby>
If <rt> is encountered and the current node isn't <ruby>, then drop the
<rt>.

Fixes tc023 to not expect an <rt>.

BUG=321038

Review URL: https://codereview.chromium.org/98783005

git-svn-id: svn://svn.chromium.org/blink/trunk@162985 bbb929c8-8fbe-4397-9dbb-9b2b20218538
davve
Get rid of extra NULL check when indexing CSSStyleDeclaration
In order to minimize the performance impact of added UseCounters in
https://codereview.chromium.org/47923015, remove one superfluous NULL
check. We always NULL check propInfo before use anyway.

BUG=313864

Review URL: https://codereview.chromium.org/98793002

git-svn-id: svn://svn.chromium.org/blink/trunk@162983 bbb929c8-8fbe-4397-9dbb-9b2b20218538
davve
Avoid using non-standard property names in test
For bug 290055, two use counters was added for how CSSStyleDeclaration
is indexed. One is using non-standard literal names for the CSS
properties, i.e using elt.style['font-size'] instead of
elt.style['fontSize']. The other one is using 'float' instead of
'cssFloat'. Avoid measuring the use counter code in performance tests
by using the standard names instead.

BUG=313864

Review URL: https://codereview.chromium.org/98733002

git-svn-id: svn://svn.chromium.org/blink/trunk@162981 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Remove structured cloning restriction over accessor properties.
The structured cloning algorithm,

 http://www.whatwg.org/specs/web-apps/current-work/#safe-passing-of-structured-data

treats accessor and non-accessor properties the same on an object
being cloned. For a short two month period, the spec'ed algorithm
imposed a stringent restriction on the cloning of accessor properties
-- no accessor property value could appear within/inside the value of
another accessor property. If any did, their values were mapped to
'null'; see

 https://www.w3.org/Bugs/Public/show_bug.cgi?id=12101

The structured cloning implementation provided this; a change that was
subsequently reverted and generalized to allow accessor properties to
be cloned without any side conditions on how they are nested. Follow
up on that spec change here and do the same. Other depth controls on
nested object structures are still effective.

R=mkwst
BUG=278883

Review URL: https://codereview.chromium.org/97883002

git-svn-id: svn://svn.chromium.org/blink/trunk@162969 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Fix BiDi paragraph embedding level resolution for VTTCue
Iterate over code points rather than (UTF-16) code units.
Make determineTextDirection side-effect free and local to the compilation
unit.
Re-uses the BidiResolver to do the actual work, and removes the
concatenation of the textnodes.

BUG=322051

Review URL: https://codereview.chromium.org/81133002

git-svn-id: svn://svn.chromium.org/blink/trunk@162920 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Fix corner-cases for WebVTT tokenizer escape handling
Handle cases such as "&<", "&&", "&" followed by non-alphanumeric
characters (and similar variations).

Fix test tc022 which assumed that a single "&" would be ignored.

TEST=media/track/opera/track/webvtt/parsing-cue-data/tests/entities.html
BUG=321139

Review URL: https://codereview.chromium.org/97103002

git-svn-id: svn://svn.chromium.org/blink/trunk@162918 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Fix tag closing issues in the WebVTT tree builder
An end tag </foo> that does not match the currently open element should
be dropped.

An exception to the above however, is the </ruby> end tag which also
closes any currently open <rt>.

BUG=321038

Review URL: https://codereview.chromium.org/96933004

git-svn-id: svn://svn.chromium.org/blink/trunk@162917 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Handle surrogates in BidiResolver::determineParagraphDirectionality
TEST=unittest:BidiResolver.ParagraphDirectionSurrogates
BUG=322051

Review URL: https://codereview.chromium.org/83443002

git-svn-id: svn://svn.chromium.org/blink/trunk@162915 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Switch custom XMLHttpRequest bindings over to new-style ExceptionState.
Configure incoming ExceptionState with the calling context instead of
detailing at the point where the exception is raised.

To support throwing context-sensitive TypeErrors, extend
ExceptionState::throwTypeError() to also embellish its incoming
messages.

R=mkwst
BUG=270033

Review URL: https://codereview.chromium.org/96793002

git-svn-id: svn://svn.chromium.org/blink/trunk@162909 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Switch HTMLCanvasElement over to new-style ExceptionState.
Set up the calling context on toDataURL()'s incoming ExceptionState
instead, for tidier generation of a possible SecurityError exception.

To support throwing context-sensitive SecurityErrors, extend
throwSecurityError() to also embellish its incoming messages.

R=
BUG=270033

Review URL: https://codereview.chromium.org/96203003

git-svn-id: svn://svn.chromium.org/blink/trunk@162887 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjorn
Avoid silly crash in ContextFeatures::urlDidChange
BUG=294180

Review URL: https://codereview.chromium.org/75383002

git-svn-id: svn://svn.chromium.org/blink/trunk@162884 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Improve handling of dictionary conversions.
When generating bindings for the dictionaries that Event constructors
take, emit code that enforce the required conversion step as per
WebIDL. i.e., if the property fails to convert, emit the required
(TypeError) exception and fail.

Previously these were mapped to empty/zero/null instead.

R=
BUG=323036

Review URL: https://codereview.chromium.org/85263002

git-svn-id: svn://svn.chromium.org/blink/trunk@162859 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
DPCHECK known conditions when we guess false in CurrentProcessHasOpenDirectories
openat(AT_FDCWD, "/proc/self/fd", ...) can fail if we have been chrooted
(eg into /proc/self/fdinfo) without directory listing permissions on the
new root dir (hence EACCES).  And even if we did have this permission,
/proc wouldn't exist (hence ENOENT).

TEST=Make a debug build or a release build with dcheck_always_on=1 and verify that this DPCHECK does not fail.

BUG=314985

Review URL: https://codereview.chromium.org/59763014

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@237766 0039d316-1c4b-4281-b951-d872f2087c98
sigbjornf
Derive the step base for an input element as (now) specified.
Determine the step base for an input element per spec,

  http://www.whatwg.org/specs/web-apps/current-work/#concept-input-min-zero

That is, consult the 'value' attribute if 'min' is not present, and
then fallback to the default step base for the input type if that
isn't present either. Previously, 'value' was not considered.

R=
BUG=257369

Review URL: https://codereview.chromium.org/83413002

git-svn-id: svn://svn.chromium.org/blink/trunk@162733 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Improve fidelity of XHR progress events.
When dispatching XMLHttpRequest progress events, for upload as well as
normal/download, supply the required 'loaded' and 'total' properties
on the events, if available, for better reporting to scripts.

Previously just left as 0. The new behavior mirrors what other
implementations are doing.

R=tyoshino,abarth
BUG=318727

Review URL: https://codereview.chromium.org/79953004

git-svn-id: svn://svn.chromium.org/blink/trunk@162689 bbb929c8-8fbe-4397-9dbb-9b2b20218538
davve
Factor out common BorderImageLength code in CSSToStyleMap
CSSToStyleMap::mapNinePieceImageQuad had a lot of repetitive code for
BorderImageLength. Factor it out to a static function.

Afterwards, the default constructor for BorderImageLengthBox gets used
less so make the code more explicit by removing the default
constructor entirely. Instead add a constructor that initializes the
members to a specific value.

Since this revealed one error in a code comment (the initial value for
-webkit-mask-box-image-width is 'auto' not zero) fix that as well.

BUG=322014

Review URL: https://codereview.chromium.org/81123002

git-svn-id: svn://svn.chromium.org/blink/trunk@162646 bbb929c8-8fbe-4397-9dbb-9b2b20218538
davve
Test rendering of non-integer border-image-width values
Compare computed non-integer border-image-width values with the
rendering of the respective computed border-width value.

BUG=318081

Review URL: https://codereview.chromium.org/81163002

git-svn-id: svn://svn.chromium.org/blink/trunk@162635 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Correctly resolve empty script URLs in Worker constructors.
When creating workers via thei constructors, the spec permits empty
strings to be given to the URL resolution step,

  http://www.whatwg.org/specs/web-apps/current-work/multipage/workers.html#dedicated-workers-and-the-worker-interface
  (or http://dev.w3.org/html5/workers/#dedicated-workers-and-the-worker-interface .)
  [ The shared worker case just below has the same resolution step. ]

Resolving such an URL should result in the base URL being
returned. Align with this, and drop restriction on the string having
to be non-empty. This mirrors how Gecko, Trident and Presto behaves.

It also aligns with how importScripts() behaves when resolving its
arguments.

R=
BUG=301575

Review URL: https://codereview.chromium.org/84423002

git-svn-id: svn://svn.chromium.org/blink/trunk@162624 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Have the HTMLSelectElement setter throw TypeError.
If an argument that fails to convert to 'HTMLOptionElement?' is passed
to the option setter/remover on HTMLSelectElement, throw TypeError.

This follows WebIDL and Gecko. Other implementations don't throw, but
ignore such operations.

R=
BUG=270033

Review URL: https://codereview.chromium.org/83743002

git-svn-id: svn://svn.chromium.org/blink/trunk@162559 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
fix "may be used uninitialized" warnings for older compilers
This small change keeps some slightly older compilers happy (gcc 4.5).

Review URL: https://codereview.chromium.org/78863002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@236769 0039d316-1c4b-4281-b951-d872f2087c98
fs
Turn VTTToken into an immutable object
With the data-handling in VTTTokenizer::nextToken simplified to use
fewer entrypoints on VTTToken, it becomes easier to simply remove
intermediate buffers/StringBuilders from the token type, and instead
store them on the stack of nextToken().

Remove appendToData() from VTTToken, and replace it with append()s
on a local StringBuilder instead. Treat addNew{Class,Annotation}
similarly. The "new" StringBuilders are named as the corresponding
"strings" in the spec text.

This means that VTTToken can be turned into a "data blob" that is
created by the tokenizer and passed back to the caller.

BUG=319391

Review URL: https://codereview.chromium.org/81113003

git-svn-id: svn://svn.chromium.org/blink/trunk@162548 bbb929c8-8fbe-4397-9dbb-9b2b20218538
davve
Add tests for negative border-image-width and border-image-outset
BUG=318081

Review URL: https://codereview.chromium.org/79543006

git-svn-id: svn://svn.chromium.org/blink/trunk@162531 bbb929c8-8fbe-4397-9dbb-9b2b20218538
joaoe
Added RefCountedMallocedMemory
Which takes ownership over a chunk of memory allocated with malloc or calloc
and must then be freed using free().

Review URL: https://codereview.chromium.org/78603002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@236675 0039d316-1c4b-4281-b951-d872f2087c98
sigbjornf
Test Canvas tainting and WebGL video textures (CORS fetched.)
Verify that cross-origin video resources follow the required Canvas
tainting rules when included in textures via texImage2D().

R=kbr
BUG=173727

Review URL: https://codereview.chromium.org/80263004

git-svn-id: svn://svn.chromium.org/blink/trunk@162487 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Remove state-specific appendTo*/begin* methods from VTTToken
VTTToken has a number of methods that's only intended for use in
specific states (and for specific token-types). The naming pattern is
appendTo*. After earlier changes, most of these are simple oneliner
wrappers that simply append to the VTTToken::m_data buffer.
Moving towards an implementation that more closely follow (and resemble)
the spec wording, these methods present a problem (and contribute to
making the code unnecessarily complex).

Replace all appendTo*(...) with appendToData(...), and hoist any ASSERTs
into the calling code and simplify them where possible/reasonable.

For appendTo{Class,Annotation}, doing this it becomes apparent that
VTTToken::m_currentBuffer is redundant with m_buffer, so remove the
former in favor of the latter.

BUG=319391

Review URL: https://codereview.chromium.org/78833002

git-svn-id: svn://svn.chromium.org/blink/trunk@162477 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Fix spelling in tainted canvas error message.
R=
BUG=152212

Review URL: https://codereview.chromium.org/80363002

git-svn-id: svn://svn.chromium.org/blink/trunk@162459 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Block execution of failed 'crossorigin' <script>s.
The HTML spec tells us that if a script element has a 'crossorigin'
attribute, a potentially CORS enabled fetch of its source URL must be
performed:

 http://www.whatwg.org/specs/web-apps/current-work/multipage/scripting-1.html#dfnReturnLink-39
 http://www.whatwg.org/specs/web-apps/current-work/multipage/fetching-resources.html#potentially-cors-enabled-fetch

If the CORS cross-origin request status of that fetch is not a success
due to a failed CORS resource sharing check, the implementation must
act as if no script resource has been obtained.

No such CORS check was in place for parser inserted elements, allowing
a cross-origin CORS resource that either didn't permit the script
access or the resource wasn't CORS enabled, to load in the presence of
'crossorigin'.

Address this here by interposing a CORS check prior to starting script
execution. This (tries) to mirror how the operations are sequenced in
the underlying spec.

Specifically,

  ScriptLoader::executePotentiallyCrossOriginScript()

now performs the needed access check for fetched scripts _if_ the
fetch was initiated as potentially CORS-enabled. That is, if the
script was fetched from same-origin or the CORS check passes in the
cross-origin case, then script execution can go ahead. If not and a
cross-origin script, a console error message is added and an error
event is dispatched. Script execution does not go ahead.

To support the above, the ResourceFetcher::canAccess() predicate over
resources now needs to be informed if the resource fetch was initiated
in a potentially CORS enabled manner. If it was, the required CORS
resource sharing check will be performed.

By making the "CORS enabled" property of a fetch something that a
loader keeps separate from the (potentially cached) resource, we can
simplify the underlying structure a bit, removing the
RequestOriginPolicy portion from the resource options.

As a result, FetchRequest now instead keeps track of any origin
restrictions of the fetch resource + the canAccess() predicate must be
supplied with the "CORS enabled" setting to use when checking access
to the actual resource.

R=mkwst,abarth
BUG=286684

Review URL: https://codereview.chromium.org/47923008

git-svn-id: svn://svn.chromium.org/blink/trunk@162417 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Defer setting type in the WebVTT tokenizer until emitting the token
Remove setting of the token type from begin* (and analog) methods
in VTTToken, and add a new setType. Call setType from the
token-emitting methods in VTTTokenizer. Remove ASSERTs that no
longer apply.

Because of this change, VTTTokenizer::haveBufferedCharacterToken
can no longer return a value based on the type of token - make it return
false always (there should never be a buffered character token - a token
should be emitted after each and every call to nextToken that returns
true). This also means that "EOF" (read: end-of-string) handling needs to
be improved. Adopt the method from the HTML parser, that appends a segment
with an EOF marker (a NUL) to the input, and adjust EOF handling to match
(make sure to consume the EOF, and exit early and return false if
encountering a EOF mark at the start of the FSM). While doing this,
also hide the "implementation detail" that SegmentedString is used, by
just passing a String to the tokenizer via the constructor.

After doing the above, it becomes apparent that the EndTagOpenState is
redundant with the EndTagState, so they can be merged. (The former state
does not appear in the spec text.)

A number of end-of-input cases are fixed:

tags.html - "<c." now parses correctly.
timestamp.html - "<00:00:00.500" now parses correctly.

New tests:

entities.html - (A number of FAIL -> PASS transitions here compared to
               previously - due to actually setting the correct token-
               type for content with only an entity (or something looking
               like an entity. Also no longer triggers an assert in Debug.)

BUG=319391

Review URL: https://codereview.chromium.org/77553004

git-svn-id: svn://svn.chromium.org/blink/trunk@162373 bbb929c8-8fbe-4397-9dbb-9b2b20218538
landell
Added InvalidAccessError exception
Platform support for this exception is missing and is needed in order
to be compliant with Clearkey tests of Youtube's MSE/EME conformance suite.

Test suite: http://yt-dash-mse-test.commondatastorage.googleapis.com/unit-tests/main.html

BUG=

Review URL: https://codereview.chromium.org/62543003

git-svn-id: svn://svn.chromium.org/blink/trunk@162364 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
XHR: reset error flag on aborting request that restarts.
Close a small window in internal abort logic that takes care of
repeated uses of the XHR object upon cancellation.

The possibility existed that such a repeated use might reset the error
flag, so that upon return to the outer request (the one that is
aborting), it was left as 'false'. Spot this and (re) set the error
flag to 'true'.

Not a common use of XHR; added test coverage.

R=
BUG=315488

Review URL: https://codereview.chromium.org/76133002

git-svn-id: svn://svn.chromium.org/blink/trunk@162346 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
Make it possible to disable udev in the content API on linux
This is useful for embedded linux setups, which often don't include udev support.

TEST=Build content_shell on linux with use_udev=0 then run ldd on output binaries to verify libudev is not listed (and is listed if built with use_udev=1 or unspecified)

BUG=318315,318413

Review URL: https://codereview.chromium.org/12374068

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@236204 0039d316-1c4b-4281-b951-d872f2087c98
sigbjornf
XHR: compliant event sequencing on request errors and aborts.
Implement the event sequencing that the XHR spec now mandates for
request errors and abort()s. For request errors over async requests,
the following steps and sequence of events should now be dispatched:

  - readyState transitions to state DONE, dispatching a
    readystatechange event.

  - The ordered event triple (progress, <event type>, loadend) is
    dispatched to the upload event listeners, if any.

  - The ordered event triple (progress, <event type>, loadend) is
    dispatched to the regular/download event listeners.

  - readyState transitions to UNSENT.

where <event type> is one of {'error', 'timeout', 'abort'}.

Same steps for abort(), for both sync and async requests.

The required dispatching of 'progress' here is a relatively new
addition to the specification, late 2012.

A behavioral implementation change is the fourth step of transitioning
to UNSENT. This was previously done as step two (after dispatching
readystatechange), an out-of-spec and incorrect quirk.

For the above sequence, to allow for the delivery of
'readystatechange' on transitioning to DONE, but delay the delivery of
the final 'progress', we carefully only flush any deferred 'progress'
event before that 'readystatechange' event, but do not issue new. That
dispatch happens after the upload progress events have been dealt
with.

To make the correspondence clearer to the underlying spec text, the
request error steps have been factored out into a separate method.

R=tyoshino,abarth
BUG=315488

Review URL: https://codereview.chromium.org/66323004

git-svn-id: svn://svn.chromium.org/blink/trunk@162340 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Fix and enable media/track/opera/track/webvtt/parsing-cue-data/* tests
Fix up the tests in above directory - mainly by disabling the
"pretty-printed" diff (which makes for very verbose *-expected files
anyway - and can be enabled reasonably easy during debugging if needed.)

The 'entities' test is not enabled at this time because it (at least one
of the subtests) trigger an assert.

BUG=305317, 319391

Review URL: https://codereview.chromium.org/61213005

git-svn-id: svn://svn.chromium.org/blink/trunk@162308 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Replace character vectors with StringBuilders in the WebVTT tokenizer
With a goal of simplifying the state management of the
WebVTTTokenizer/WebVTTToken pair, turn all character vectors into
StringBuilders.
Since the tokenizer in general deals with strings, this makes for a
better fit in general (and at least two of the three eliminated FIXMEs
should be able to attest to that).

Also remove the local variable tagName in
WebVTTTreeBuilder::constructTreeFromToken, which appear unused.

BUG=319391

Review URL: https://codereview.chromium.org/75243004

git-svn-id: svn://svn.chromium.org/blink/trunk@162307 bbb929c8-8fbe-4397-9dbb-9b2b20218538
tiger
This review merges the two existing page serializers, WebPageSerializerImpl and
PageSerializer, into one, PageSerializer. In addition to this it moves all
the old tests from WebPageNewSerializerTest and WebPageSerializerTest to the
PageSerializerTest structure and splits out one test for MHTML into a new
MHTMLTest file.

Saving as 'Webpage, Complete', 'Webpage, HTML Only' and as MHTML when the
'Save Page as MHTML' flag is enabled now uses the same code, and should thus
have the same feature set. Meaning that both modes now should be a bit better.

Detailed list of changes:

- PageSerializerTest: Prepare for more DTD test
- PageSerializerTest: Remove now unneccesary input image test
- PageSerializerTest: Remove unused WebPageSerializer/Impl code
- PageSerializerTest: Move data URI morph test
- PageSerializerTest: Move data URI test
- PageSerializerTest: Move namespace test
- PageSerializerTest: Move SVG Image test
- MHTMLTest: Move MHTML specific test to own test file
- PageSerializerTest: Delete duplicate XML header test
- PageSerializerTest: Move blank frame test
- PageSerializerTest: Move CSS test
- PageSerializerTest: Add frameset/frame test
- PageSerializerTest: Move old iframe test
- PageSerializerTest: Move old elements test
- Use PageSerizer for saving web pages
- PageSerializerTest: Test for rewriting links
- PageSerializer: Add rewrite link accumulator
- PageSerializer: Serialize images in iframes/frames src
- PageSerializer: XHTML fix for meta tags
- PageSerializer: Add presentation CSS
- PageSerializer: Rename out parameter

BUG=
R=abarth@chromium.org

Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=162155

Review URL: https://codereview.chromium.org/68613003

git-svn-id: svn://svn.chromium.org/blink/trunk@162294 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Verify that video.crossOrigin performs no preflighting.
Verify that a video element CORS fetch doesn't generate a preflight
request and loads the cross-origin resource ok.

R=jochen,kbr
BUG=173727

Review URL: https://codereview.chromium.org/75153002

git-svn-id: svn://svn.chromium.org/blink/trunk@162293 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Do not issue preflight for crossorigin media resource loads.
Turn off preflighting when issuing requests that are CORS enabled
fetches. The requests do not have any author headers, hence should go
ahead without a preflighting step. CORS-enabled servers sometimes
depend on this.

R=jochen
BUG=173727

Review URL: https://codereview.chromium.org/69813010

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@235958 0039d316-1c4b-4281-b951-d872f2087c98
sigbjornf
XHR: separate delayed progress event flushing from dispatching of new.
The throttled delivery of progress events may defer progress event
delivery so as to pace their dispatching down to the frequency that
the spec suggests. When dispatching a later 'readystatechange' event,
if no deferred progress event was present, a new one would be created
and dispatched. Achieving the same event sequence despite the
lazy/deferred delivery of 'progress' events.

There are two steps involved here: the potential expedition of the
deferred progress event and the creation & delivery of a new one.
Tease these two notions apart here by allowing only flushing of
a deferred progress event to happen.

This weaker form of flushing is needed by follow-on changes, which
alters how these 'progress' progress events are dispatched wrt the
'readystatechange' XHR event when handling request errors and aborts.

R=
BUG=315488

Review URL: https://codereview.chromium.org/62193004

git-svn-id: svn://svn.chromium.org/blink/trunk@162270 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Move delivery of upload 'progress' events to XMLHttpRequestUpload.
Have the XMLHttpRequestUpload object handle dispatching of its
'progress' events, and at the same time keep track of the last
progress data reported.

While the latter state isn't directly made use of here, follow-on
changes to handle 'progress' events during XHR request errors will
depend on having it available.

R=
BUG=315488

Review URL: https://codereview.chromium.org/63033008

git-svn-id: svn://svn.chromium.org/blink/trunk@162254 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Factor out delivery of throttled progress event.
To prepare for follow-on changes to progress event handling, split out
the delivery of single XHR progress events into a separate method.

R=
BUG=315488

Review URL: https://codereview.chromium.org/75103006

git-svn-id: svn://svn.chromium.org/blink/trunk@162253 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove the logic for de-duplicating in-band text track cues
To de-duplicate cues by comparing their properties cannot work, since
scripts can modify cues in small or big ways at any time. For example,
the de-duplication will fail if the id has changed or if the timings
have been slightly shifted.

It must be the demuxer's responsibility to do this, e.g. by keeping
track of the offsets for which cues have already been sourced. This need
not consume a lot of memory, since it could record ranges of offsets.

BUG=270340

Review URL: https://codereview.chromium.org/74623002

git-svn-id: svn://svn.chromium.org/blink/trunk@162245 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Support full range of PreflightPolicy over WebURLLoaderOptions
Allow users of WebURLLoader to state the preflight behavior to follow
for the request. This is done so that the user/caller can explicitly
control when its author header set
(http://www.w3.org/TR/cors/#author-request-headers) is empty, then no
preflight must be performed.

This puts the responsibility on the caller to adhere to CORS and not
disable preflighting when the author set is non-empty or the request
is over non-simple methods (http://www.w3.org/TR/cors/#simple-method )

The WebURLLoaderOptions default is ConsiderPreflight.

R=jochen
BUG=173727

Review URL: https://codereview.chromium.org/68173029

git-svn-id: svn://svn.chromium.org/blink/trunk@162225 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Move media (as in audio/video) tests to media/
fast/media/ contains media queries tests, with the exception of two
tests, one if which was added by me. Let them live with the other
audio/video tests and remove fast/media/ from the media watchlist.

BUG=none

Review URL: https://codereview.chromium.org/74783002

git-svn-id: svn://svn.chromium.org/blink/trunk@162216 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Handle recovery on "timestamp-looking" lines in the WebVTT parser
When a line with a "-->" is encountered as part of cue-text, in the
header part or after a previous error (i.e. during "bad cue" processing).
The parser is supposed to break out of the current state and try to parse
the "-->" line as being the start of a new cue.

Updated testcases:

PASS -> FAIL
tc006, tc007 and tc011 (Tested the old behavior where "-->" was
allowed/ignored, and blank lines were required to start a new cue.)

FAIL -> PASS
opera/track/webvtt/parsing subtests nulls, header-timings, header-space,
header-tab and arrows
opera/interfaces/TextTrackCue/vertical.html

TEST=media/track/track-webvtt-tc031-cue-recovery.html
TEST=media/track/track-webvtt-tc032-degenerate-cues.html
BUG=305317

Review URL: https://codereview.chromium.org/75273002

git-svn-id: svn://svn.chromium.org/blink/trunk@162210 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Don't find(':') twice in WebVTTParser::collectMetadataHeader
Since contains(':') is the equivalent of a find(':') - except it throws
away the result - and the result might be of interest later on, just
call find(':') once instead, and remove the call to contains(...)
(essentially open-coding it.)

BUG=305317

Review URL: https://codereview.chromium.org/75233002

git-svn-id: svn://svn.chromium.org/blink/trunk@162202 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Support the crossOrigin IDL attribute over HTMLMediaElement.
Add missing declaration of this IDL attribute + update expected test
outcomes.

R=
BUG=173727

Review URL: https://codereview.chromium.org/75083002

git-svn-id: svn://svn.chromium.org/blink/trunk@162200 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Simplify state handling in WebVTTTokenizer::nextToken
When the WebVTT tokenizer returns a new token, it always returns to the
'Data' state - except for when encountering an opening '<' while in the
'Data' state, and having collected a non-empty text-node. In that
particular case though, we can avoid the transition to the 'Tag' state
by not advancing the input, and simply return indicating a new token.

With the above change, and the change to always set the FSM state to
'Data', the 'state' argument to emitAndResumeIn() becomes redundant -
so it can be removed. With the argument gone, rename the method to
advanceAndEmitToken (since it no longer needs to set a state to resume
in). Also add a new method emitToken which only returns true, and
is currently only used as a marker.

Add a (currently unused) argument to the various emitter methods in
WebVTTTokenizer. Use this new argument to indicate what type of token
each return statement should produce.

With the annotations in place it becomes clear that - after adding
additional "ensurance" to one of the instances - that the emitEndOfFile
emitter is redundant (always emits "Character" tokens and always has a
token "buffered" - i.e. haveBufferedCharacterToken() will return true),
and can be replaced by a call to emitToken instead. This also means that
WebVTTToken::makeEndOfFile and the corresponding state can be removed.

BUG=319391

Review URL: https://codereview.chromium.org/73813002

git-svn-id: svn://svn.chromium.org/blink/trunk@162198 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Fix Decimal.floor() + Decimal.ceiling() for many non-integral values.
Extend the check for an integral value to consider all the digits
being truncated, and not just the rightmost/most-significant one, when
rounding the result towards positive and negative infinity for floor()
and ceiling(), respectively.

R=yosin,mkwst
BUG=234323

Review URL: https://codereview.chromium.org/59603006

git-svn-id: svn://svn.chromium.org/blink/trunk@162197 bbb929c8-8fbe-4397-9dbb-9b2b20218538
tiger
This review merges the two existing page serializers, WebPageSerializerImpl and
PageSerializer, into one, PageSerializer. In addition to this it moves all
the old tests from WebPageNewSerializerTest and WebPageSerializerTest to the
PageSerializerTest structure and splits out one test for MHTML into a new
MHTMLTest file.

Saving as 'Webpage, Complete', 'Webpage, HTML Only' and as MHTML when the
'Save Page as MHTML' flag is enabled now uses the same code, and should thus
have the same feature set. Meaning that both modes now should be a bit better.

Detailed list of changes:

- PageSerializerTest: Prepare for more DTD test
- PageSerializerTest: Remove now unneccesary input image test
- PageSerializerTest: Remove unused WebPageSerializer/Impl code
- PageSerializerTest: Move data URI morph test
- PageSerializerTest: Move data URI test
- PageSerializerTest: Move namespace test
- PageSerializerTest: Move SVG Image test
- MHTMLTest: Move MHTML specific test to own test file
- PageSerializerTest: Delete duplicate XML header test
- PageSerializerTest: Move blank frame test
- PageSerializerTest: Move CSS test
- PageSerializerTest: Add frameset/frame test
- PageSerializerTest: Move old iframe test
- PageSerializerTest: Move old elements test
- Use PageSerizer for saving web pages
- PageSerializerTest: Test for rewriting links
- PageSerializer: Add rewrite link accumulator
- PageSerializer: Serialize images in iframes/frames src
- PageSerializer: XHTML fix for meta tags
- PageSerializer: Add presentation CSS
- PageSerializer: Rename out parameter

BUG=
R=abarth@chromium.org

Review URL: https://codereview.chromium.org/68613003

git-svn-id: svn://svn.chromium.org/blink/trunk@162155 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Remove unused V8ThrowException::createDOMException() helper.
Followup minor issue from crrev.com/68563003 and remove an unused helper
that also supplies an empty creation context.

R=ch.dumez
BUG=

Review URL: https://codereview.chromium.org/70103024

git-svn-id: svn://svn.chromium.org/blink/trunk@162148 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove TreatNullAs=NullString for <frame>, <frameset> and <iframe>
http://www.whatwg.org/specs/web-apps/current-work/multipage/obsolete.html#htmlframeelement
http://www.whatwg.org/specs/web-apps/current-work/multipage/obsolete.html#htmlframesetelement
http://www.whatwg.org/specs/web-apps/current-work/multipage/the-iframe-element.html#htmliframeelement
http://www.whatwg.org/specs/web-apps/current-work/multipage/obsolete.html#HTMLIFrameElement-partial

Per spec the longDesc attribute on HTMLFrameElement and
HTMLIFrameElement should be reflected as a URL, so make it so.

HTMLIFrameElement.sandbox is readonly DOMSettableTokenList in the spec,
so leave it with [TreatNullAs=NullString] until that is fixed.

The tests for the updated properties pass in Firefox Nightly, IE11
Release Preview and Opera 12.16, with these exceptions:

IE11 throws exceptions for HTMLFrameElement.scrolling,
HTMLIFrameElement.align and HTMLIFrameElement.scrolling, reflects
HTMLIFrameElement.width/height as the empty string and does not support
HTMLIFrameElement.srcdoc.

Opera does not support HTMLIFrameElement.srcdoc.

Note that no other browser supports the location attribute, but that has
not been touched here.

BUG=310298

Review URL: https://codereview.chromium.org/68503013

git-svn-id: svn://svn.chromium.org/blink/trunk@162147 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Update WebVTT parser spec references
Update the spec. references in the parser implementation to match the
ED from November 9 2013.

Only comments changed.

BUG=305317

Review URL: https://codereview.chromium.org/64273013

git-svn-id: svn://svn.chromium.org/blink/trunk@162127 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Non-activated default buttons prevent implicit form submission.
Follow the spec and two other implementations (Gecko + Presto), and do
not allow implicit form submission if the default (submit) button is
not in an activated state (read: disabled.)

Notice that this switches to behavior different from what Trident / IE
provides.

R=eseidel,tkent
BUG=37402

Review URL: https://codereview.chromium.org/60573007

git-svn-id: svn://svn.chromium.org/blink/trunk@162095 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove forwarding headers in public/
Chromium has been updated to include from the new locations:
https://codereview.chromium.org/68683009/

BUG=none

Review URL: https://codereview.chromium.org/60033008

git-svn-id: svn://svn.chromium.org/blink/trunk@162076 bbb929c8-8fbe-4397-9dbb-9b2b20218538
davve
Allocate stack item for fragment context elements once
Instead of allocating stack items for fragment context elements on
demand, do it once when creating the fragment context and re-use the
stack item during parsing. This avoids excessive calls to malloc when
parsing for innerHTML.

BUG=318711

Review URL: https://codereview.chromium.org/68893014

git-svn-id: svn://svn.chromium.org/blink/trunk@162047 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Add a UseCounter for HTMLFrameElement.location
It is not supported by IE, Firefox or Presto and can likely be removed.

BUG=none

Review URL: https://codereview.chromium.org/59713011

git-svn-id: svn://svn.chromium.org/blink/trunk@162036 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove TreatNullAs=NullString for HTMLFormElement
http://www.whatwg.org/specs/web-apps/current-work/multipage/forms.html#htmlformelement

The tests for the updated properties pass in Firefox Nightly, IE11
Release Preview and Opera 12.16, with these exceptions:

Firefox reflects autocomplete as 'on', which is per spec since
autocomplete is an enumerated attribute, but this will not be fixed in
Blink as part of this change.

IE11 throws an exception for enctype, encoding and method.

Opera doesn't support autocomplete and reflects encoding as 'null'.

BUG=310298

Review URL: https://codereview.chromium.org/60733023

git-svn-id: svn://svn.chromium.org/blink/trunk@162029 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Update TextTrackCue tests to use VTTCue where appropriate
The Opera tests were fixed upstream and re-imported:
https://github.com/w3c/web-platform-tests/commit/8c08468d5494c9026c2a857f366c631651c413fd
https://github.com/w3c/web-platform-tests/commit/da34397c2c16170da60e5c7638e00c0edadcf0be

A new test in cues.html requres a more recent testharness.js
than we have and was disabled.

BUG=270340

Review URL: https://codereview.chromium.org/72543003

git-svn-id: svn://svn.chromium.org/blink/trunk@162026 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove a WebVTT newlines test that doesn't do what it says
tc003-newlines.vtt had CR line endings, not mixed as the test claimed.

Mixed line endings are sufficiently covered by
media/track/opera/track/webvtt/parsing/support/newlines.vtt

BUG=318734

Review URL: https://codereview.chromium.org/65493006

git-svn-id: svn://svn.chromium.org/blink/trunk@162024 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove TreatNullAs=NullString for HTMLFieldSetElement
http://www.whatwg.org/specs/web-apps/current-work/multipage/the-button-element.html#htmlfieldsetelement

The test passes only in Firefox Nightly, since neither IE11 Release
Preview nor Opera 12.16 supports the property at all, verified by
document.createElement('fieldset').name == undefined.

BUG=310298

Review URL: https://codereview.chromium.org/70103011

git-svn-id: svn://svn.chromium.org/blink/trunk@162023 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove TreatNullAs=NullString for HTMLFontElement
http://www.whatwg.org/specs/web-apps/current-work/multipage/obsolete.html#htmlfontelement

color has [TreatNullAs=EmptyString] in the spec, but face/size do not.

The tests for the updated properties pass in Firefox Nightly, IE11
Release Preview and Opera 12.16, with these exceptions:

IE11 reflects size as the empty string.

BUG=310298

Review URL: https://codereview.chromium.org/61643028

git-svn-id: svn://svn.chromium.org/blink/trunk@162020 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Split VTTCue from TextTrackCue
VTTCue has been split from TextTrackCue in the specs:
http://whatwg.org/html#texttrackcue
http://dev.w3.org/html5/webvtt/#vttcue-interface

The TextTrackCue constructor is left for legacy compat until it is
deemed safe to remove. To verify that it actually works, the tests still
use the TextTrackCue constructor, but will be updated to use VTTCue in a
later commit.

Internal refactoring has been kept to a minimum, future commits should
move more code from TextTrackCue to VTTCue.

Thanks to Glenn Adams for starting this work and providing feedback!

BUG=270340

Review URL: https://codereview.chromium.org/63173020

git-svn-id: svn://svn.chromium.org/blink/trunk@162015 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove a WebVTT newlines test that doesn't do what it says
tc003-newlines.vtt had CR line endings, not mixed as the test claimed.

tc003-no-newline-at-eof.vtt was converted from CR to LF, since testing
a missing newline at eof doesn't require anything fancy before it.

Mixed line endings are sufficiently covered by
media/track/opera/track/webvtt/parsing/support/newlines.vtt

BUG=318734
R=jochen@chromium.org

Review URL: https://codereview.chromium.org/65493006

git-svn-id: svn://svn.chromium.org/blink/trunk@162014 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove TreatNullAs=NullString for HTMLEmbedElement
http://www.whatwg.org/specs/web-apps/current-work/multipage/the-iframe-element.html#htmlembedelement
http://www.whatwg.org/specs/web-apps/current-work/multipage/obsolete.html#HTMLEmbedElement-partial

The tests for the updated properties pass in Firefox Nightly, IE11
Release Preview and Opera 12.16, with these exceptions:

IE11 reflects align/type as null, and width/height as the empty string.

BUG=310298

Review URL: https://codereview.chromium.org/72583002

git-svn-id: svn://svn.chromium.org/blink/trunk@162013 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Create DOM exceptions in the correct context.
If access to a cross-origin property or method is allowed, but it ends
up throwing a DOM exception, arrange for the exception to be created
in the context of the target property/method, not that of the
caller/accessing context.

Addressed by having ExceptionState keep a creation context, which is
then passed along when creating the wrapper for the exception object.

R=haraken@chromium.org
BUG=235223

Review URL: https://codereview.chromium.org/68563003

git-svn-id: svn://svn.chromium.org/blink/trunk@162010 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Rewrite include paths for Blink public/ headers that have moved
This is a prerequisite for removing the old (redirected) headers.

In a few DEPS and in webview_plugin.cc the include was redundant and
just removed instead.

BUG=none

Review URL: https://codereview.chromium.org/68683009

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@235116 0039d316-1c4b-4281-b951-d872f2087c98
philipj
Re-enable the newlines.vtt WebVTT parsing test
With the correct newlines.vtt, the test simply passes.

BUG=318734

Review URL: https://codereview.chromium.org/71593002

git-svn-id: svn://svn.chromium.org/blink/trunk@161957 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Re-import newlines.vtt with the correct (mixed) line endings
Done using svn propset svn:mime-type application/octet-stream
and re-importing from
https://github.com/w3c/web-platform-tests/blob/c846444243f5a24224d63750253b7a4aed6f9408/old-tests/submission/Opera/media/track/webvtt/parsing/support/newlines.vtt

BUG=318734


git-svn-id: svn://svn.chromium.org/blink/trunk@161941 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Disable the newlines.vtt WebVTT parsing test
To be enabled after re-importing with the correct (mixed) line endings.

BUG=318734

Review URL: https://codereview.chromium.org/61793012

git-svn-id: svn://svn.chromium.org/blink/trunk@161932 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Minor adjustment to WebVTT tests
Do a trivial adjustment to the tc029-timings-whitespace test to make
it robust against the spec. change that disallows --> in cue text.

Fix test opera/interfaces/TextTrackCue/vertical.html to it possible
to pass it (the expected result is still FAIL), by adding a linebreak.

BUG=305317

Review URL: https://codereview.chromium.org/59153008

git-svn-id: svn://svn.chromium.org/blink/trunk@161931 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
The WebVTT parsing algorithm allows empty cue text
Adjust tests:
  tc027-empty-cue - PASS -> FAIL, because opposite assumptions
  opera/track/webvtt/parsing:newlines.vtt - one more cue (empty) observed
  opera/interfaces/TextTrackCue/text.html - FAIL -> PASS

(The newlines.vtt file is truncated compared to the
original/upstream version, so chose to update the
expected result rather than modifying the test. Aim to
update the testfile at a later point.)

BUG=305317

Review URL: https://codereview.chromium.org/62833005

git-svn-id: svn://svn.chromium.org/blink/trunk@161924 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Enable XHR upload progress events for Workers.
The request flag recording progress event reporting wasn't been copied
out of the worker when creating the loader on the main thread. Do so
to have upload progress events be reported over XMLHttpRequest inside
a Worker.

R=
BUG=173658

Review URL: https://codereview.chromium.org/71433002

git-svn-id: svn://svn.chromium.org/blink/trunk@161923 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Make metadata state local in the WebVTT parser
The members m_currentHeaderName and m_currentHeaderValue are only used
within the scope of WebVTTParser::collectMetadataHeader, so there's no
need to keep them in instance scope. Make them local to said method,
and pass the value explicitly to its users.

BUG=305317

Review URL: https://codereview.chromium.org/65343003

git-svn-id: svn://svn.chromium.org/blink/trunk@161922 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove executable bit from files which aren't executable
This has already been done for web-platform-tests, so we shouldn't
get the executable bits back on future imports for those tests:
https://github.com/w3c/web-platform-tests/commit/35c13df5fedbd68dbec5dbb5717cb2f2b2011041

Done using svn propdel svn:executable and commited manually.

BUG=none

Review URL: https://codereview.chromium.org/68773002/


git-svn-id: svn://svn.chromium.org/blink/trunk@161916 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove executable bit from a file which isn't executable
Done using svn propdel svn:executable and commited manually.

Fixing a single file first to verify that it will work.

BUG=none

Review URL: https://codereview.chromium.org/68773002/



git-svn-id: svn://svn.chromium.org/blink/trunk@161906 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Handle (numeric) indexed access of DOMStringMap.
As the set of supported property names over DOMStringMap reflects the
attributes of an Element prefixed with 'data-', these naturally also
include numeric indexes.

To allow such index values to be used over DOMStringMap, extend its
IDL definition with indexed accessors.

Also address an infelicity in comparing attribute names to property
names if the property name uses a "-" but isn't followed by an ASCII
uppercase letter (e.g. "a-1".)

Extended test coverage to check for these variations also.

R=tkent@chromium.org
BUG=171175

Review URL: https://codereview.chromium.org/63223002

git-svn-id: svn://svn.chromium.org/blink/trunk@161864 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove MediaSourcePrivate/SourceBufferPrivate
These layers are just proxies for the Web* variants.

BUG=317353

Review URL: https://codereview.chromium.org/61603006

git-svn-id: svn://svn.chromium.org/blink/trunk@161859 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Improve Blob constructor error messages.
Follow current practice of supplying the name of the constructor in
the error message string, along with normalizing formatting and
wording used.

Also took the opportunity of simplifying how toV8Sequence() reports a
type error: a non-sequence argument is now indicated by returning
v8Undefined().

R=ch.dumez@samsung.com
BUG=270033

Review URL: https://codereview.chromium.org/68533014

git-svn-id: svn://svn.chromium.org/blink/trunk@161849 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Avoid reusing XMLHttpRequest resources during document load.
The determineRevalidationPolicy() predicate decides how an existing
cached resource can be (re)utilized upon another fetch to the same
resource. It will allow reuse of already loaded (and loading)
resources while a document is being loaded.

Such resource reuse isn't safe to do for raw resources requested
through XHR, as there's too much state and header information that an
XHR request can be furnished with. Hence, we exempt raw resources and
delegate to the standard cache control policy to decide on reuse. Like
it would do once the document has loaded.

R=japhet@chromium.org
BUG=314433

Review URL: https://codereview.chromium.org/59043006

git-svn-id: svn://svn.chromium.org/blink/trunk@161846 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Support the 'lrm', 'rlm' and 'nbsp' entities in the WebVTTTokenizer
TEST=media/track/track-webvtt-tc022-entities.html
BUG=314028

Review URL: https://codereview.chromium.org/66503013

git-svn-id: svn://svn.chromium.org/blink/trunk@161822 bbb929c8-8fbe-4397-9dbb-9b2b20218538
davve
Length type Relative is now unused. Remove it.
BUG=259107

Review URL: https://codereview.chromium.org/55843002

git-svn-id: svn://svn.chromium.org/blink/trunk@161809 bbb929c8-8fbe-4397-9dbb-9b2b20218538
davve
Lift integer restriction on border-image-width and border-image-outset
border-image-{width,outset} should accept percentages, lengths,
numbers, and auto. A number represents a multiple of the computed
border-width, and should not be restricted to integral values.

BUG=304000

Review URL: https://codereview.chromium.org/54383006

git-svn-id: svn://svn.chromium.org/blink/trunk@161807 bbb929c8-8fbe-4397-9dbb-9b2b20218538
davve
Rewrite BorderImageLength to not use the Relative length type
Remove the last remaining Relative length and instead store a Length
_and_ a double value along with a type tag, a pattern also used by
GridLength in the Flexbox code. While it increases memory usage
slightly, getting rid of the Relative length type is deemed more
important.

BUG=259107

Review URL: https://codereview.chromium.org/55833002

git-svn-id: svn://svn.chromium.org/blink/trunk@161802 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Move WebMediaPlayer and friends to public/platform/
This is a prerequisite for eliminating the
MediaPlayer/MediaPlayerClient layer.

Minor style changes were needed to pass presubmit.

BUG=310466

Review URL: https://codereview.chromium.org/67083003

git-svn-id: svn://svn.chromium.org/blink/trunk@161792 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove HTMLMediaElement::minTimeSeekable()/maxTimeSeekable()
minTimeSeekable() is completely unused, and maxTimeSeekable()
was only used in a single place, so just inline it there.

BUG=none

Review URL: https://codereview.chromium.org/68183003

git-svn-id: svn://svn.chromium.org/blink/trunk@161785 bbb929c8-8fbe-4397-9dbb-9b2b20218538
davve
Convert animation and renderer code to know about BorderImageLength
This propagates BorderImageLengthBox further out in the code, but
actually converts it to an actual number or length as soon as possible
in the animation code, and animates it as the individual type.

Now we can also remove the compatibility conversion methods between
BorderImageLengthBox and LengthBox.

Also, update a couple of "Weird number of spaces at line-start"
indentations in CSSPropertyAnimation.cpp to not make the new code
inconsistent with the old wrt. indentation.

BUG=259107

Review URL: https://codereview.chromium.org/55813002

git-svn-id: svn://svn.chromium.org/blink/trunk@161715 bbb929c8-8fbe-4397-9dbb-9b2b20218538
davve
Protect contextElement during insertAdjacentHTML call
JS event handlers may cause element to lose its last ref during
parsing.

BUG=315842

Review URL: https://codereview.chromium.org/67813002

git-svn-id: svn://svn.chromium.org/blink/trunk@161697 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove WebInbandTextTrack::Mode
It is no longer used in Chromium.

BUG=315476

Review URL: https://codereview.chromium.org/62333011

git-svn-id: svn://svn.chromium.org/blink/trunk@161689 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Replace redundant <track> runtime checks with asserts
The IDL as RuntimeEnabled=VideoTrack for these two cases.

BUG=313287

Review URL: https://codereview.chromium.org/61763017

git-svn-id: svn://svn.chromium.org/blink/trunk@161661 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove unneeded namespace prefix in HTMLMediaElement
This file is "using namespace HTMLNames", and no other fooAttr
specifies the namespace.

BUG=none

Review URL: https://codereview.chromium.org/62103009

git-svn-id: svn://svn.chromium.org/blink/trunk@161650 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove InbandTextTrackPrivate/InbandTextTrackPrivateClient
These interfaces were virtually identical to the Web* variants, so
just use those directly.

BUG=316172

Review URL: https://codereview.chromium.org/60083011

git-svn-id: svn://svn.chromium.org/blink/trunk@161632 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Move WebInbandTextTrack/WebInbandTextTrackClient to public/platform/
This is to allow InbandTextTrackPrivate/InbandTextTrackPrivateClient
to be removed, by using the Web* variants directly, and for that to
be allowed they must reside in public/platform/.

Some style changes were required to please presubmit.

BUG=316172

Review URL: https://codereview.chromium.org/61763010

git-svn-id: svn://svn.chromium.org/blink/trunk@161626 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Handle buffer boundaries in the WebVTT parser
Replace the somewhat ad-hoc collectNextLine method with a new helper
class - BufferedLineReader - that takes care of buffering the input
data across buffer boundaries.

While redoing the line collection, also fix the handling of NULs in the
input stream to match the spec (transform to U+FFFD).

TEST=unittest:BufferedLineReader.*
TEST=http/tests/media/track/track-webvtt-slow-loading-2.html
BUG=231460

Review URL: https://codereview.chromium.org/64303004

git-svn-id: svn://svn.chromium.org/blink/trunk@161624 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove unused implementations in WebInbandTextTrackImpl
These functions have been removed from WebInbandTextTrack.

BUG=315257, 315270, 315476

Review URL: https://codereview.chromium.org/63963002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@233835 0039d316-1c4b-4281-b951-d872f2087c98
philipj
Align HTMLAppletElement IDL with spec
http://whatwg.org/html#htmlappletelement

In addition to removing TreatNullAs=NullString, align with the spec by
making hspace/vspace unsigned long, and codebase/object URLs.

The tests for the updated properties pass in Firefox Nightly, IE11
Release Preview and Opera 12.16, with these exceptions:

IE11 returns "" after setting width/height to null and fails all of
the vspace/hspace reflection tests in ways not per spec.

Presto doesn't reflect object as a URL, but the framework didn't
notice that before the minor fix in nullTestElementAttribute.
Presto also fails the vspace/hspace set tests in ways not per spec.

BUG=316129, 310298

Review URL: https://codereview.chromium.org/64173002

git-svn-id: svn://svn.chromium.org/blink/trunk@161545 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove TreatNullAs=NullString for miscellaneous HTML elements
The tests for the updated properties pass in Firefox Nightly, IE11
Release Preview and Opera 12.16, with these exceptions:

IE11 throws an exception for all except HTMLQuoteElement.cite.

BUG=310298

Review URL: https://codereview.chromium.org/62083003

git-svn-id: svn://svn.chromium.org/blink/trunk@161535 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Restore old behavior where "Sans" was used as fallback font
https://codereview.chromium.org/31923005 changed the fallback font logic,
it was probably not intended since it merely moved code around.
This restores the logic so that "Sans" is always tried when looking for
a fallback family.

SkFontConfigInterface_direct.cpp looks for fallbacks among all
available fonts iff "Sans", "Serif", "Monospace" or "" is requested.
So it's important that at least one of those is tried.

This avoids crashing the renderer process if "Arial" is missing on
the system.

BUG=309714
AUTHOR=rogerj@opera.com
TBR=eae@chromium.org

Review URL: https://codereview.chromium.org/64243002

git-svn-id: svn://svn.chromium.org/blink/trunk@161534 bbb929c8-8fbe-4397-9dbb-9b2b20218538
davve
Introduce BorderImageLength and BorderImageLengthBox
Getting rid of the Relative length type has been a goal for a while
and this is step one for getting rid of it for the remaining user:
border-image.

Specifically, the 'border-image-width' and 'border-image-outset'
longhand properties are the remaining users of the Relative length
type. Relative is used to indicate that the Length doesn't contain a
length at all, but a plain number (in this case a multiple of the
respective computed border width).

Wrap this usage within a BorderImageLength for now, to prepare for
BorderImageLength conditionally acting as a number itself and thus making
it possible to remove the Relative length type.

To limit scope, not all use of Length as a BorderImageLength is wrapped.
Notably parts of RenderStyle and the related animation code haven't
been converted. For this to work there is compatibility code that goes
from LengthBox to BorderImageLengthBox and back.

No functional changes expected. To a large part covered by existing
tests in LayoutTests/fast/borders/border-image-*.

BUG=259107

Review URL: https://codereview.chromium.org/55783002

git-svn-id: svn://svn.chromium.org/blink/trunk@161527 bbb929c8-8fbe-4397-9dbb-9b2b20218538
davve
Enable ActivityLogApiTest.TriggerEvent and update test
Blink rev has been rolled to r161048, which includes the innerHTML
move from HTMLElement to Element. Update and enable the test that had
to be disabled during the transition.

BUG=311080

Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=232385

Review URL: https://codereview.chromium.org/54933002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@233586 0039d316-1c4b-4281-b951-d872f2087c98
fs
Add a flushing mechanism for the WebVTTParser
In the WebVTT parser there's an ad-hoc "end-of-stream" check for when
a pending cue should be flushed from the parser. The condition used
however is not reliable given multiple buffers.

To rectify this, add a flush() method to WebVTTParser, and call it
from TextTrackLoader::notifyFinished. Then let this new flush() method
take care of flushing any pending cue from the parser.

BUG=231460

Review URL: https://codereview.chromium.org/59453002

git-svn-id: svn://svn.chromium.org/blink/trunk@161519 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
XHR.abort(): no event dispatching in completed/non-started states.
Follow the spec and other implementations and only transition to an
UNSENT state if abort() is called on request that either hasn't been
sent or has completed. That is, no dispatching of progress events will
be done.

R=
BUG=315470

Review URL: https://codereview.chromium.org/60203010

git-svn-id: svn://svn.chromium.org/blink/trunk@161515 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jadahl
cc: Keep track of busy resources in ResourcePool
Instead of assuming every released resource could be potentially
reusable, manage a list of busy resources and a list of immediately
reusable resources. A busy resource is one which can not be locked for
write.
    
Recheck busy resources before the tile manager is to schedule new tasks,
in AssignGpuMemoryToTiles().
    
If this operation becomes too expensive, the CheckBusyResources()
function should only be called if some resource(s) are returned from the
parent compositor or when ResourcePool releases some resource.

BUG=

Review URL: https://codereview.chromium.org/43753002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@233374 0039d316-1c4b-4281-b951-d872f2087c98
philipj
Simplify LoadableTextTrack construction
HTMLTrackElement::parseAttribute() already sets kind, label and
language when the corresponding attributes change, so we can create a
TextTrack with the default values, leaving all of the logic for
parsing kind in TextTrack::setKind().

This leaves HTMLTrackElement::srclang() and label() unused, so just
use [Reflect] in the IDL for these attributes.

BUG=315510
TEST=media/track/opera/interfaces/TextTrack/kind.html,
     media/track/opera/interfaces/TextTrack/label.html,
     media/track/opera/interfaces/TextTrack/language.html,
     media/track/track-kind.html

Review URL: https://codereview.chromium.org/60423008

git-svn-id: svn://svn.chromium.org/blink/trunk@161457 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove the mode getter/setter for in-band text tracks
TextTrack::setMode() is virtual and overridden by InbandTextTrack to
forward all the way down to Chromium's WebInbandTextTrackImpl, where
it is simply stored. However, the getter is not virtual and does not
ever retrieve the value, so all of this is elaborate dead code.

Because InbandTextTrack::setMode() first called TextTrack::setMode(),
this assymetry between getting and setting for in-band tracks didn't
actually break anything, and the relevant tests still pass.

In addition, in-band tracks should not need to know about the mode,
they simply provide cues for Blink, whether or not they are rendered
can be left an internal matter.

The Chromium side can be removed after a Blink roll, after which
WebInbandTextTrack::Mode can finally be removed as well.

BUG=315476
TEST=LayoutTests/media/track/opera/interfaces/TextTrack/mode.html

Review URL: https://codereview.chromium.org/60203008

git-svn-id: svn://svn.chromium.org/blink/trunk@161456 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove TreatNullAs=NullString for HTMLButtonElement
http://whatwg.org/html#htmlbuttonelement 

The tests for the updated properties pass in Firefox Nightly, IE11
Release Preview and Opera 12.16, with these exceptions:

IE11 returns an empty string for HTMLButtonElement.type.

Leave setCustomValidity until later, since it appears on several interfaces.

BUG=310298

Review URL: https://codereview.chromium.org/59903003

git-svn-id: svn://svn.chromium.org/blink/trunk@161455 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove TreatNullAs=NullString for <base>, <body> and <br>
http://whatwg.org/html#htmlbaseelement
http://whatwg.org/html#HTMLBodyElement-partial
http://whatwg.org/html#HTMLBRElement-partial

Note that the spec has [TreatNullAs=EmptyString] for all HTMLBodyElement
attributes except background.

The tests for the updated properties pass in Firefox Nightly, IE11
Release Preview and Opera 12.16, with these exceptions:

IE11 throws an exception when setting HTMLBRElement.clear,
which the spec does not allow for.

Presto resolves HTMLBodyElement.background as a URL.

BUG=310298

Review URL: https://codereview.chromium.org/60153008

git-svn-id: svn://svn.chromium.org/blink/trunk@161451 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove HTMLBaseFontElement IDL and implementation
This is dead code because it doesn't appear in the GYP files and
HTMLTagNames.in already says "basefont interfaceName=HTMLElement".

BUG=315480

Review URL: https://codereview.chromium.org/61673002

git-svn-id: svn://svn.chromium.org/blink/trunk@161449 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Valgrind: retire suppression for bug 291240.
With underlying leak cause addressed, the suppression
is no longer needed.

R=thestig@chromium.org
BUG=291240
NOTRY=true

Review URL: https://codereview.chromium.org/56983002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@233195 0039d316-1c4b-4281-b951-d872f2087c98
philipj
Never create HTMLTrackElement when VideoTrack is not enabled
Generalize wrapperOnlyIfMediaIsAvailable into runtimeEnabled to
let audio/video/source depend on Media and track on VideoTrack.

Let VideoTrack depend on Media, since it would otherwise become
possible to create an HTMLTrackElement with Media disabled.

The mediaEnabled setting is set to false by InspectorOverlay and
SVGImage, in both cases presumably to prevent any media
playback. Accomplish this instead by blocking the media load.

BUG=315207

Review URL: https://codereview.chromium.org/60763002

git-svn-id: svn://svn.chromium.org/blink/trunk@161402 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove unused TextTrack virtual functions
isClosedCaptions(), containsOnlyForcedSubtitles(),
isMainProgramContent() and isEasyToRead() are unused.

WebInbandTextTrack::isClosedCaptions() is implemented in
Chromium (WebInbandTextTrackImpl) by switching on kind. Since it
doesn't use OVERRIDE, it will still compile and can be removed
after a Blink roll.

BUG=315257

Review URL: https://codereview.chromium.org/59913005

git-svn-id: svn://svn.chromium.org/blink/trunk@161398 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove WebInbandTextTrack::isDefault()
The spec only mentions the default attribute on track elements
(out-of-band text tracks), in-band tracks don't have this
concept.

Also, because InbandTextTrack doesn't actually implement
isDefault(), this is all dead code.

The Chromium implementation (WebInbandTextTrackImpl) always
returns false and can be removed after a Blink roll.

Also remove HTMLTrackElement::isDefault() and setIsDefault(),
which are dead code because [Reflect] is used in the IDL.

BUG=315270

Review URL: https://codereview.chromium.org/60633004

git-svn-id: svn://svn.chromium.org/blink/trunk@161396 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
add a LinuxSandbox::HasOpenDirectories() sanity check
BUG=269806

Review URL: https://codereview.chromium.org/24055003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@233100 0039d316-1c4b-4281-b951-d872f2087c98
sigbjornf
Fix memory leak on serializing neutered ArrayBuffer.
If the serialization of an ArrayBufferView's ArrayBuffer fails, unwind
the state stack completely before reporting an error to avoid leaking
a serializer state object.

To accommodate, split out the state stack overflow checking from the
dispatching on value types which was both performed by the main
serialization method. Now handled by

    Serializer::doSerialize()
    Serializer::doSerializeImpl()

respectively, with the former calling upon the latter if the stack
check passes.

R=dslomov@chromium.org
BUG=291240

Review URL: https://codereview.chromium.org/56973002

git-svn-id: svn://svn.chromium.org/blink/trunk@161343 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove TreatNullAs=NullString for HTMLAreaElement
http://whatwg.org/html#htmlareaelement

The tests for the updated properties pass in Firefox Nightly, IE11
Release Preview and Opera 12.16, with these exceptions:

Firefox reflects ping as a URL property, which is not per spec. 

IE11 reflects coords as '0,0,0,0' and shape as 'rect', while it doesn't
support ping.

Presto doesn't support ping.

BUG=310298

Review URL: https://codereview.chromium.org/59383002

git-svn-id: svn://svn.chromium.org/blink/trunk@161340 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove TreatNullAs=NullString for HTMLAnchorElement
http://whatwg.org/html#htmlanchorelement
http://whatwg.org/html#HTMLAnchorElement-partial

The tests for the updated properties pass in Firefox Nightly, IE11
Release Preview and Opera 12.16, with these exceptions:

Firefox reflects ping as a URL property, which is not per spec. 

IE11 reflects coords as '0,0,0,0' and shape as 'rect', while it doesn't
support ping/download.

Presto doesn't support ping/download.

BUG=310298

Review URL: https://codereview.chromium.org/58493002

git-svn-id: svn://svn.chromium.org/blink/trunk@161336 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ed
<animate> not working on SVG Polygons.
The animation is taking place, but the rendering side didn't use the
computed values.

R=
BUG=196435

Review URL: https://codereview.chromium.org/55893002

git-svn-id: svn://svn.chromium.org/blink/trunk@161329 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Restore ActivityLogging=SetterForIsolatedWorlds for mouse and keyboard events
This was first added in r154552.

In r159511 [PerWorldBindings, ActivityLogging=SetterForIsolatedWorlds]
was replaced with [ActivityLogging=Setter] on the assumption that
PerWorldBindings wasn't there for any particular reason and that
SetterForIsolatedWorlds wouldn't make sense without it.

This was wrong, because activity logging now happens for all worlds,
where it previously only happened for isolated worlds.

Make it so again.

BUG=305112

Review URL: https://codereview.chromium.org/57443002

git-svn-id: svn://svn.chromium.org/blink/trunk@161265 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Hide the CC button for <audio> with <track>s
It is per spec that the DOM API should work the same for <audio>
and <video>, but it doesn't make any sense to have the UI bits for
<audio> since there's nowhere to actually render the cues.

BUG=314027

Review URL: https://codereview.chromium.org/54713007

git-svn-id: svn://svn.chromium.org/blink/trunk@161246 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove HTMLMediaElement::m_sendProgressEvents
It is always true, and it appears to have been that way since it was
added in 2009 (r40857).

BUG=none

Review URL: https://codereview.chromium.org/57473002

git-svn-id: svn://svn.chromium.org/blink/trunk@161245 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Let WebVTTRegions depends_on=VideoTrack and simplify IDL
BUG=313604

Review URL: https://codereview.chromium.org/54903008

git-svn-id: svn://svn.chromium.org/blink/trunk@161218 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Rename TextTrackRegion/TextTrackRegionList to VTTRegion/VTTRegionList
http://dev.w3.org/html5/webvtt/#vttregion-interface
http://dev.w3.org/html5/webvtt/#vttregionlist-interface

This is a completely mechanical rename, except for added instanceof
tests and removing NoInterfaceObject (not per spec) from VTTRegionList
to make them pass.

Silvia (the spec editor) says in the bug that the spec hasn't changed
since the implementation, so together with the fact that this is
RuntimeEnabled, it should be safe despite being Web facing.

BUG=313604

Review URL: https://codereview.chromium.org/55653003

git-svn-id: svn://svn.chromium.org/blink/trunk@161209 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Make LoadableTextTrack::clearClient not virtual
When TextTrack::clearClient and LoadableTextTrack::clearClient were
added in r99984, both had the virtual keyword and nothing seemed odd.

In r135410 the virtual keyword was dropped from TextTrack::clearClient
because "it is unnecessary", but LoadableTextTrack::clearClient was left
virtual even though it now shadowed (instead of overriding) TextTrack.

The HTMLTrackElement destructor calls LoadableTextTrack::clearClient, so
there's no risk of LoadableTextTrack::m_trackElement becoming stale.

It would be nice to sort this out even more, perhaps by refactoring
LoadableTextTrack into a TextTrackCueProvider or something that doesn't
inherit from TextTrack, but until then add a comment to calm the reader.

BUG=313287

Review URL: https://codereview.chromium.org/54963004

git-svn-id: svn://svn.chromium.org/blink/trunk@161197 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Handle empty lines in the 'TimingsAndSettings' state in the WebVTTParser
As per the WebVTT parsing specification, step 27 ("If line is the empty
string, then discard cue and jump to the step labeled cue loop."), the
cue should be discarded and the cue loop restarted if an "identifier"
line is followed by an empty line. Transitioning to the 'BadCue' state
will lose the transition, so we need to transition explicitly from the
'TimingsAndSettings' state (to the 'Id' state.)

BUG=314056

Review URL: https://codereview.chromium.org/55853002

git-svn-id: svn://svn.chromium.org/blink/trunk@161184 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove virtual where not needed in TextTrackCue
Remove TextTrackCue::cueType() since it always returned CueType::WebVTT
and was never overriden. CueType::Generic was for TextTrackCueGeneric
which was removed in r158977.

Remove TextTrackCue::videoSizeDidChange(...) since it did nothing and
was never overridden. This looks like unfinished logic for moving cues
when the controls are shown and hidden, and could be revived in
<http://crbug.com/314066>.

BUG=313287

Review URL: https://codereview.chromium.org/50903009

git-svn-id: svn://svn.chromium.org/blink/trunk@161172 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove virtual where not needed in HTMLMediaElement/HTMLVideoElement
These functions were neither overrides or overridden anywhere, so
the virtual keywords were likely copypasta or unrealized plans.

BUG=313702

Review URL: https://codereview.chromium.org/53453004

git-svn-id: svn://svn.chromium.org/blink/trunk@161166 bbb929c8-8fbe-4397-9dbb-9b2b20218538
davve
Adjust placement of innerHTML
In Blink rev 160981, innerHTML was moved from HTMLElement to Element.
Adjust UmaPolicy to match the new placement.

BUG=311080

Review URL: https://codereview.chromium.org/54953002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@232388 0039d316-1c4b-4281-b951-d872f2087c98
davve
Enable ActivityLogApiTest.TriggerEvent and update test
Blink rev has been rolled to r161048, which includes the innerHTML
move from HTMLElement to Element. Update and enable the test that had
to be disabled during the transition.

BUG=311080

Review URL: https://codereview.chromium.org/54933002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@232385 0039d316-1c4b-4281-b951-d872f2087c98
philipj
Improve the 'track' and 'media' WATCHLISTS
BUG=none
NOTRY=true

Review URL: https://codereview.chromium.org/55163005

git-svn-id: svn://svn.chromium.org/blink/trunk@161155 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove trailing .* from patterns in WATCHLISTS
As per the IMPORTANT comment at the top of the file.

BUG=none
NOTRY=true

Review URL: https://codereview.chromium.org/55733002

git-svn-id: svn://svn.chromium.org/blink/trunk@161154 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Update references to Source/WebKit/chromium/ in WATCHLISTS
Source/WebKit/chromium/ was split into public/, Source/web/, and
possibly other directories over a number of commits, but WATCHLISTS
were not updated to match. For the updated paths, I've verified that
there are actually matching and reasonable files in Source/web/,
public/web/ and/or public/platform/.

As per the comment at the top of the file, .* was not added to the
end of the patterns, even if they had it before.

BUG=none
NOTRY=true

Review URL: https://codereview.chromium.org/55243009

git-svn-id: svn://svn.chromium.org/blink/trunk@161152 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Add self to media in WATCHLISTS
I've subscribed to feature-media-reviews@chromium.org, but the Blink
changes are drowned in a flood of Chromium reviews, so until there
is a separate list for Blink changes, just watch it directly.

BUG=none
NOTRY=true

Review URL: https://codereview.chromium.org/54773004

git-svn-id: svn://svn.chromium.org/blink/trunk@161151 bbb929c8-8fbe-4397-9dbb-9b2b20218538
tmoniuszko
ScopedNativeLibrary.Basic test fix
IsBadCodePtr() function was returning zero value randomly and the test was
raising false alarms sometimes. This fix changes the test to use
GetFunctionPointerFromNativeLibrary() instead.

BUG=

Review URL: https://codereview.chromium.org/32303002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@232192 0039d316-1c4b-4281-b951-d872f2087c98
fs
Decouple tokenizer/tree builder state from WebVTTParser
The WebVTTTokenizer owned by the WebVTTParser (m_tokenizer) is only
used by the WebVTTParser::createDocumentFragmentFromCueText method
on WebVTTParser.
The same is true for other state like the current token (m_token),
the current (subtree root) node (m_currentNode) and the stack of
language tags (m_languageStack).
Transplant this state together with it's mutator method -
constructTreeFromToken - onto a new helper class, WebVTTTreeBuilder,
and then use that in WebVTTParser::createDocumentFragmentFromCueText.

With the above in place, WebVTTParser::createDocumentFragmentFromCueText
can be made static, avoiding the contorted (and unnecessary) allocation
in TextTrackCue::createWebVTTNodeTree.

BUG=305317

Review URL: https://codereview.chromium.org/52713005

git-svn-id: svn://svn.chromium.org/blink/trunk@161073 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Add OVERRIDE where possible in HTMLMediaElement and children
Some of the places where it wasn't added are in order, but some of
them simply shouldn't be virtual and will be dealt with later.

BUG=313702

Review URL: https://codereview.chromium.org/51763009

git-svn-id: svn://svn.chromium.org/blink/trunk@161068 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Indent comments in HTMLMediaElement.h
Drop the "DOM API" comment because not everything below that point
is part of the DOM API anyway.

BUG=none
NOTRY=true

Review URL: https://codereview.chromium.org/54673003

git-svn-id: svn://svn.chromium.org/blink/trunk@161062 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Make WebVTTParser::collectTimeStamp static
This function is independent of internal WebVTTParser state, while
being used outside of the actual parser.

BUG=305317

Review URL: https://codereview.chromium.org/54463002

git-svn-id: svn://svn.chromium.org/blink/trunk@161059 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Make http LayoutTests work in Debian with Apache 2.4.
This patch is migrated from https://bugs.webkit.org/show_bug.cgi?id=120352
Original patch in WebKit by Allan Sandfeld Jensen <allan.jensen@digia.com>
Reviewed in WebKit by Andreas Kling.

Debian testing (jessie) and newer use Apache 2.4.

Select httpd.conf file for debian based on version, matching Fedora behavior.
Added an apache 2.4 configuration file adapted from Fedora's,
and renamed the 2.2 file to have consistent naming.

BUG=313632

Review URL: https://codereview.chromium.org/47023017

git-svn-id: svn://svn.chromium.org/blink/trunk@161058 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove outdated comment about CSP for <track>
The spec now explictly calls out associated text tracks:
https://dvcs.w3.org/hg/content-security-policy/raw-file/tip/csp-specification.dev.html#media-src

BUG=none
NOTRY=true

Review URL: https://codereview.chromium.org/54683002

git-svn-id: svn://svn.chromium.org/blink/trunk@161057 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Use TextTrackMode and TextTrackKind enums in TextTrack IDL
The generated code (modeAttributeSetter in V8TextTrack.cpp) now
checks that the string is one of the three allowed values, so we
can just assert it internally.

Also fiddle a bit with the IDL to make it match the spec order.

BUG=313602

Review URL: https://codereview.chromium.org/52593009

git-svn-id: svn://svn.chromium.org/blink/trunk@161055 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Use TextResourceDecoder for the WebVTTParser
Simplifies BOM handling, signature detection and fixes handling
of "short" (< 9 bytes) inputs.

Also fixes the signature checker to allow a formfeed character to
follow the signature itself.

BUG=231460

Review URL: https://codereview.chromium.org/54203003

git-svn-id: svn://svn.chromium.org/blink/trunk@161049 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove TextTrackLoaderClient::shouldLoadCues and ::cueLoadingStarted
Their only implementations (in TextTrackLoader) do nothing useful,
so just remove them until needed.

Also sprinkle some OVERRIDE in the neighborhood.

BUG=313287

Review URL: https://codereview.chromium.org/53533003

git-svn-id: svn://svn.chromium.org/blink/trunk@161048 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Correct use of virtual and OVERRIDE in HTMLTrackElement
canLoadUrl was virtual for no reason, and the TextTrackClient
implementation was missing OVERRIDE.

BUG=313287

Review URL: https://codereview.chromium.org/52443006

git-svn-id: svn://svn.chromium.org/blink/trunk@161047 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Sync the logging in HTMLMediaElement::scheduleDelayedAction with reality
The method was renamed in r145322, but not the log message.

BUG=none
NOTRY=true

Review URL: https://codereview.chromium.org/52593010

git-svn-id: svn://svn.chromium.org/blink/trunk@161045 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Handle resource fetch failure in TextTrackLoader::load
It's not clear when this can happen, even after looking at
ResourceFetcher::requestResource I was unable to produce a test
case which would hit this code path. However, given that we are
null-checking already, we might as well handle it correctly.

BUG=313287

Review URL: https://codereview.chromium.org/53213002

git-svn-id: svn://svn.chromium.org/blink/trunk@161040 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove LoadableTextTrackClient
It is completely unused.

BUG=313287

Review URL: https://codereview.chromium.org/53413003

git-svn-id: svn://svn.chromium.org/blink/trunk@160993 bbb929c8-8fbe-4397-9dbb-9b2b20218538
davve
Disable ActivityLogApiTest.TriggerEvent while waiting for Blink roll
Blink will move innerHTML from HTMLElement from Element. Because this
test relies on the exact placement of the function, disable it during
the transition.

BUG=311080
NOTRY=true

Review URL: https://codereview.chromium.org/45733012

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@231961 0039d316-1c4b-4281-b951-d872f2087c98
davve
Move innerHTML and outerHTML to Element
Per the DOM Parsing specification, innerHTML and outerHTML should be
available on Element, not HTMLElement. Since HTMLElement and SVGElement
are the only interfaces that inherit from Element, the only Web visible
difference should be that innerHTML and outerHTML are now available for
SVG elements.

For <svg>.innerHTML = "<!-- svg elements here -->" to insert elements
with correct namespace URI, one adjustment has to be made to the tree
builder step of the html parsing algorithm. The changes are described in
the spec change <http://html5.org/r/7768>. The new concept of
'adjustedCurrentNode' is used when processing and when deciding to
process foreign content and makes sure that parsed elements go into the
correct namespace.

Some layout tests that (perhaps accidentally) use innerHTML and
outerHTML on SVG elements are adjusted slightly.

This is a re-land of 160869 https://codereview.chromium.org/44333002/

BUG=311080

Review URL: https://codereview.chromium.org/52443003

git-svn-id: svn://svn.chromium.org/blink/trunk@160981 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove TextTrackResource
It's now just a RawResource, so use that instead.

BUG=312756

Review URL: https://codereview.chromium.org/52563002

git-svn-id: svn://svn.chromium.org/blink/trunk@160974 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Simplify HTMLTrackElement::didCompleteLoad
It doesn't need to be virtual and didn't use the first argument.

BUG=313287

Review URL: https://codereview.chromium.org/51883010

git-svn-id: svn://svn.chromium.org/blink/trunk@160971 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Use a TextTrackLoaderClient reference (not pointer)
It's never null, so remove all doubt for future readers of the code.

BUG=313287

Review URL: https://codereview.chromium.org/48113029

git-svn-id: svn://svn.chromium.org/blink/trunk@160970 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Refactor TextTrackLoader to properly use the dataReceived callback
We get the data and length in the callback, so just use it directly.

This accidentally fixes a parsing test, by changing the segmentation
of the input received by the WebVTT parser. A separate bug was filed
to fix the problem: http://crbug.com/313222

BUG=312756

Review URL: https://codereview.chromium.org/52533003

git-svn-id: svn://svn.chromium.org/blink/trunk@160965 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Rename TextTrackLoader::m_cachedCueData to m_resource
It's only used to add and remove a client and the code doesn't know
or care whether it's cached or not, just call it m_resource like
in DocumentThreadableLoader.

BUG=312756

Review URL: https://codereview.chromium.org/52463002

git-svn-id: svn://svn.chromium.org/blink/trunk@160953 bbb929c8-8fbe-4397-9dbb-9b2b20218538
davve
Add UseCounters for certain properties on CSSStyleDeclaration
Blink/WebKit/IE supports properties on CSSStyleDeclaration that are
the literal names of the CSS properties, for instance
style['font-face']. This is not supported in Gecko/Presto.

To measure usage on the Web, introduce two counters: one for the
dashed properties and one for the non-'css'-prefixed 'float' property
which hasn't been part of the specification.

BUG=290055

Review URL: https://codereview.chromium.org/47923015

git-svn-id: svn://svn.chromium.org/blink/trunk@160934 bbb929c8-8fbe-4397-9dbb-9b2b20218538
fs
Fix scoping of raw_bytes in URLRequestFileDirJob::OnListFile
data.info.GetName() returns a new FilePath object, and .value() thus
returns a reference to the string within that FilePath object.
This means that the FilePath object can vanish before the reference
to its contents is actually used - meaning whatever happens to be
on the stack will be accessed.
Fix by keeping a copy of the FilePath object in scope across call to
GetDirectoryListingEntry.

Introduced by r205019.

Review URL: https://codereview.chromium.org/48113006

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@231821 0039d316-1c4b-4281-b951-d872f2087c98
davve
Move innerHTML and outerHTML to Element
Per the DOM Parsing specification, innerHTML and outerHTML should be
available on Element, not HTMLElement. Since HTMLElement and SVGElement
are the only interfaces that inherit from Element, the only Web visible
difference should be that innerHTML and outerHTML are now available for
SVG elements.

For <svg>.innerHTML = "<!-- svg elements here -->" to insert elements
with correct namespace URI, one adjustment has to be made to the tree
builder step of the html parsing algorithm. The changes are described in
the spec change <http://html5.org/r/7768>. The new concept of
'adjustedCurrentNode' is used when processing and when deciding to
process foreign content and makes sure that parsed elements go into the
correct namespace.

Some layout tests that (perhaps accidentally) use innerHTML and
outerHTML on SVG elements are adjusted slightly.

BUG=311080

Review URL: https://codereview.chromium.org/44333002

git-svn-id: svn://svn.chromium.org/blink/trunk@160869 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Let TextTrackResource be a RawResource
This allows deprecatedDidReceiveResource to be removed completely, by
using the exising appendData callback instead.

The removed FIXME was a little bit confused, in that it didn't seem to
realize that incremental parsing is needed for WebVTT.

Also add OVERRIDE where possible.

BUG=312756

Review URL: https://codereview.chromium.org/50123006

git-svn-id: svn://svn.chromium.org/blink/trunk@160848 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Implement WindowEventHandlers
Spec: http://whatwg.org/html#windoweventhandlers

This is mostly refactoring, but there are Web-facing changes for
onmessage, onpageshow and onpagehide, which were not correctly handled.

Drop the "Not implemented yet" blocks. onafterprint and onbeforeprint
are listed in WindowEventHandlers.idl, while onredo and onundo are
not in the spec.

BUG=305112

Review URL: https://codereview.chromium.org/48603002

git-svn-id: svn://svn.chromium.org/blink/trunk@160816 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Let MediaError.MEDIA_ERR_ENCRYPTED depend on EncryptedMediaAnyVersion
Also fix the indentation.

BUG=310641

Review URL: https://codereview.chromium.org/48573004

git-svn-id: svn://svn.chromium.org/blink/trunk@160808 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rchlodnicki
Return matching plug-ins in the sorted order (by version number).
In case there are multiple plug-ins in one group (multiple versions
of Flash plug-in for example), returning sorted list that has highest
version first makes sure that Chrome won't try to load outdated
version and end up blocking it in the end.

BUG=13892

Review URL: https://codereview.chromium.org/26541011

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@231381 0039d316-1c4b-4281-b951-d872f2087c98
philipj
Handle the onerror content attribute for <body> and <frameset>
Firefox also passes the test. Presto fails on "Convert to function"
everywhere, and IE11 was not tested.

BUG=310630

Review URL: https://codereview.chromium.org/48303003

git-svn-id: svn://svn.chromium.org/blink/trunk@160708 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Add UseCounter for TextTrackCue constructor
The plan in issue 270340 is to leave the TextTrackCue constructor until
it is known to be safe to deprecate and remove. Add a UseCounter so that
we can get stats from M32 stable, to be branched Nov 4th, 2013.

BUG=270340

Review URL: https://codereview.chromium.org/47453002

git-svn-id: svn://svn.chromium.org/blink/trunk@160707 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Explicit GC of strings to avoid test timeout.
The test file visited-link-hang.html creates millions of strings with length
1-1000000. That caused the giant-stylesheet-crash.html test to time out if
the strings were still not garbage collected. Added explicit garbage
collection to clean up after the visited-link-hang strings. Likewise, added
explicit GC calls as a safety measure in the test that timed out.

R=ojan@chromium.org
BUG=305037

Review URL: https://codereview.chromium.org/38293002

git-svn-id: svn://svn.chromium.org/blink/trunk@160683 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Have XHR.getResponseHeader() return null in initial ready states.
Follow the XMLHttpRequest specification for getResponseHeader() and
return null if the object is in ready states {UNSENT, OPENED}.

Similarly for getAllResponseHeaders() and returning "" (the empty
string) when in these initial two ready states.

This replaces the older spec behavior of throwing InvalidStateError,
something that no other engines currently do, hence cross-browser
compatibility risk is low.

When reconciling the relevant tests, reworked these to use
js-test-{pre,post}.js instead.

R=tyoshino@chromium.org
BUG=311274

Review URL: https://codereview.chromium.org/46913002

git-svn-id: svn://svn.chromium.org/blink/trunk@160679 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Unify the GlobalEventHandlers list on the C++ side
Several changes need to be made in sync to achieve this.

Teach the IDL compiler to generate static calls for EventTarget,
allowing GlobalEventHandlers.h to be the single list of the event
attributes on the C++ side.

The handling of the 5 special event handler attributes on body and
frameset was very strange, with both virtual getters/setters in C++
and overrides at the IDL level. Remove the former mechanism, and fix
up the later to fill the job it was clearly added to do.

Also fix some style issues in EventTarget.h to please presubmit.tributes on the C++ side.

BUG=305112

Review URL: https://codereview.chromium.org/37263002

git-svn-id: svn://svn.chromium.org/blink/trunk@160676 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
CRLF -> LF in giant-stylesheet-crash.html
Not able to apply another patch from rietveld due to CRLF issues.

TBR=ojan@chromium.org
BUG=None

Review URL: https://codereview.chromium.org/46063006

git-svn-id: svn://svn.chromium.org/blink/trunk@160658 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove dead code for reflected attributes on <audio>, <video> and <track>
Where [Reflect] is used in the IDL, the getters and setters in C++ are
only for internal convenience, and these were unused.

BUG=none

Review URL: https://codereview.chromium.org/41343003

git-svn-id: svn://svn.chromium.org/blink/trunk@160637 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
Improve TypeError messages from failed array conversions.
Should the conversion of a value into a native array fail due to it
not having a sequence type, throw the expected TypeError but with a
message that better explains what failed.

Address this by extending the two v8 bindings helpers
WebCore::toNativeArray() and WebCore::toRefPtrNativeArray() with an
extra argument to indicate either the property name that's being
converted to an array, or its argument index position (1-indexed.)
(Or 0, if it is a setter with an array/sequence type.) In the case of
toRefPtrNativeArray(), either a property name or an argument index
might supplied; toNativeArray() only needs to support the argument
indexed form.

The code generator has been extended to supply the extra argument when
calling upon these two array conversion helpers.

So, if the array conversion fails due to the value not being array (or
array-like), the TypeError's message is now generated by a pair of
ExceptionMessages helper methods:

 static String notASequenceTypeArgumentOrValue(int argumentIndexOrValue);
 static String notASequenceTypeProperty(const String& propertyName);

which handles the argument/setter value and property case,
respectively. The output will be of the form

 {X} is not an array, nor does it have indexed properties.

where X is one of

   "'{ThePropertyName}' property"
   "Value"
   "Argument {First,Second,Third,<N>th}"

R=
BUG=308730

Review URL: https://codereview.chromium.org/38063003

git-svn-id: svn://svn.chromium.org/blink/trunk@160593 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
allow overriding default_font_cache_limit
Android uses a 1M default skia glyph cache, but all other builds that
use skia default to 20M.  This patch makes the value configurable so non-android builds can choose an optimal value.

Review URL: https://codereview.chromium.org/41173002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@230999 0039d316-1c4b-4281-b951-d872f2087c98
philipj
Drop NotEnumerable for the on* event handler IDL attributes (again)
The previous commit (r159721) intended to remove all of the
NotEnumerable attributes, but missed these.

BUG=305112

Review URL: https://codereview.chromium.org/37283002

git-svn-id: svn://svn.chromium.org/blink/trunk@160536 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove <video> width and height attributes from intrisic size logic
The width/height content attributes already influence specified style
via HTMLVideoElement::collectStyleForPresentationAttribute, to also
influence the intrinsic size has never been part of the spec:
http://whatwg.org/html#the-video-element

The test case passes in Firefox Nightly and IE11 Release Preview,
but fails in Opera Presto, which has no default intrinsic size.
Opera is actually correct per spec, but fixing Blink can be done
in a separate bug.

BUG=310122

Review URL: https://codereview.chromium.org/38313002

git-svn-id: svn://svn.chromium.org/blink/trunk@160491 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove dead code for webkitvisibilitychange in Document
There's no attribute EventHandler onwebkitvisibilitychange in the IDL,
so the DEFINE_ATTRIBUTE_EVENT_LISTENER would just output dead code.

BUG=none

Review URL: https://codereview.chromium.org/35693008

git-svn-id: svn://svn.chromium.org/blink/trunk@160346 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rchlodnicki
Use relative path for scripts loaded in content WebUI's
Specifying relative path works exactly the same as specifying absolute
path, as long as the script is declared using
WebUIDataSource::AddResourcePath (which it is in case of changed
WebUIs). So there is no behavioral change in case of Chromium. The
reason for this change is it makes the live of embedders of content
easier when embedder is loading the WebUI from a scheme that is not
chrome: (it is opera: for us). It allows us to save on on adding
security policy overrides for each content WebUI.

BUG=

Review URL: https://codereview.chromium.org/26930002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@230401 0039d316-1c4b-4281-b951-d872f2087c98
philipj
Remove redundant scheduleDelayedAction in Audio constructor
Setting the src attribute will trigger HTMLMediaElement::parseAttribute,
which already calls scheduleDelayedAction when src is modified.

This is already tested by LayoutTests/media/audio-constructor-src.html

BUG=none

Review URL: https://codereview.chromium.org/36863002

git-svn-id: svn://svn.chromium.org/blink/trunk@160333 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Add UseCounters for Element.webkitRequestFullscreen/webkitRequestFullScreen
Spawned from "Is there a plan for shipping unprefixed fullscreen API?"

https://groups.google.com/a/chromium.org/d/msg/blink-dev/iElkfxDU7d4/gV0HS8guXscJ

BUG=none

Review URL: https://codereview.chromium.org/36573003

git-svn-id: svn://svn.chromium.org/blink/trunk@160329 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Add self to watchlist for <track>
BUG=none

Review URL: https://codereview.chromium.org/36673002

git-svn-id: svn://svn.chromium.org/blink/trunk@160326 bbb929c8-8fbe-4397-9dbb-9b2b20218538
sigbjornf
More informative error messages for non-Transferables.
Elaborate the TypeError exception reported if the various
postMessage()s (on window, at the dedicated Worker global scope, or
over MessagePorts) are ill-typed transferable arguments, supplying an
error message indicating that the transferable argument isn't a
sequence type.

R=
BUG=308730

Review URL: https://codereview.chromium.org/30673002

git-svn-id: svn://svn.chromium.org/blink/trunk@160323 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove TreatNullAs=NullString for media interfaces
The spec doesn't have special null handling here:
http://www.whatwg.org/specs/web-apps/current-work/multipage/the-video-element.html

The updated test was run in Firefox Nightly (with media.webvtt.enabled),
IE11 Release Preview and Opera 12.16 (Presto 2.12.388). Everything
passes, with these exceptions:

No other browser supports the mediaGroup property.

The preload default value is "metadata" in IE11 and Presto, and "" in
Firefox. The spec suggests "metadata". Bugs filed:
https://code.google.com/p/chromium/issues/detail?id=310450
https://bugzilla.mozilla.org/show_bug.cgi?id=929890

BUG=310298

Review URL: https://codereview.chromium.org/35803004

git-svn-id: svn://svn.chromium.org/blink/trunk@160318 bbb929c8-8fbe-4397-9dbb-9b2b20218538
davve
Unstick background position origins
In the FillLayer class, reset the {x,y} origins each time {x,y}
position is set and require the caller to later call
setBackground{X,Y}Origin to override the default value. This fits
better with the way 'initial' values are set from the StyleBuilder and
avoids the problem of origins lingering in the FillLayer when setting
the 2-value versions of background-position.

Furthermore, split the flag m_backgroundOriginSet into one for each
property so that something like 'background-position-x:initial' won't
reset the position origin for both properties.

Also, remove code for handling 'initial' for {x,y} position, 'initial'
is already handled in the StyleBuilder further up the call chain.

BUG=304721

Review URL: https://codereview.chromium.org/35303002

git-svn-id: svn://svn.chromium.org/blink/trunk@160243 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove HTMLMediaElement.initialTime
It was dropped from spec in April 2012:
http://html5.org/r/7046

BUG=309474

Review URL: https://codereview.chromium.org/35033002

git-svn-id: svn://svn.chromium.org/blink/trunk@160209 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Test setting string properties to null on <audio>, <video>, <source> and <track>
http://www.whatwg.org/specs/web-apps/current-work/multipage/the-video-element.html

The spec doesn't have [TreatNullAs=NullString] for any of these
properties, so the added tests are actually wrong for mediaGroup,
poster and src. The implementation will be fixed in future commits.

BUG=none

Review URL: https://codereview.chromium.org/30693003

git-svn-id: svn://svn.chromium.org/blink/trunk@160195 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Add UseCounter for HTMLSourceElement.media
https://www.w3.org/Bugs/Public/show_bug.cgi?id=19619

By counting the number of candidate <source> elements and the number
of non-matching media attributes, we can determine what the impact of
removing the attribute from spec and implementation would be.

BUG=310006

Review URL: https://codereview.chromium.org/32583007

git-svn-id: svn://svn.chromium.org/blink/trunk@160190 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove HTMLMediaElement.startTime
It was replaced with initialTime in August 2010:
http://html5.org/r/5310

BUG=309473

Review URL: https://codereview.chromium.org/32583003

git-svn-id: svn://svn.chromium.org/blink/trunk@160174 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Use MeasureAs and ImplementedAs in media IDL
This leaves the C++ code a little bit cleaner.

Also indent HTMLMediaElement.idl for consistency.

BUG=309364

Review URL: https://codereview.chromium.org/32103002

git-svn-id: svn://svn.chromium.org/blink/trunk@160119 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Normalize indentation in Element.idl
The DOM Level 2 Core block was very weird, so re-indent things
to have some kind of consistency in indentation and line length.

BUG=none

Review URL: https://codereview.chromium.org/31373003

git-svn-id: svn://svn.chromium.org/blink/trunk@160088 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove the old WebKit watchlist
It has not been edited since April and shows no signs of being in use,
WATCHLISTS in the root is where the action is. Remove to save others
the trouble of figuring that out.

BUG=none

Review URL: https://codereview.chromium.org/31223002

git-svn-id: svn://svn.chromium.org/blink/trunk@160035 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Add UseCounters for prefixed HTMLVideoElement APIs
Count the *Fullscreen and *FullScreen calls separately, since it's likely
that the later are less common and could potentially be dropped first.

BUG=309364

Review URL: https://codereview.chromium.org/31203002

git-svn-id: svn://svn.chromium.org/blink/trunk@160031 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Add UseCounters for webkitAudioDecodedByteCount/webkitVideoDecodedByteCount
BUG=309364

Review URL: https://codereview.chromium.org/28903009

git-svn-id: svn://svn.chromium.org/blink/trunk@160023 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Count beforeload separately for isolated worlds
BUG=308218

Review URL: https://codereview.chromium.org/26828003

git-svn-id: svn://svn.chromium.org/blink/trunk@159909 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Add shared GlobalEventHandlers IDL
The GlobalEventHandlers.h is empty because the code generator
includes it, but empty until the C++ bits are also shared.

BUG=305112

Review URL: https://codereview.chromium.org/27133002

git-svn-id: svn://svn.chromium.org/blink/trunk@159859 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Forward onscroll on body and frameset to window
The spec lists 5 such attributes, this is the missing one.
Ad-hoc testing shows that Firefox already supports this.

BUG=305112

Review URL: https://codereview.chromium.org/27511002

git-svn-id: svn://svn.chromium.org/blink/trunk@159844 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove redundant attribute-to-event mappings in HTMLMediaElement
See bug for why beforeload was left in.

BUG=308047

Review URL: https://codereview.chromium.org/27154004

git-svn-id: svn://svn.chromium.org/blink/trunk@159813 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Add missing event handler attributes
Document, Element and Window now have almost all the on* attributes
from GlobalEventHandlers and are in sync with each other, except:

 * The dragexit event is part of the drag-and-drop processing model,
   but is never fired in Blink.
 * The sort event is part of the table sorting algorithm, which has
   not been implemented yet.

Also alphabetize the lists in Document.h and Element.h.

BUG=305112

Review URL: https://codereview.chromium.org/27132002

git-svn-id: svn://svn.chromium.org/blink/trunk@159781 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Drop NotEnumerable for the on* event handler IDL attributes
BUG=305112

Review URL: https://codereview.chromium.org/26117003

git-svn-id: svn://svn.chromium.org/blink/trunk@159721 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Enable the SVG GlobalEventHandlers test
I forgot this in a previous commit. It turns out that SVGSVGElement
forwards some of these properties to window, which broke the tests,
so use a SVGRectElement for testing instead.

BUG=305112

Review URL: https://codereview.chromium.org/26599003

git-svn-id: svn://svn.chromium.org/blink/trunk@159689 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
remove sandbox/linux/seccomp-legacy references from licenses.py
sandbox/linux/seccomp-legacy no longer exists in the tree, so let's remove
references to it from the license documentation generation script.

Review URL: https://codereview.chromium.org/27195007

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@228592 0039d316-1c4b-4281-b951-d872f2087c98
rune
Remove temporary <p> elements from printing tests.
The <p> elements were introduced temporarily in [1]. The blink bug is rolled
in, hence the <p> elements can be removed.

[1] https://src.chromium.org/viewvc/chrome?view=rev&revision=227076

R=vitalybuka@chromium.org
BUG=None

Review URL: https://codereview.chromium.org/26914004

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@228563 0039d316-1c4b-4281-b951-d872f2087c98
rune
Removed fullscreen test timeouts to prevent flakiness.
Some fullscreen tests had an internal timeout of 50-100ms that would cause
the tests to fail if it the browser was not able to trigger the
fullscreenchange event in time. The idea is that this caused the flakiness of
the tests removed from TestExpectations in this CL. At least, when reducing
the timeout in the test, I was able to reproduce the failure with a debug run
of the fullscreen tests.

BUG=100798

Review URL: https://codereview.chromium.org/27021003

git-svn-id: svn://svn.chromium.org/blink/trunk@159564 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Drop PerWorldBindings for the on* event handler IDL attributes
PerWorldBindings is applied inconsistently for these attributes,
so simply drop it to reduce the differences in preparation for
GlobalEventHandlers.

BUG=305112

Review URL: https://codereview.chromium.org/26535005

git-svn-id: svn://svn.chromium.org/blink/trunk@159511 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Refine the GlobalEventHandlers test
http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2013-October/thread.html#40980

The conclusion of the WHATWG "Should onfoo event handler properties be
on Element or HTMLElement?" thread was that not letting Element have
these properties is more sane, because reflecting the corresponding
content attributes for Element would be odd.

Update the test to assert that Element does not have the properties,
but that HTMLElement and SVGElement do.

Also split the enumerate tests so that individual results can be seen.

BUG=305112

Review URL: https://codereview.chromium.org/26478004

git-svn-id: svn://svn.chromium.org/blink/trunk@159478 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mpawlowski
Functions that decoded ie7 structures to extract per-URL username and password assumed there will only be one such pair for a URL. Changed to work with URLs for which there are several sets of credentials stored.
BUG=305241
TEST=IE7PasswordTest.*

Review URL: https://codereview.chromium.org/26465006

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@228180 0039d316-1c4b-4281-b951-d872f2087c98
davve
Remove ImageSource::bytesDecodedToDetermineProperties() and fallout
Since the WebKit split, it always returns zero. Removing it enables us
also to remove the not always up-to-date m_decodedSize and avoid a
quite common assertion failure on GIF animations. No functional
changes expected.

BUG=288879

Review URL: https://codereview.chromium.org/25976002

git-svn-id: svn://svn.chromium.org/blink/trunk@159433 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Make units-000.htm from ietestcenter pass.
In order to do this I had to:

- Change the incorrect unit vm to vmin which was already done on the IE test
  center site.

- Modify the test to use a font-size of 20px instead of 16px for the Ahem
  font to work around a font rendering issue in Blink.

- Better support for viewport relative lengths for border.

  Viewport relative lengths for the border-width properties translated from
  the number value of the viewport relative units to a pixel length without
  taking the viewport size into account. The code now converts to a px length
  through conversion of a Length object using the RenderView.

BUG=webkit.org/b/85308

Review URL: https://codereview.chromium.org/26802003

git-svn-id: svn://svn.chromium.org/blink/trunk@159363 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove excessive indentation in HTMLElement.idl
It's been like this for a long time for no apparent reason, and
is harder to read (and fit on screen) than it needs to be.

BUG=none

Review URL: https://codereview.chromium.org/26473003

git-svn-id: svn://svn.chromium.org/blink/trunk@159328 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove HTMLMediaElement.webkitHasClosedCaptions/webkitClosedCaptionsVisible
See the bug for why it is (probably) best to remove these.

Move some things in HTMLMediaElement.idl to match the spec order and
to leave all WebKit extensions in a group at the end.

Drop duplicate TreatNullAs=NullString introduced in r159260.

BUG=305753

Review URL: https://codereview.chromium.org/26759003

git-svn-id: svn://svn.chromium.org/blink/trunk@159317 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove HTMLMediaElement.webkitPreservesPitch
It is not implemented, so remove it until there is a spec, at
which point it can be implemented without a prefix.

BUG=305554

Review URL: https://codereview.chromium.org/26679002

git-svn-id: svn://svn.chromium.org/blink/trunk@159246 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ed
Non-US OS region generates invalid trace JSON.
JSON output from the trace logging has floats formatted
to the current user locale, which can make opening the
trace fail.

R=
BUG=304818

Review URL: https://codereview.chromium.org/26249002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@227730 0039d316-1c4b-4281-b951-d872f2087c98
mstensho
Add support for the column-fill property.
Note: This is only supported in the (new) region based multicol implementation.

With column-fill support, a lot of multicol tests need an update.
The old implementation behaved as if column-fill were 'auto', but the
initial value is 'balance', so now we need to be explicit about that.
For auto-height tests it doesn't really matter - such multicols are always
balanced anyway.

Already reviewed in WebKit by David Hyatt.
See https://bugs.webkit.org/show_bug.cgi?id=117693

BUG=302897

Review URL: https://codereview.chromium.org/25687002

git-svn-id: svn://svn.chromium.org/blink/trunk@159227 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jl
Fix History.{push,replace}State handling of null 'url' argument
According to the specification[1], if the 'url' argument is null, the
new URL should be the URL of the current entry.  A relative URL should
be resolved using the document's base URL.

Adjust History::urlForState() to not treat a null (isNull()) string the
same as an empty (isEmpty()) string, which it otherwise does since
isEmpty() returns true for null strings as well.

BUG=279278

[1] http://www.whatwg.org/specs/web-apps/current-work/#dom-history-pushstate

Review URL: https://codereview.chromium.org/26216003

git-svn-id: svn://svn.chromium.org/blink/trunk@159120 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Add LayoutTest for GlobalEventHandlers
BUG=305112

Review URL: https://codereview.chromium.org/26467002

git-svn-id: svn://svn.chromium.org/blink/trunk@159116 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Set SVN attribute eol-style on some files.
This is an attempt to make the try bots able to modify these files.

Got problems with https://codereview.chromium.org/25687002


git-svn-id: svn://svn.chromium.org/blink/trunk@159030 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Ship object-fit and object-position.
Change runtime flag ObjectFitPosition from experimental to stable.

BUG=236331,236333

Review URL: https://codereview.chromium.org/25761005

git-svn-id: svn://svn.chromium.org/blink/trunk@158982 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
@page rule missing from simpleUserAgentStyleSheet.
simpleUserAgentStyleSheet did not have an @page rule like html.css.
The result was flakiness for the following test depending on whether the full
UA styles had been triggered by a previous test or not:

LayoutTests/printing/page-format-data.html

This is a reland of http://crrev.com/25856002 after http://crrev.com/25446005

TBR=ojan
BUG=303324

Review URL: https://codereview.chromium.org/26050002

git-svn-id: svn://svn.chromium.org/blink/trunk@158969 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Silence narrowing warning with XRectangle
XRectangle is defined as such in <X11/Xlib.h>:

typedef struct {
    short x, y;
    unsigned short width, height;
} XRectangle;

BUG=none

Review URL: https://codereview.chromium.org/25647004

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@227083 0039d316-1c4b-4281-b951-d872f2087c98
rune
Trigger full html.css styles for some printing tests.
In Blink, @page UA styles is missing from the simple html stylesheet which
is used instead of html.css for documents which contains a certain subset
of html element types. Adding that @page rule to that simplified stylesheet
will change the actual results for these tests which have expectations
relying on that bug[1]:

  PrintWebViewHelperPreviewTest.PrintPreviewShrinkToFitPage
  PrintWebViewHelperPreviewTest.PrintPreviewCenterToFitPage

This CL changes the expected results and adds a <p> element to those tests
in order to trigger the correct @page rule from html.css without the fix in
Blink. Then the Blink fix[2] can land and be rolled into chromium without
affecting the results of the mentioned tests.

After the Blink fix is rolled into chromium, the <p> elements can be safely
removed again.

[1] https://code.google.com/p/chromium/issues/detail?id=304021
[2] https://codereview.chromium.org/25856002/

R=vitalybuka@chromium.org
BUG=304021

Review URL: https://codereview.chromium.org/25446005

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@227076 0039d316-1c4b-4281-b951-d872f2087c98
rune
Fix WHITESPACE issues in the CSS grammar.
A single WHITESPACE token consumes consecutive spaces, but does not consume
spaces separated by comments. That means S* and S+ in CSS grammars need to
accept multiple WHITESPACE tokens. Additionally, white spaces are not
mandatory to separate an @-symbol and the rest of the prelude.

Use space non-terminal instead of WHITESPACE for S+ in calc expressions.

Use maybe_space non-terminal instead of WHITESPACE for S* after @-webkit-filter
and @-webkit-region.

BUG=303303

Review URL: https://codereview.chromium.org/25607005

git-svn-id: svn://svn.chromium.org/blink/trunk@158950 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Convert a few more HTML files from using DOS line breaks to UNIX.
This makes it possible for the trybots to apply changes here.

TBR=jochen@chromium.org
BUG=

Review URL: https://codereview.chromium.org/25994003

git-svn-id: svn://svn.chromium.org/blink/trunk@158926 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Convert a couple of HTML files from using DOS line breaks to UNIX.
This will hopefully make it possible for the trybots to apply changes here.

TBR=jochen@chromium.org
BUG=

Review URL: https://codereview.chromium.org/26000003

git-svn-id: svn://svn.chromium.org/blink/trunk@158924 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
@page rule missing from simpleUserAgentStyleSheet.
simpleUserAgentStyleSheet did not have an @page rule like html.css.
The result was flakiness for the following test depending on whether the full
UA styles had been triggered by a previous test or not:

LayoutTests/printing/page-format-data.html

R=ojan
BUG=303324

Review URL: https://codereview.chromium.org/25856002

git-svn-id: svn://svn.chromium.org/blink/trunk@158866 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rchlodnicki
Don't pull in content_switches.cc to whole chrome code base
The point of this change is remove compilation of content_switches.cc
that was done in installer_util target. This is a static library
that other parts of chrome pull in and that makes the Chrome code that
references those switches compile even if the switches itself are
not exported.
Installer_util doesn't even seem to uses those switches AFAIK.

Dropped compilation of these files so these problems are actually
exposed and addressed by the person adding the switch. The main
offender that referenced those switches was chrome's about_flags.cc.

BUG=

Review URL: https://codereview.chromium.org/24994002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@226921 0039d316-1c4b-4281-b951-d872f2087c98
rune
Corrected UA style for a:focus in simpleUserAgentStyleSheet.
simpleUserAgentStyleSheet did not have an outline on a:focus like html.css.
The result was flakiness for the following test depending on whether the full
UA styles had been triggered by a previous test or not:

LayoutTests/fast/events/reveal-link-when-focused.html

R=ojan@chromium.org
BUG=303323

Review URL: https://codereview.chromium.org/25722007

git-svn-id: svn://svn.chromium.org/blink/trunk@158814 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Wait for store flush in CookieMonster::Delete*Task
Second attempt to commit this, after fixing a flaky test:
http://code.google.com/p/chromium/issues/detail?id=302914

BUG=252217

Review URL: https://codereview.chromium.org/18032002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@226720 0039d316-1c4b-4281-b951-d872f2087c98
philipj
Don't crash on invalid URL in GTK ContentShell
Entering an invalid URL crashed on the failing DCHECK in GURL::spec().

BUG=

Review URL: https://codereview.chromium.org/25841002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@226715 0039d316-1c4b-4281-b951-d872f2087c98
philipj
Rename RenderMediaControlsChromium to RenderMediaControls
The original RenderMediaControls was removed in a previous commit.

BUG=302500

Review URL: https://codereview.chromium.org/25699002

git-svn-id: svn://svn.chromium.org/blink/trunk@158724 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Explicit space required around NOT/ONLY/AND in CSS MQ.
The Media Queries errata[1] dated 2013-08-30 changes from S* to S+ around
NOT, ONLY, and AND tokens. In practice, it means these tokens cannot be
separated from other tokens using comments alone anymore.

[1] http://www.w3.org/Style/2012/REC-mediaqueries-20120619-errata.html

BUG=288803

Review URL: https://codereview.chromium.org/23542021

git-svn-id: svn://svn.chromium.org/blink/trunk@158717 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Correct and simplify the cookie events browser test
The listeners were being removed in the completion callback to
chrome.cookies.set instead of in the chrome.cookiesonChanged
listener. Nothing guaranteed the order of these two, so the test
begun failing when delete started waiting for flush in
<https://chromiumcodereview.appspot.com/18032002>.

Simplify the tests by using listenOnce/listenForever.

BUG=302914

Review URL: https://codereview.chromium.org/25677004

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@226456 0039d316-1c4b-4281-b951-d872f2087c98
rune
Media query malformed when 'or' is used as a media type.
The Media Queries errata[1] dated 2013-06-27 includes 'or' in the list of
reserved keywords that will result in a malformed media query instead of an
unknown media type when used as a media type.

[1] http://www.w3.org/Style/2012/REC-mediaqueries-20120619-errata.html

BUG=288213

Review URL: https://codereview.chromium.org/23477048

git-svn-id: svn://svn.chromium.org/blink/trunk@158713 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove npr.org quirk in HTMLMediaElement
This quirk was added in <http://trac.webkit.org/changeset/58586> with
reference to <rdar://problem/7902467>. Unfortunately, the details are
unavailable. It's likely that npr.org has changed since this was added,
so try removing the quirk to see if anything breaks.

BUG=302409

Review URL: https://codereview.chromium.org/25516002

git-svn-id: svn://svn.chromium.org/blink/trunk@158703 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Remove superfluous "either"
Left in by mistake in https://codereview.chromium.org/3129003

NOTRY=True
BUG=

Review URL: https://codereview.chromium.org/25479002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@226424 0039d316-1c4b-4281-b951-d872f2087c98
philipj
Remove empty RenderMediaControls
BUG=302500

Review URL: https://codereview.chromium.org/25540002

git-svn-id: svn://svn.chromium.org/blink/trunk@158658 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Empty @viewport should not override legacy viewport.
@viewport styles should not be considered present in author styles if there is
not a single descriptor present. This is not specified anywhere, though.

Marking the ViewportStyleResolver with author styles present when there were
no descriptors caused an assert to trigger (see mentioned BUG). This is fixed
by always require at least one descriptor to be present in order to set the
flag for author style presence, keeping the assert.

As part of this fix, collectViewportRules was refactored into
ViewportStyleResolver to resolve a FIXME in the StyleResolver.

BUG=299719

Review URL: https://codereview.chromium.org/25257003

git-svn-id: svn://svn.chromium.org/blink/trunk@158625 bbb929c8-8fbe-4397-9dbb-9b2b20218538
msimonides
Make SchemaLoader independent of current working directory.
The SchemaLoader looks for schema files in the current directory. This
isn't very robust and may cause problems for other products than
Chromium if they run the script from a GYP file in another directory.

The SchemaLoader is supplied two arguments now: the path to API files
relative to the root path (for use in #includes) and the regular path
to API files (for file access).

BUG=

Review URL: https://codereview.chromium.org/23534063

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@225977 0039d316-1c4b-4281-b951-d872f2087c98
rune
Added missing @viewport to the simple UA stylesheet.
@viewport UA rule also required when the simple UA styles should otherwise
suffice to style the document.

BUG=298477

Review URL: https://chromiumcodereview.appspot.com/25092003

git-svn-id: svn://svn.chromium.org/blink/trunk@158488 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Paint region based columns correctly in non-default writing-modes.
The column translation offset was calculated incorrectly.
The dirty rect intersection check was also wrong.

Added some documentation, to make it clear what's going on.

This patch is ported from WebKit.
https://bugs.webkit.org/show_bug.cgi?id=118506
Reviewed in WebKit by David Hyatt.

BUG=269417

Review URL: https://chromiumcodereview.appspot.com/22576002

git-svn-id: svn://svn.chromium.org/blink/trunk@158433 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ohrn
Fix missing SYS_mmap when building Android on x86.
Review URL: https://codereview.chromium.org/24560002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@225533 0039d316-1c4b-4281-b951-d872f2087c98
mstensho
Clip region based columns properly.
Need to call RenderRegion::overflowRectForFlowThreadPortion() first,
and THEN clip in the column gaps. overflowRectForFlowThreadPortion()
expands the logical left and right to the flow thread's overflow
rectangle, effectively defeating inline direction clipping completely.

This patch is ported from WebKit.
https://bugs.webkit.org/show_bug.cgi?id=118499
Reviewed in WebKit by David Hyatt.

BUG=269441

Review URL: https://chromiumcodereview.appspot.com/22577002

git-svn-id: svn://svn.chromium.org/blink/trunk@158387 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Need to take an element's scroll offset into account when painting its column rules.
R=
BUG=236315

Review URL: https://chromiumcodereview.appspot.com/14238038

git-svn-id: svn://svn.chromium.org/blink/trunk@158386 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jiangj
Fix renderer assert after autofill
PasswordAutofillAgent may modify value of newFocusedNode in BlurEvent
dispatched above, while newFocusedNode->isFocusable() expects that
newFocusedNode->needsLayout() not to be true, updateLayout() here in
case that happens.

BUG=251163

Review URL: https://chromiumcodereview.appspot.com/21346002

git-svn-id: svn://svn.chromium.org/blink/trunk@158348 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jiangj
Fix unhandled showGuessPanel editor command
The main menu sends a -showGuessPanel: to first responder when
Edit -> Spelling and Grammar -> Show Spelling and Grammar is called.

showGuessPanel was supposed to be handled by RenderWidgetHostViewMacDelegate,
it should be forwarded to the delegate from RenderWidgetHostViewMac by
-forwardingTargetForSelector:. However, since we dynamically added
implementations for all editing commands, including showGuessPanel, to
RenderWidgetHostViewMac via RenderWidgetHostViewMacEditCommandHelper,
RenderWidgetHostViewMacDelegate didn't get to handle this command at all,
it's directly sent to WebFrameImpl::executeCommand(name, "").

Add missing handling there (previously only WebFrameImpl::executeCommand()
with command name but not value is handled) so that showGuessPanel is
correctly handled.

BUG=257627

Review URL: https://chromiumcodereview.appspot.com/18553006

git-svn-id: svn://svn.chromium.org/blink/trunk@158346 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Sync Android <video controls> with the default controls
Add back the rounded border and the bottom 5px padding.

BUGS=251244

Review URL: https://chromiumcodereview.appspot.com/17382003

git-svn-id: svn://svn.chromium.org/blink/trunk@158344 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Add Adreno GPU to deep memory profiler Android policies
The Adreno GPU is used on the Samsung Galaxy S4 GT-I9505.

NOTRY=True

Review URL: https://chromiumcodereview.appspot.com/23976012

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@225199 0039d316-1c4b-4281-b951-d872f2087c98
tiger
Relax Content-Type parameter parsing
Unfortunately Opera 12 (this could possibly be found in files generated by
other products as well, or by hand) and below does not write out its
Content-Type parameters according to the standard (start parameter contains
tspecials without being an unquoted-string) in some MHTML files. This patch
relaxes the parsing of Content-Type parameters to allow this.

R=tony@chromium.org
BUG=274407

Review URL: https://chromiumcodereview.appspot.com/23043002

git-svn-id: svn://svn.chromium.org/blink/trunk@158314 bbb929c8-8fbe-4397-9dbb-9b2b20218538
pstanek
addMarker() optimizations.
Essentially, DocumentMarkerController maintained a list
(WTF::Vector) of markers. And linearly traversed that list
to coalesce markers. If the marker count is large, that's
not optimal.
To improve things the list has been split into couple by the
type of a marker and linear traverse has been replaced with
the binary search (std::lower_bound() & std::upper_bound()).
Also traversing is not performed if not needed. After this
PerformanceTests/Interactive/spellcheck-paste-huge-text.html
shows 7-12% improvement.

BUG=279293

Review URL: https://chromiumcodereview.appspot.com/23728006

git-svn-id: svn://svn.chromium.org/blink/trunk@158288 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
ContentEditable plaintext-only crash fix.
Calling createLink execCommand on a selection that includes both normal
contentEditable and plaintext-only contentEditable caused a crash when
applying style in ApplyStyleCommand::applyInlineStyleToNodeRange because the
EditingStyle::m_mutableStyle is null.

I do not have a well enough understanding of what is going on here to be sure
this is the correct fix, but trying to move the check for style()->style
further up caused various LayoutTests to fail.

BUG=270031

Review URL: https://chromiumcodereview.appspot.com/23600068

git-svn-id: svn://svn.chromium.org/blink/trunk@158248 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Add support for the object-position CSS property.
This is hidden behind an "experimental" runtime flag named
"ObjectFitPosition", together with object-fit.

This is an implementation of object-position as described in
http://www.w3.org/TR/2012/CR-css3-images-20120417/#object-position

Object-position is used to offset replaced content within its content
box. Painting is always clipped against the content box, regardless of
the "overflow" property. This property is useful together with
object-fit (to achieve a difference between content box size and
replaced content size, so that specifying alignment is interesting),
but can also be used on its own.

BUG=236333

Review URL: https://chromiumcodereview.appspot.com/24077007

git-svn-id: svn://svn.chromium.org/blink/trunk@158155 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mpawlowski
Fixing destruction order in password_store_win_unittest.cc
The order of declaration now matches the order of initialization in
SetUp(). Previously, we would attempt to destroy temp_dir while
profile and login_db were still locking it.

A very similar fix to https://chromiumcodereview.appspot.com/18684002/

TEST=unit_tests.exe --gtest_filter="PasswordStoreWinTest.*"
BUG=

Review URL: https://chromiumcodereview.appspot.com/24267003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@224379 0039d316-1c4b-4281-b951-d872f2087c98
rune
Cap allocation for ImmutableStylePropertySet.
The m_arraySize will be capped to MaxArraySize, so it is unnecessary to
allocate room for more than MaxArraySize properties.

Leftover from https://codereview.chromium.org/22917005/

BUG=None

Review URL: https://chromiumcodereview.appspot.com/23708049

git-svn-id: svn://svn.chromium.org/blink/trunk@158093 bbb929c8-8fbe-4397-9dbb-9b2b20218538
bratell
Remove hard dependency on bundled python_26 in tests
(solution suggested in https://codereview.chromium.org/16117004/ )

The hardcoded dependency on third_party/python_26 in some unit tests
makes it necessary to bundle that python with the test binaries. On other
platforms the system python is used and there is no reason Windows can't
do the same if one is available.

This saves us band-width (25 MB per test machine) when distributing tests.

The change is implemented as a removal of the hard coded path in execution and
instead it's inserted at the end of the PATH environment variable. That way it
will still be used if there is no other python available but otherwise a
system python will be used.

There is a small risk that the system python is unsuitable but that is a risk we
already take on non-Windows platforms.

Another solution was discussed in https://codereview.chromium.org/16117004/ before
this solution was suggested.

Review URL: https://chromiumcodereview.appspot.com/21537002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@224096 0039d316-1c4b-4281-b951-d872f2087c98
christiank
Default to binary encoding when loading MHTML files.
Assume binary encoding on MHTML files that doesn't have an encoding
specified.

BUG=

Review URL: https://chromiumcodereview.appspot.com/23464015

git-svn-id: svn://svn.chromium.org/blink/trunk@158022 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
:-webkit-any pseudo with escaped '(' should not crash.
Pseudo classes or elements which had an escaped '(' character were
recognized as functions after it had been unescaped. That caused for
instance ":-webkit-any\(" to be correctly tokenized as ':' IDENT, but
incorrectly recognized as the -webkit-any _function_. Since mandatory
arguments were not present in the internal representation, the code crashed.

Fixed by making sure IDENTs are recognized as invalid pseudo classes, before
any token matching is done, if the unescaped IDENT ends with a '('.

Also, removed workaround code for a similar crasher for :not() now that the
parsing issue is fixed for :not() as well.

BUG=294023

Review URL: https://chromiumcodereview.appspot.com/23710067

git-svn-id: svn://svn.chromium.org/blink/trunk@157980 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Use correct pseudo type for page selector specificity.
Page selector specificity did not work because the specificity calculations
in CSSSelector::specificityForPage() checked for PseudoClass instead of
PagePseudoClass.

BUG=294190

Review URL: https://chromiumcodereview.appspot.com/23597051

git-svn-id: svn://svn.chromium.org/blink/trunk@157973 bbb929c8-8fbe-4397-9dbb-9b2b20218538
robertn
Disable unittests that depends on OpenSSL when use_openssl==0
These unittests include headers that includes openssl/ssl.h
(sm_connection.h). For platforms that don't have access to
OpenSSL this won't work.

BUG=23724020

Review URL: https://chromiumcodereview.appspot.com/23724020

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@223893 0039d316-1c4b-4281-b951-d872f2087c98
rune
New parser mode for CSSOM @viewport descriptors.
CSSOM value and descriptor parsing for @viewport used parsing rules for normal
CSS property declarations instead, meaning width and height were not parsed as
shorthands.

This is an issue for other CSSOM access to other descriptors too, like for
@font-face.

This fix is minimal for the @viewport case and intended for feedback on the
general approach. I considered not adding new parser modes, but use a bit in
StylePropertySet to indicate a CSSParserMode or a descriptor mode and let two
bits store the mode. With both the current changes and the split, a descriptor
mode would implicitly be strict.

BUG=272718

Review URL: https://chromiumcodereview.appspot.com/22917005

git-svn-id: svn://svn.chromium.org/blink/trunk@157955 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mathiash
Expand tap highlight to allow multiple highlights for touch disambiguation.
Tap gestures may hit multiple targets, causing a disambiguation window to popup on Android. In addition to this, we would like all of the candidate targets highlighted rather than just the target which was scored highest.

This change allows multiple nodes to be highlighted simultaneously. The touch disambiguation is also tapped into to select nodes for highlighting.

BUG=286244

Review URL: https://chromiumcodereview.appspot.com/15663005

git-svn-id: svn://svn.chromium.org/blink/trunk@157947 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Drop CSS cursor quirk for missing fallback cursor.
IE used to allow URI cursors without a specified pre-defined cursor value
fallback. This CL removes the support for that quirk because IE allegedly
dropped this quirk in IE9, even in the compat modes (see issue 286668).

Made the existing parsing tests run in strict mode and moved test cases for
quirks mode to a new file.

The 'hand' -> 'pointer' quirk was not touched.

R=tabatkins@google.com
BUG=286668

Review URL: https://chromiumcodereview.appspot.com/23816008

git-svn-id: svn://svn.chromium.org/blink/trunk@157918 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Wait for store flush in CookieMonster::Delete*Task
BUG=252217

Review URL: https://chromiumcodereview.appspot.com/18032002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@223324 0039d316-1c4b-4281-b951-d872f2087c98
rchlodnicki
Fix linking problem on Windows with LEGACY_NOTIFICATIONS support disabled
V8NotificationCenter bindings (generated from NotificationCenter.idl) are
required to link this code. Those are conditional on LEGACY_NOTIFICATIONS
though so same condition must be applied to this code.

BUG=

Review URL: https://chromiumcodereview.appspot.com/23583043

git-svn-id: svn://svn.chromium.org/blink/trunk@157776 bbb929c8-8fbe-4397-9dbb-9b2b20218538
pstanek
Chunk up the text to spell check also when the text is pasted.
BUG=278119

Review URL: https://chromiumcodereview.appspot.com/22859062

git-svn-id: svn://svn.chromium.org/blink/trunk@157747 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Add support for the object-position CSS property.
This is hidden behind an "experimental" runtime flag named
"ObjectFitPosition", together with object-fit.

This is an implementation of object-position as described in
http://www.w3.org/TR/2012/CR-css3-images-20120417/#object-position

Object-position is used to offset replaced content within its content
box. Painting is always clipped against the content box, regardless of
the "overflow" property. This property is useful together with
object-fit (to achieve a difference between content box size and
replaced content size, so that specifying alignment is interesting),
but can also be used on its own.

BUG=236333

Review URL: https://chromiumcodereview.appspot.com/22839023

git-svn-id: svn://svn.chromium.org/blink/trunk@157745 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rchl
Allow tabbing to anchors with explicit tabIndex even when tabsToLinks is disabled
With tabsToLinks setting enabled, browser focuses all links on pressing tab.
With it disabled, it does not focus any. This patch changes behavior when the
option is disabled so that links with explicit tabIndex are focusable. When
author has specified tabIndex, he most likely wants the element to be keyboard
accessible.

This option is by default enabled but only Mac exposes it in the settings so
it only affects Mac users who have changed default settings.

BUG=240678

Review URL: https://chromiumcodereview.appspot.com/15238002

git-svn-id: svn://svn.chromium.org/blink/trunk@157684 bbb929c8-8fbe-4397-9dbb-9b2b20218538
tiger
Add font support to PageSerializer
Previously the PageSerializer (used to serialize pages before saving them
as e.g. MHTML files) didn't have support for web fonts.

R=abarth@chromium.org
BUG=275518

Review URL: https://chromiumcodereview.appspot.com/23202008

git-svn-id: svn://svn.chromium.org/blink/trunk@157670 bbb929c8-8fbe-4397-9dbb-9b2b20218538
msimonides
Remove the problematic call to GLSurface::GetBackingFrameBufferObject.
GLContextVirtual::IsCurrent doesn't need to call
GetBackingFrameBufferObject on a surface, the IsOffScreen check should
be enough.

The direct reason for this change is that GLContextVirtual::IsCurrent's
use of GetBackingFrameBufferObject interferes with the implementation of
that function in TextureImageTransportSurface.
TextureImageTransportSurface::GetBackingFrameBufferObject creates an FBO
if needed. Unfortunately GLContextVirtual::IsCurrent is called early in
GLContextVirtual's initialization, too early for
TextureImageTransportSurface::GetBackingFrameBufferObject to create the
frame buffer object because it needs a fully initialized context to
succeed.

BUG=

Review URL: https://chromiumcodereview.appspot.com/23480048

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@222505 0039d316-1c4b-4281-b951-d872f2087c98
tiger
Properly dismiss the InputDialogs in all cases
On newer versions of Android, dismissing a date/time dialog (with hw
back or touch outside of it) will still set the date or time. This is
not the case on older Android versions.

This fix adds an OnDismissListener that makes sure the dialog is always
cancelled unless it already have been cancelled or already have reported
back a new date.

R=bulach@chromium.org,olilan@chromium.org,keishi@chromium.org
BUG=

Review URL: https://chromiumcodereview.appspot.com/23533041

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@222027 0039d316-1c4b-4281-b951-d872f2087c98
rune
Use css-device-adapt constraining for legacy viewport tags.
This CL is trying to take the part of Kenneth's CL [1] that is about using
the constraining procedure from the CSS Device Adaptation spec for legacy
meta tags, as well as for @viewport descriptors, to better match the
specification. Descriptors translated from meta tags are not cascaded with
@viewport rules but are only applied if @viewport from author style is not
present. See thread [2] on www-style.

ViewportArguments::resolve had different modes for resolving viewport
descriptors depending on the source. This CL translates legacy meta viewport
tags into descriptor values as specified by the css-device-adapt spec, but
they are not cascaded together as currently spec'ed. The prioritization is
still the same, overwriting descriptors from lower priority sources.

XHTML MP viewport is implemented through UA styles using @viewport.

[1] https://codereview.chromium.org/19555002/
[2] http://lists.w3.org/Archives/Public/www-style/2012May/0371.html

Review URL: https://chromiumcodereview.appspot.com/23742003

git-svn-id: svn://svn.chromium.org/blink/trunk@157293 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Recompute percentage based @viewport on resize.
Percentage values were resolved to px lengths at cascade time for @viewport
widths and heights. This change keeps them as percentage values and recompute
the actual viewport from the initial viewport and the percentage value when
the intial viewport changes (window resize). Likewise for viewport relative
units (vw, vh, vmin, vmax).

This fixes constrain-006 and constrain-007 in the w3c testsuite.

This CL also disallows 'initial' and 'inherit' as descriptor values and returns 'auto' for unknown non-primitive values to avoid crashers and improve on the original CL for the same bug: https://codereview.chromium.org/22549002/

BUG=269132

Review URL: https://chromiumcodereview.appspot.com/23604037

git-svn-id: svn://svn.chromium.org/blink/trunk@157225 bbb929c8-8fbe-4397-9dbb-9b2b20218538
bratell
Make the mousemove event cancellable
The mouse move event used to be non cancellable in the 90s and
when the specications changes in 2002-2003, not not everyone noticed. 

Specification:
http://www.w3.org/TR/DOM-Level-3-Events/#event-type-mousemove

Already implemented by MSIE and Opera (Presto). 
Still an open (and forgotten?) bug in Mozilla: https://bugzilla.mozilla.org/show_bug.cgi?id=704423

BUG=261449

Review URL: https://chromiumcodereview.appspot.com/23463012

git-svn-id: svn://svn.chromium.org/blink/trunk@157207 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Use constrained values for shouldDisableDesktopWorkarounds.
shouldDisableDesktopWorkarounds() used parsed ViewportArguments instead of the
constrained values, which meant auto and percentage sized @viewport would not
be considered as documents adapted to small screens.

This fix uses the constrained values from PageScaleConstraints instead.

A test for using auto-sizing of @viewport was added.

BUG=280759

Review URL: https://chromiumcodereview.appspot.com/23592015

git-svn-id: svn://svn.chromium.org/blink/trunk@157173 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
test IWYU fixups for base
These are some of the suggestions from running include-what-you-use[1]
on the base target.

[1] https://code.google.com/p/include-what-you-use/

BUG=259043

Review URL: https://chromiumcodereview.appspot.com/23540009

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@221067 0039d316-1c4b-4281-b951-d872f2087c98
simonb
Fix building with Java 7
javap includes type parameters in Java 7, causing jni_generator.py to generate invalid C++ code. Fix by stripping away anything after a '<'.

BUG=

Review URL: https://chromiumcodereview.appspot.com/23587011

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@221027 0039d316-1c4b-4281-b951-d872f2087c98
rune
Recompute percentage based @viewport on resize.
Percentage values were resolved to px lengths at cascade time for @viewport
widths and heights. This change keeps them as percentage values and recomputes
the actual viewport from the initial viewport and the percentage value when
the intial viewport changes (window resize). Likewise for viewport relative
units (vw, vh, vmin, vmax).

This fixes constrain-006 and constrain-007 in the w3c testsuite.

BUG=269132

Review URL: https://chromiumcodereview.appspot.com/22549002

git-svn-id: svn://svn.chromium.org/blink/trunk@157091 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Follow-up changes for bug 257965 (writing-mode on first region).
Some additional issues were raised and handled during code-review
on the WebKit side:

Add tests where the first region element is invalid and sets
writing-mode. It's invalid because it's inside the same flow
thread that it tries to flow from.

Coding-style adjustments.

Call RefPtr::release().

https://bugs.webkit.org/show_bug.cgi?id=119795

BUG=257965

Review URL: https://chromiumcodereview.appspot.com/23064019

git-svn-id: svn://svn.chromium.org/blink/trunk@157034 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Improve multicol preferred/intrinsic width calculation.
Using http://dev.w3.org/csswg/css-sizing/#multicol-intrinsic as
guidance, but implementing that spec 100% is hard, and probably
unnecessary, since it's not finished.

While we wait for a perfect intrinsic width calculation spec, all we
have is CSS 2.1 ("shrink to fit") and common sense:

The idea with preferred/intrinsic minimum width is to allow content to
become as narrow as possible without causing overflow (unless it would
have caused it no matter what width).

The idea with preferred/intrinsic maximum width is to find the
narrowest width larger than or equal to minimum width where no
avoidable automatic/soft wrapping occurs.

We were nowhere close to this behavior for multicol. Now we should be.

Note about the LayoutTests/css3/unicode-bidi-isolate-basic.html
change: The expectation seems to be that the columns should be as many
as necessary and narrow as possible, and that the multicol container's
width should be that of one column. The previous CSS didn't really ask
for this, although that's how it happened to be rendered without this
fix. Added declarations to make sure this is still happening.

Also turn
LayoutTests/fast/multicol/positioned-with-constrained-height.html into
a reftest, rather than requiring a rebaseline, now that rendering has
changed.

This fix is ported from https://bugs.webkit.org/show_bug.cgi?id=116677
Reviewed in WebKit by David Hyatt.

BUG=281451

Review URL: https://chromiumcodereview.appspot.com/23763002

git-svn-id: svn://svn.chromium.org/blink/trunk@157020 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mathiash
Scale to legibleScale if double tap would barely zoom in from zoomed out state.
The motivation for this is for double tap to zoom in when viewing an image, (no html) which we believe to be more user friendly than just silently doing nothing.
It could potentially be a slight change in behaviour in other cases as well (text spanning all the way from left edge to right edge) though we haven't noticed any problems like this in practice.

BUG=280133

Review URL: https://chromiumcodereview.appspot.com/23461009

git-svn-id: svn://svn.chromium.org/blink/trunk@156966 bbb929c8-8fbe-4397-9dbb-9b2b20218538
shuais
Fix comment for WebUIDataSource::DisableReplaceExistingSource
Follow-up of review 22150004

Review URL: https://chromiumcodereview.appspot.com/23682003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@220297 0039d316-1c4b-4281-b951-d872f2087c98
bratell
content_shell: avoid debug crashing for mid-clicks on links.
There was a DCHECK in content_shell that we only opened links in the
current tab. That made middle clicks crash a debug content_shell and
I need to test middle clicks in Blink so that is no good.

BUG=

Review URL: https://chromiumcodereview.appspot.com/23517003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@220281 0039d316-1c4b-4281-b951-d872f2087c98
wdzierzanowski
Add content::RenderWidgetHost::MouseEventCallback
This adds the possibility to register mouse event callbacks with
RenderWidgetHost and get notified about all kinds of mouse events.  Any
callback can "handle" the event, in which case it's not propagated to the
renderer.

Opera registers a mouse event callback to feed its mouse gesture recognizer
with events.  At this point, there is no other implementor of MouseEventCallback.

Review URL: https://chromiumcodereview.appspot.com/23416003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@220260 0039d316-1c4b-4281-b951-d872f2087c98
jiangj
Call RecordLastRunAppBundlePath in FILE thread
RecordLastRunAppBundlePath() uses chrome::GetVersionedDirectory()
which in turn uses PathProvider for base::DIR_EXE, which will do I/O
on OS X since it uses base::MakeAbsoluteFilePath() now.

Reorder the sync call a bit so that we don't have to post another
FILE thread task to get the preferences synced.

BUG=275988
TEST=Run Chromium; do (from command line):
"defaults read org.chromium.Chromium LastRunAppBundlePath"
-- should get path to Chromium.app; move Chromium.app to another
location and run it again; do "defaults ..." again -- should get path
to Chromium.app at new location.

Review URL: https://chromiumcodereview.appspot.com/22966010

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@220168 0039d316-1c4b-4281-b951-d872f2087c98
rune
Added viewport tests for missing/empty content attribute.
For <meta name="viewport" ... >:

- content="" overrides previous meta viewport using the 980px fallback width.
- content without a value is a no-op.
- missing content attribute is a no-op.

Added tests to detect future regressions.

BUG=None

Review URL: https://chromiumcodereview.appspot.com/23495008

git-svn-id: svn://svn.chromium.org/blink/trunk@156857 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Reset viewport to implicit when @viewport is removed.
When m_propertySet was null after cascading @viewport rules (no rules added),
ViewportStyleResolver::resolve would be a no-op so that removing the last
@viewport rule through CSSOM would not have an effect. This is fixed by
re-setting to Implicit when removing the last @viewport rule.

Removed a stray ViewportStyleResolver::resolve call in viewportAsText that was
a no-op before the rest of this change, but resulted in always resetting the
viewport arguments with this fix.

BUG=276812

Review URL: https://chromiumcodereview.appspot.com/23185008

git-svn-id: svn://svn.chromium.org/blink/trunk@156855 bbb929c8-8fbe-4397-9dbb-9b2b20218538
kolczyk
Fix for crash occuring when spatial navigation is enabled
and user tries to navigate from the element containing shadow DOM
such as <input type="date">.

BUG=234034

Review URL: https://chromiumcodereview.appspot.com/22847002

git-svn-id: svn://svn.chromium.org/blink/trunk@156839 bbb929c8-8fbe-4397-9dbb-9b2b20218538
tiger
Add doctype declarations when using PageSerializer
Serialized pages were missing their doctypes. This can cause some pages to
rendered incorrectly.

R=abarth@chromium.org
BUG=

Review URL: https://chromiumcodereview.appspot.com/22926011

git-svn-id: svn://svn.chromium.org/blink/trunk@156781 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
remove unused headers from sandbox_seccomp_bpf_linux.cc
sandbox_seccomp_bpf_linux.cc includes linux/audit.h and linux/filter.h but does not seem to use any of the macros or types defined within.

BUG=279413

Review URL: https://chromiumcodereview.appspot.com/23226004

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@219630 0039d316-1c4b-4281-b951-d872f2087c98
pstanek
Fix editing/spelling/spellcheck-editable-on-focus.html's flakiness
Due to asynchronous spell checker being on for the test
misspelling marks may appear after some time. The test checks
misspellings in different elements this is why it has to wait
until markers appear in *all* of them before checking
the pass conditions. However the test was not waiting
if markers appeared in at least one element.

BUG=None

Review URL: https://chromiumcodereview.appspot.com/23389005

git-svn-id: svn://svn.chromium.org/blink/trunk@156650 bbb929c8-8fbe-4397-9dbb-9b2b20218538
bratell
Block "]]>" in createCDataSection
It's not possible to serialize a CData section with ]]> in it
so disallow that already in xmldoc.createCDataSection.

This is compatible with MSIE and Gecko.

BUG=268762

Review URL: https://chromiumcodereview.appspot.com/22911020

git-svn-id: svn://svn.chromium.org/blink/trunk@156640 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mateuszs
Added 125% DPI option to ui::ScaleFactors.
Since Opera is meant to support 125% scale
factor I've added one more option to available
choices.

Review URL: https://chromiumcodereview.appspot.com/23011044

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@219265 0039d316-1c4b-4281-b951-d872f2087c98
pstanek
Spell check whole content of an editable element when it gets focused.
This is how Gecko and Presto behave. Without this patch Blink spell checks
an editable after moving the caret/unfocusing the editable but the check spans
only the line the caret was previously at (possibly plus 1-2 lines around).
Textareas and contenteditables are only spell checked on
first focus.

BUG=264730

Review URL: https://chromiumcodereview.appspot.com/21694005

git-svn-id: svn://svn.chromium.org/blink/trunk@156583 bbb929c8-8fbe-4397-9dbb-9b2b20218538
shuais
Prevent overflow of width/height of layout overflow rectangle which can cause scroll bar to misfunction.
When a child element is positioned very far away the width/height of layout overflow rectangle may overflow. The patch detects such cases in RenderOverflow::addLayoutOverflow and shift the top/left edges of the rectangle to avoid overflow. 

BUG=267462

Review URL: https://chromiumcodereview.appspot.com/22799017

git-svn-id: svn://svn.chromium.org/blink/trunk@156567 bbb929c8-8fbe-4397-9dbb-9b2b20218538
shuais
Add WebUIDataSourceImpl::DisableReplaceExistingSource
Currently when using WebUIDataSource object returned by content::WebUIDataSource::Create,
there is no way to override ShouldReplaceExistingSource for the URLDataSource object that
will be created by WebUIDataSource internally. As a result when WebUIDataSource of the same
type is added repeatedly for different instances of WebUI, the previous pending request on the data
source will be cancelled, resulting in broken WebUI page.
The New Tab Page in chromium doesn't suffer because it doesn't use WebUIDataSource,
however it's convinient and less work to use it for some WebUIs. It's also possible to work around
by avoiding adding WebUIDataSource repeatedly in the first place, but that is much more complicated
as we'll have to track is a certain WebUIDataSource already added or not for a given profile.
The proposed fix simply add the api to override ShouldReplaceExistingSource.

BUG=

Review URL: https://chromiumcodereview.appspot.com/22150004

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@218710 0039d316-1c4b-4281-b951-d872f2087c98
pstanek
Trigger spell check/remove markers if spell checker gets enabled/disabled.
With this change when spell checker is turned off the misspelling markers
disappear from the document (which is what a user expects and this currently
works in chromium because UI code takes care of that - with this change it may
stop). OTOH if spell checker is turned on again one would expect misspellings
will appear right away - in the currently focused editable at least. This is how
Gecko and Presto behave and this is what this patch does. Note it's not only
about restoring old markers because content might have changed or language might
have been switched. This is why new check is requested. This change may also
come in handy if spell checking language is changed. It would require restarting
spell checker on UI side on language change, though.

Since there might be an awful lot of text in the focused editable when spell
checker gets enabled, spell checking is chunked up. If asynchronous spell
checker is enabled whole text is checked. Otherwise only one chunk is checked
(the default chunk's size is set to 16KB but it might also be slightly bigger
since all chunks are aligned to the sentence boundary).

BUG=264737

This is the second attempt as this patch was integrated but
reverted due to performance regression found by
DOM/textarea-edit.html (issue 274569). This patch optimizes
single chunk case to try to avoid the regression.

Review URL: https://chromiumcodereview.appspot.com/23332004

git-svn-id: svn://svn.chromium.org/blink/trunk@156378 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Make configurationForViewport match production code
While the production code has used initial viewport width and height for
device-width and device-height, the configurationForViewport API in test builds
still used separate values for the device size. This CL removes the redundant
deviceSize in the production code and removes the device parameters from
configurationForViewport so that the tests give the same results as the
production code would do.

BUG=273649

Review URL: https://chromiumcodereview.appspot.com/23101004

git-svn-id: svn://svn.chromium.org/blink/trunk@156302 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
setViewportEnabled on InternalSettings
Added possibility to --enable-viewport from internals.settings in LayoutTests.
Currently viewport can only be tested through configurationForViewport which
makes it impossible to test certain codepaths and more complicated cases. This
CL is a pre-condition for a test in another CL I am preparing.

BUG=None

Review URL: https://chromiumcodereview.appspot.com/22747002

git-svn-id: svn://svn.chromium.org/blink/trunk@156301 bbb929c8-8fbe-4397-9dbb-9b2b20218538
pstanek
Trigger spell check/remove markers if spell checker gets enabled/disabled.
With this change when spell checker is turned off the misspelling markers
disappear from the document (which is what a user expects and this currently
works in chromium because UI code takes care of that - with this change it may
stop). OTOH if spell checker is turned on again one would expect misspellings
will appear right away - in the currently focused editable at least. This is how
Gecko and Presto behave and this is what this patch does. Note it's not only
about restoring old markers because content might have changed or language might
have been switched. This is why new check is requested. This change may also
come in handy if spell checking language is changed. It would require restarting
spell checker on UI side on language change, though.

Since there might be an awful lot of text in the focused editable when spell
checker gets enabled, spell checking is chunked up. If asynchronous spell
checker is enabled whole text is checked. Otherwise only one chunk is checked
(the default chunk's size is set to 16KB but it might also be slightly bigger
since all chunks are aligned to the sentence boundary).

BUG=264737

Review URL: https://chromiumcodereview.appspot.com/21130005

git-svn-id: svn://svn.chromium.org/blink/trunk@156183 bbb929c8-8fbe-4397-9dbb-9b2b20218538
pkudla
CHR-458: Remove DCHECK which prevents from using custom ResourceBundle::Delegate
I need to create a Delegate for ResourceBundle. The only purpose of it is to provide our own fonts. Other resources should be handled by ResourceBundle. A method GetImageNamed() should also be handled by ResourceBundle. It works fine in release builds, but triggers an assert in debug builds.
DCHECK is triggered if a delegate does not create an image. This is wrong since the code can handle such case.

Review URL: https://chromiumcodereview.appspot.com/22418003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@217726 0039d316-1c4b-4281-b951-d872f2087c98
rune
Let page zoom affect resolution and -webkit-device-pixel-ratio MQs.
In order to make them consistent with the recent change for
window.devicePixelRatio (r156040).

BUG=177836

Review URL: https://chromiumcodereview.appspot.com/23192002

git-svn-id: svn://svn.chromium.org/blink/trunk@156113 bbb929c8-8fbe-4397-9dbb-9b2b20218538
julienp
Made XmlWriter able to write elements with both attributes and content.
This adds a simple method to XmlWriter for appending content to an
already opened element. The only other way to add content to an element
was to call WriteElement, which doesn't allow adding attributes.

TBR=darin@chromium.org

Review URL: https://chromiumcodereview.appspot.com/22337003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@217309 0039d316-1c4b-4281-b951-d872f2087c98
kolczyk
(spatnav) Space&enter should be entered to box instead of simulating click on it.
This fixes the regression after https://codereview.chromium.org/16959002/
which makes it impossible to enter spaces into edit boxes
in spatial navigation mode.

Bug is reproducible only with spatial navigation enabled.
So is this fix.

BUG=

Review URL: https://chromiumcodereview.appspot.com/20560005

git-svn-id: svn://svn.chromium.org/blink/trunk@155993 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mathiash
Make sure proper double tap scale gets recorded for next double tap.
BUG=260644

Review URL: https://chromiumcodereview.appspot.com/22706009

git-svn-id: svn://svn.chromium.org/blink/trunk@155929 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Propagate writing-mode from the first region to the flow thread.
Since the flow thread is a direct child of RenderView, it doesn't inherit
proper writing-mode automatically. It should be mentioned that if the thread's
contents' writing-mode differs from that of the first region, things are
typically going to look useless (although perhaps that's how it should be),
but as long as writing-mode is only specified on a common parent of the
thread's contents and the regions, things look fine, and also, we're now
following what the spec has to say on the matter:

http://www.w3.org/TR/2013/WD-css3-regions-20130528/#the-flow-into-property

    "The first region defines the principal writing mode for the entire flow.
     The writing mode on subsequent regions is ignored."

BUG=257965

Review URL: https://chromiumcodereview.appspot.com/18374008

git-svn-id: svn://svn.chromium.org/blink/trunk@155779 bbb929c8-8fbe-4397-9dbb-9b2b20218538
pstanek
Make sure the last selection gets spell checked when focusing different frame.
BUG= 264742

Review URL: https://chromiumcodereview.appspot.com/21235009

git-svn-id: svn://svn.chromium.org/blink/trunk@155725 bbb929c8-8fbe-4397-9dbb-9b2b20218538
pstanek
Take the navigation type into account when checking if the navigation is in page.
When navigating from ref url to non ref one the navigation type has decisive voice whether the navigation should be treated as in page.
BUG=253481

Review URL: https://chromiumcodereview.appspot.com/21544005

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@216329 0039d316-1c4b-4281-b951-d872f2087c98
rune
[CSSMQ] Use initial values as base for relative units.
Don't use computed style for root element as base for relative lengths. The
media queries spec says:

"Relative units in media queries are based on the initial value, which means
that units are never based on results of declarations."

BUG=269322

Review URL: https://chromiumcodereview.appspot.com/22258007

git-svn-id: svn://svn.chromium.org/blink/trunk@155692 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jiangj
Fix GetNSExecutablePath for running tests with relative path
When running tests (zip_unittests.cc for instance) using
base::DIR_SOURCE_ROOT with ./<test_executable_name> they will get
incorrect directory names because ./ will be included in the return
value of GetNSExecutablePath() and it will be consider as one level
of parent directory by FilePath::DirName(). To avoid this problem we
should alway convert the value returned by GetNSExecutablePath() into
absolute path first.

BUG=258846
TEST=see bug

Review URL: https://chromiumcodereview.appspot.com/18309008

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@215882 0039d316-1c4b-4281-b951-d872f2087c98
tiger
Serialize <input type="image"> images
Add support for serializing images specified in an input tag with
type image. This images is extracted in the PageSerializer and added
as a SerializedResource.

R=
BUG=248867

Review URL: https://chromiumcodereview.appspot.com/16520007

git-svn-id: svn://svn.chromium.org/blink/trunk@155598 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mathiash
Adds strategy for deciding whether to show popup or zoom in when having tapped multiple targets.
Related review: https://codereview.chromium.org/19281007/

BUG=260644

Review URL: https://chromiumcodereview.appspot.com/19256012

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@215843 0039d316-1c4b-4281-b951-d872f2087c98
tiger
The test framework doesn't really need to load resources and translations. This removes loading and changes the odd test that wasn't working anymore due to this change.
BUG=

Review URL: https://chromiumcodereview.appspot.com/18429012

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@215763 0039d316-1c4b-4281-b951-d872f2087c98
pstanek
Add/remove spell checking markers in text inputs depending on focus.
Inputs are spell checked by default. However since it's very
likely user names, cities, addresses and other stuff that
possibly isn't in the dictionary will be put into them when
unfocused misspelling markers are removed from them (so
they are not all red all the time). However they are
added again on input re-focusing.

BUG=168029

Review URL: https://chromiumcodereview.appspot.com/21024004

git-svn-id: svn://svn.chromium.org/blink/trunk@155420 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
avoid char+'\xHH' as it's too easy to use values > 127
TEST=net_unittests

Review URL: https://chromiumcodereview.appspot.com/21534003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@215124 0039d316-1c4b-4281-b951-d872f2087c98
msimonides
Don't create extension actions for disabled extensions.
The GetOrCreateOrNull function creates extension actions if needed and
caches them for later. When an extension is unloaded, the cache is
cleared.
Unfortunately it is possible for other listeners of the
NOTIFICATION_EXTENSION_UNLOADED to call GetOrCreateOrNull and the action
be recreated and cached for the extension being unloaded. The cached
action then exists even if the reloaded extension doesn't have the
action.

This change prevents recreation of the action object for extensions that
are already unloaded.

BUG=246919

Review URL: https://chromiumcodereview.appspot.com/20304002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@214767 0039d316-1c4b-4281-b951-d872f2087c98
pstanek
Improve error handling in bspatch.
BUG=265456

TBR=brettw@chromium.org

Review URL: https://chromiumcodereview.appspot.com/21049006

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@214750 0039d316-1c4b-4281-b951-d872f2087c98
mathiash
Mainly changes the behaviour of WebViewImpl::animateZoomAroundPoint to take a rect instead and handling an additional zoom type to zoom in on the specified rect and returning false if it doesn't zoom. (if it would be a zoom-out)
Related review: https://codereview.chromium.org/19256012/

BUG=260644

Review URL: https://chromiumcodereview.appspot.com/19281007

git-svn-id: svn://svn.chromium.org/blink/trunk@155243 bbb929c8-8fbe-4397-9dbb-9b2b20218538
pstanek
Notify about reset of the "displayed insecure content" state flag
and take it into when updating the navigation entry.
BUG=253820

Review URL: https://chromiumcodereview.appspot.com/20986004

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@214650 0039d316-1c4b-4281-b951-d872f2087c98
mstensho
Parse "-webkit-columns: auto <length>" properly.
The two longhands for the 'columns' property ('column-count' and
'column-width') may both take 'auto' as a value. When we encounter
'auto' during parsing the value list of a declaration, we cannot just
make a guess at which property/properties that's meant for. Instead,
don't assign anything to 'auto' right away, but wait until all values
have been processed and at that point set the still unassigned
properties to 'auto'. If 'auto' isn't in the value list at all, set
unassigned properties to 'initial' for the 'columns' property, just
like we do for any other property.

R=
BUG=235415

Review URL: https://chromiumcodereview.appspot.com/14334014

git-svn-id: svn://svn.chromium.org/blink/trunk@155047 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Don't assume so easily that RenderStyle data can be shared.
An element can only share RenderStyle data with another element if
BOTH are cacheable. The element that's already in the cache is
obviously cacheable, but we also need to figure out whether the
element that wants to use data from the cache is cachable.

Additionally, get rid of the Element* argument from
applyMatchedProperties(), since it's already part of the state object
passed to that method.

BUG=236329

Review URL: https://chromiumcodereview.appspot.com/20560008

git-svn-id: svn://svn.chromium.org/blink/trunk@154999 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
mesa should not to use X11 headers when use_x11==0
Mesa checks if MESA_EGL_NO_X11_HEADERS is defined before trying to
include X11 headers, we should set this if use_x11==0.

BUG=238755

Review URL: https://chromiumcodereview.appspot.com/20265003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@213918 0039d316-1c4b-4281-b951-d872f2087c98
mstensho
Remove test fast/multicol/newmulticol/columns-shorthand-parsing.html
This test isn't very valuable, since there are plenty of balancing tests
already. This test attempted to compare rendering between the old and the
new multicol implementations, and for some reason it fails on Mac, albeit
not visibly to the naked eye.

BUG=254219

Review URL: https://chromiumcodereview.appspot.com/20228003

git-svn-id: svn://svn.chromium.org/blink/trunk@154961 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Correct overflow propagation in BTT and RTL writing-modes
Overflow rectangles are not quite physical, not quite logical. This
means that we cannot use clientBoxRect() directly to represent a
rectangle that expresses exactly no overflow. This rectangle is the
padding box (relative to the border box) in vertical-lr and
horizontal-tb, but the block-direction borders need to be flipped in
vertical-rl and horizontal-bt.

fast/multicol/vertical-rl/rules-with-border-before.html now needs a
rebaseline, because it now renders differently, but correctly.

R=
BUG=236326

Review URL: https://chromiumcodereview.appspot.com/18720003

git-svn-id: svn://svn.chromium.org/blink/trunk@154945 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
only use gold-specific flags for the target linker
The host linker might not be gold if linux_use_gold_binary==0,
eg where we have a cross toolchain with gold and we want to use
that instead of third_party/gold/gold64.

Review URL: https://chromiumcodereview.appspot.com/19541006

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@212823 0039d316-1c4b-4281-b951-d872f2087c98
jiangj
Use high resolution markers when device scale factor > 1.5f
It's an upstream regression introduced in Blink r151453 when non-compositing
code path was removed but the setHighResMarkers() was left out.

BUG=261123

Review URL: https://chromiumcodereview.appspot.com/19579003

git-svn-id: svn://svn.chromium.org/blink/trunk@154533 bbb929c8-8fbe-4397-9dbb-9b2b20218538
jiangj
Fix a crash when built with 10.7 SDK running on OS X 10.6
NSWindowDidChangeBackingPropertiesNotification is available since 10.7.

Our buildbots use OS X 10.7 SDK to build with minimum target system
version set to 10.6. For features available only to 10.7 and up, we
normally have runtime guard to check if the system is 10.6 then we don't
use it.

However this one is in chromium content module and it doesn't have such
runtime check. We don't know the exact details of chromium buildbot or
how do they make release builds, it seems that they are building 10.6
releases with 10.6 SDK (which will disable the feature in compile time).

BUG=260595

Review URL: https://chromiumcodereview.appspot.com/18674005

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@212060 0039d316-1c4b-4281-b951-d872f2087c98
mostynb
include missing headers in skia/ext/analysis_canvas.{h,cc}
skia/ext/analysis_canvas.h uses the OVERRIDE macro, but does not
include the header file that defines it.

And analysis_canvas.cc lacks the header for DCHECK.

BUG=259043

Review URL: https://chromiumcodereview.appspot.com/18881003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@212042 0039d316-1c4b-4281-b951-d872f2087c98
mostynb
add missing headers in ppapi/*
Include a few headers that are required but not already included directly.

BUG=259043

Review URL: https://chromiumcodereview.appspot.com/18209022

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@211724 0039d316-1c4b-4281-b951-d872f2087c98
rune
[css-device-adapt] Implemented spec changes.
Modified implementation to match spec changes:

- Allow zero lengths for initial and actual viewport sizes.
- auto width and height lengths depending on aspect-ratio, never on zoom.

BUG=None

Review URL: https://chromiumcodereview.appspot.com/16826008

git-svn-id: svn://svn.chromium.org/blink/trunk@154237 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
add missing headers in components/tracing/child_trace_message_filter.h and
content/child/child_resource_message_filter.cc

BUG=259043

Review URL: https://chromiumcodereview.appspot.com/18863004

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@211542 0039d316-1c4b-4281-b951-d872f2087c98
msimonides
Fix the allHistory flag on chrome.history.onVisitRemoved event.
Calling chrome.history.deleteAll results in chrome.history.onVisitRemoved
events to be dispatched with the allHistory flag being false instead of true.
This fix changes the call to ExpireHistoryBetween so that begin_time and
end_time are null which results in the history backend using a special path
to delete all history and dispatch the right event.

BUG=258445

Review URL: https://chromiumcodereview.appspot.com/18755003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@211376 0039d316-1c4b-4281-b951-d872f2087c98
philipj
Currently, mediaControls.css is the base CSS, while
mediaControlsChromium(Android).css are applied as extra style via
RenderTheme::extraMediaControlsStyleSheet().

Merge mediaControlsChromium.css into mediaControls.css and simplify.

With the new base CSS, mediaControlsChromiumAndroid.css can be
simplified a great deal, improving readability and maintainability.

BUG=255491

Review URL: https://chromiumcodereview.appspot.com/18181010

git-svn-id: svn://svn.chromium.org/blink/trunk@154102 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
add missing headers in gpu code
BUG=259043

Review URL: https://chromiumcodereview.appspot.com/18883003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@211355 0039d316-1c4b-4281-b951-d872f2087c98
mostynb
add missing header in indexed_db_backing_store.cc
This file uses IsStringASCII but didn't explicitly include the relevant header file.

BUG=259043

Review URL: https://chromiumcodereview.appspot.com/18384006

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@211217 0039d316-1c4b-4281-b951-d872f2087c98
mostynb
add missing header in webkit/browser/fileapi/file_system_usage_cache.cc
webkit/browser/fileapi/file_system_usage_cache.cc uses base::Bind but
does not include base/bind.h.

BUG=259043

Review URL: https://chromiumcodereview.appspot.com/18421009

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@211098 0039d316-1c4b-4281-b951-d872f2087c98
mostynb
add missing headers in cc/*
cc/resources/worker_pool.cc uses ConditionVariable but doesn't
include base/synchronization/condition_variable.h.

And various files in cc/scheduler/ were missing base/logging.h and base/bind.h.

BUG=259043

Review URL: https://chromiumcodereview.appspot.com/18804005

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@211004 0039d316-1c4b-4281-b951-d872f2087c98
mostynb
add missing includes in gpu/command_buffer/*
gpu/command_buffer/service/command_buffer_service.cc uses DCHECK* but
doesn't include base/logging.h

Similarly in gpu/command_buffer/service/transfer_buffer_manager.cc, which also lacks scoped_ptr.h.

BUG=259043

Review URL: https://chromiumcodereview.appspot.com/18998002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@210963 0039d316-1c4b-4281-b951-d872f2087c98
mostynb
render_thread.h: include base/callback.h for Closure typedef
content/public/renderer/render_thread.h uses Closure but
does not directly include the header which provides this typedef.

Review URL: https://chromiumcodereview.appspot.com/18226007

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@210821 0039d316-1c4b-4281-b951-d872f2087c98
mostynb
make it possible to disable internal tracing in unofficial builds
Add a tracing_like_official_build gyp setting, which works similarly to
the logging_like_official_build setting.

Review URL: https://chromiumcodereview.appspot.com/18333010

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@210650 0039d316-1c4b-4281-b951-d872f2087c98
rune
@viewport lengths relative to initial font.
em/rem/ex Were incorrectly computed relative to the documentElement font.

BUG=257070

Review URL: https://chromiumcodereview.appspot.com/18023018

git-svn-id: svn://svn.chromium.org/blink/trunk@153784 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Hovered/active/focused will never share style with siblings/cousins.
For any given hovered/active node at a given time, other hovered/active nodes
are either ancestors or descendants of that node. Since style sharing is
looking at siblings and cousins, hovered/active nodes will never share style.

Similarly, there's always a single focused element in a document, hence it
will never share style with another node.

BUG=255189

Review URL: https://chromiumcodereview.appspot.com/18764003

git-svn-id: svn://svn.chromium.org/blink/trunk@153773 bbb929c8-8fbe-4397-9dbb-9b2b20218538
philipj
Add viewport settings for MediaDocument
MediaDocument is used when navigating directly to an audio or video resource.
Use viewport width=device-width so that one doesn't need to zoom in order to
use the video controls.

Add viewport settings for ImageDocument

On (mobile) platforms which have a viewport (e.g. Android) it is currently
necessary to zoom in to see the image at 100% resolution even if it fits on the
page. The width=device-width setting fixes this, and does not affect (desktop)
platforms that lack a viewport.

BUG=254978

Review URL: https://chromiumcodereview.appspot.com/18034007

git-svn-id: svn://svn.chromium.org/blink/trunk@153704 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mpawlowski
Fixing destruction order in login database unit tests
Before, the ScopedTempDir would be destroyed before
LoginDatabase, which would still be locking the database file
within the temporary folder. This would cause an error in
ScopedTempDir's d-tor, and the temporary folder would stay
on disk.

Now the order of LoginDatabaseTest's members is aligned to
the order of initialization in SetUp and LoginDatabase is
destroyed before ScopedTempDir. This also makes the tests
run a lot faster on my Windows machine (>4s to 110ms).

TEST=unit_tests.exe --gtest_filter="LoginDatabaseTest.*"
BUG=

Review URL: https://chromiumcodereview.appspot.com/18684002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@210374 0039d316-1c4b-4281-b951-d872f2087c98
rune
Hovered/active/focused nodes will never share style with siblings/cousins.
For any given hovered/active node at a given time, other hovered/active nodes
are either ancestors or descendants of that node. Since style sharing is
looking at siblings and cousins, hovered/active nodes will never share style.

Similarly, there's always a single focused element in a document, hence it
will never share style with another node.

This change bails out early for style sharing in those cases.

BUG=255189

Review URL: https://chromiumcodereview.appspot.com/18089009

git-svn-id: svn://svn.chromium.org/blink/trunk@153529 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Include disabled stylesheets in document.styleSheets.
Stylesheets disabled through LinkStyle.disabled were not included in
Document.styleSheets, even if they existed as CSSStyleSheet objects.

Fixed LinkStyle::setDisabled so it propagates disabled state to the sheet
object when present.

According to the HTML5 spec, setting disabled on LinkStyle when the sheet is
not present should not have any effect and getting it should return false. I
did not dare to do any changes there in this CL.

BUG=88310

Review URL: https://chromiumcodereview.appspot.com/17827004

git-svn-id: svn://svn.chromium.org/blink/trunk@153485 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
silence qcms __force_align_arg_pointer__ warning on mips too
Review URL: https://chromiumcodereview.appspot.com/18112005

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@209815 0039d316-1c4b-4281-b951-d872f2087c98
msimonides
Fix CopyFromBackingStore when there's no cg_layer_.
In CopyFromBackingStore use the cg_bitmap_ as the source in case cg_layer_
hasn't been created yet.

BUG=

Review URL: https://chromiumcodereview.appspot.com/18052011

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@209399 0039d316-1c4b-4281-b951-d872f2087c98
mostynb
linux: make libc urandom override work for non-glibc too
This patch attempts to generalise the linux libc urandom override, so that it works for non-glibc linux platforms too.

BUG=255215

Review URL: https://chromiumcodereview.appspot.com/18093002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@209281 0039d316-1c4b-4281-b951-d872f2087c98
mstensho
Fix SVG relayout problem that occurs when only the viewport height changes.
If the root element is an SVG, its vertical position and height are
affected by the view height.

BUG=255561

Review URL: https://chromiumcodereview.appspot.com/18180008

git-svn-id: svn://svn.chromium.org/blink/trunk@153270 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
attempt to make the libc urandom override work for non-glibc too
This patch attempts to generalise the linux libc urandom override, so
that it works for non-glibc linux platforms too.

Review URL: https://chromiumcodereview.appspot.com/17066002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@208924 0039d316-1c4b-4281-b951-d872f2087c98
mstensho
Column balancing support in the region based multicol implementation.
Start by setting the column height to the flow thread's height divided
by the number of columns. Then stretch the column height until
contents fits without creating overflowing columns, or until the
maximum allowed column height is reached, whichever comes first. This
may require several layout iterations (but normally only a
couple). For each time we stretch, stretch by the least amount
required to make a difference to which box goes where.

Also make sure that the columns get tall enough to honor orphans
and widows settings.

This change takes some tiny steps in preparing for multiple column
set support.

This patch is ported from WebKit.
https://bugs.webkit.org/show_bug.cgi?id=116033
Reviewed in WebKit by David Hyatt.

BUG=252675

Review URL: https://chromiumcodereview.appspot.com/16943008

git-svn-id: svn://svn.chromium.org/blink/trunk@153028 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Imported latest w3c media queries test suite.
Imported from:

http://hg.csswg.org/test/file/c88a96071aac/approved/css3-mediaqueries/src

The only diff to the w3c version is now the paths to testharness and the
iframe document.

BUG=None

Review URL: https://chromiumcodereview.appspot.com/17570008

git-svn-id: svn://svn.chromium.org/blink/trunk@152998 bbb929c8-8fbe-4397-9dbb-9b2b20218538
kolczyk
This patch improves the user experience when using spatial navigation (enabled in https://codereview.chromium.org/13811041 and https://codereview.chromium.org/14110006 ):
- Dispatch onClick when pressing ENTER or SPACE on any element (not only input buttons as it was before the patch)
- Make HTMLElement focusable by spatnav if it has click or key events (before it could only navigate to links and form items). 

The changes are effective only if spatialNavigationEnabled pref is enabled.



BUG=

Review URL: https://chromiumcodereview.appspot.com/16959002

git-svn-id: svn://svn.chromium.org/blink/trunk@152930 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
allow unofficial builds with DCHECK and DLOG disabled
Previously, it was not possible to produce unofficial builds without
DCHECKS and DLOGS.

Review URL: https://chromiumcodereview.appspot.com/17165003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@207826 0039d316-1c4b-4281-b951-d872f2087c98
rune
Do not consider title from non-css stylesheet for preferred set.
Title on a style element can be used to select the preferred stylesheet set.
If the type attribute of the style element is not text/css, the title should
never be set as the key for the preferred stylesheet set.

BUG=252215

Review URL: https://chromiumcodereview.appspot.com/17496004

git-svn-id: svn://svn.chromium.org/blink/trunk@152797 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
linux: tcmalloc does not depend on glib
This seems to have been an old implicit assumption that use_glib==1 meant OS=="linux".

Review URL: https://chromiumcodereview.appspot.com/17076009

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@207370 0039d316-1c4b-4281-b951-d872f2087c98
rune
Auto-closing at unexpected EOF for all entry points.
Don't wrap non-stylesheet (CSSOM rule, selectors, etc) input strings to CSS
parser in braces as that will break auto-closing of blocks, parentheses, etc
in the actual input string.

BUG=163354

Review URL: https://chromiumcodereview.appspot.com/17129003

git-svn-id: svn://svn.chromium.org/blink/trunk@152717 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Add command line switch to enable region based columns.
This needs to be a separate switch - we cannot lump it together with
--enable-experimental-webkit-features , because we don't want
to unconditionally enable region based columns when running LayoutTests
(there are LayoutTests that compare rendering in the old and new multicol
implementations, using internals.settings.setRegionBasedColumnsEnabled(true)).

BUG=242905

Review URL: https://chromiumcodereview.appspot.com/17057003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@207005 0039d316-1c4b-4281-b951-d872f2087c98
rune
[css-device-adapt] insertRule tests and ASSERT for device lengths.
Added tests to make sure @viewport rules are cascaded correctly when rules
are inserted before or after existing rules.

ASSERTs:

device-width and device-height were removed as valid <viewport-length> values.
That means we should not see ValueDeviceHeight or ValueDeviceWidth while
resolving ViewportArguments::CSSDeviceAdaptation.

BUG=None

Review URL: https://chromiumcodereview.appspot.com/16962002

git-svn-id: svn://svn.chromium.org/blink/trunk@152445 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
don't override libc code in a glibc-specific way when not using glibc
We should not attempt to override libc functions using glibc-specific
code when not actually using glibc.  This still needs to be fixed
for other libc's though.

Review URL: https://chromiumcodereview.appspot.com/16132015

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@206040 0039d316-1c4b-4281-b951-d872f2087c98
mostynb
add more string -> unsigned number conversion unit tests (attempt 2)
Add unit tests for the following functions in base:
StringToUint
StringToUint64
StringToSizeT

Review URL: https://chromiumcodereview.appspot.com/15521004

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@206031 0039d316-1c4b-4281-b951-d872f2087c98
mstensho
Add a setting for enabling region based columns.
The intention is to enable this if the --enable-experimental-webkit-features
command line switch is specified. That needs to be done from the top-level
chromium repo, and there'll be a separate patch for that.

BUG=242905

Review URL: https://chromiumcodereview.appspot.com/15744005

git-svn-id: svn://svn.chromium.org/blink/trunk@152304 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
No need to store invalid media queries.
Stop creating media query expressions when a media query expression with an
invalid value is encountered. Will result in storing a "not all" query instead.

Had to add some braces due to new coding style enforcement for if-else.

No tests added as invalid values and no values where values are required are
covered by existing tests.

BUG=248860

Review URL: https://chromiumcodereview.appspot.com/16208004

git-svn-id: svn://svn.chromium.org/blink/trunk@152279 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Parse media attributes and CSSOM media text as media_query_list.
This is per HTML5 and CSSOM specifications.

This change makes the remaining fails in the W3C Media Queries test suite pass.

Some resulting changes:

- Brackets/parentheses balanced correctly.
- Queries split between correct commas.
- Spaces is an empty media query list like the empty string.
- Unexpected EOF like missing parentheses makes the query valid as per CSS21
  spec.
- Syntax errors become "not all" as per CSSMQ spec.
- Renamed @-webkit-mediaquery to @-internal-mediaquery to be consistent with
  other internal @-rules.
- Removed MediaQueryParserMode which is now the same for all MQ parsing.

BUG=247657

Review URL: https://chromiumcodereview.appspot.com/15679021

git-svn-id: svn://svn.chromium.org/blink/trunk@152218 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Error recovery for valid media query followed by garbage.
Remaining issue after r151842.

The "error rule_error_recovery" production would not trigger in this case
since a valid_media_query would be reduced to a media_query not taking the
following tokens into account.

BUG=247510

Review URL: https://chromiumcodereview.appspot.com/16583003

git-svn-id: svn://svn.chromium.org/blink/trunk@152112 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Tokenize "and(" as a FUNCTION in media queries.
BUG=247282

Review URL: https://chromiumcodereview.appspot.com/15878013

git-svn-id: svn://svn.chromium.org/blink/trunk@151907 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Improved parse error handling for CSSMQ.
    
Corrected the grammar for media queries and media query lists.
    
Do recognize "and(" as function tokens. The existing code erroneously split
it into "and" and "(" inside media queries.
    
Keep returning 0 instead of "not all" for @-webkit-mediaquery parse errors
to avoid that things like deleteMedium("#?:/") delete "not all" queries.

BUG=236302
NOTRY=true

Review URL: https://chromiumcodereview.appspot.com/14620012

git-svn-id: svn://svn.chromium.org/blink/trunk@151842 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
Fix variable name style violation from r151791
This change somehow slipped past the style check when landing
https://codereview.chromium.org/16379002/

Review URL: https://chromiumcodereview.appspot.com/15813017

git-svn-id: svn://svn.chromium.org/blink/trunk@151810 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
inline WebCore::Node::Node constructor more safely
Recently, some toolchains started giving link errors due to WebCore::Node::Node
being undefined in libwebkit.so.  I suspect this is due to incomplete inlining,
since ContainerNode.h does not include Document.h (where the inlining was
defined).

This fix changes the Document argument to the Node constructor to a TreeScope,
which is the sole purpose of this argument, and since Node isn't a TreeScope
there's no circular dependency to worry about forward declarations.

Review URL: https://chromiumcodereview.appspot.com/16379002

git-svn-id: svn://svn.chromium.org/blink/trunk@151791 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
[css-device-adapt] Imported opera tests from hg.csswg.org
Generated using generate-tests.py with webkit prefix and template.blink.html:

http://hg.csswg.org/test/file/9a0d69351b3b/contributors/opera/incoming/css-device-adapt

template.blink.html uses configurationForViewport which is part of why
expected results have changed, in addition to the fact that the feature is
still disabled and the tests have new expected results because of spec changes.

BUG=none

Review URL: https://chromiumcodereview.appspot.com/16103004

git-svn-id: svn://svn.chromium.org/blink/trunk@151751 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
Skip argv[0] when processing command line options in symlink.py
The problem fixed by this patch is that this script always creates a link
to itself in the target location. That behavior was probably not intended
and caused problems when running this script several times with the same
target folder. Each run of this script would create one expected link and
one link to the script itself. Meaning that the need to use --force the
second time was needed to overwrite the "self-link" from the first run.

Even with --force there were issues if this script was run in parallel
since there can be a race condition in overwriting the "self-link".

Review URL: https://chromiumcodereview.appspot.com/16096006

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@202661 0039d316-1c4b-4281-b951-d872f2087c98
mostynb
untangle pango usage from use_x11 and OS==linux
This allows pango to be toggled independently of X11 and linux. It defaults 
to enabled on these.

Review URL: https://chromiumcodereview.appspot.com/15102010

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@201892 0039d316-1c4b-4281-b951-d872f2087c98
mostynb
add a macro that really identifies glibc
uClibc pretends to be glibc, so just checking for __GLIBC__ doesn't always
work.  Rather than check for defined(__GLIBC__) && !defined(__UCLIBC__) in
multiple places, do it once and define LIBC_GLIBC if we're certain that we're
really using glibc.

NOTRY=true

Review URL: https://chromiumcodereview.appspot.com/15405003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@201761 0039d316-1c4b-4281-b951-d872f2087c98
bratell
Correct link for 'ISimpleDOM COM interfaces for accessibility'
The link in the third party list didn't work. Replacing
http://www.mozilla.org/en-US/access/windows/at-apis which is dead with
http://developer.mozilla.org/en-US/docs/Accessibility/AT-APIs instead.

BUG=none
TBR=brettw

Review URL: https://chromiumcodereview.appspot.com/15272003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@201484 0039d316-1c4b-4281-b951-d872f2087c98
mstensho
Gtk content shell: make the window shrinkable.
Don't treat a window resize request by setting the content widget's
minimum size; instead just resize the top level window.

R=
BUG=236301

Review URL: https://chromiumcodereview.appspot.com/14496004

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@201315 0039d316-1c4b-4281-b951-d872f2087c98
mostynb
add more string -> unsigned number conversion unit tests
Add unit tests for the following functions in base:
	StringToUint
	StringToUint64
	StringToSizeT

Review URL: https://chromiumcodereview.appspot.com/14794002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@201204 0039d316-1c4b-4281-b951-d872f2087c98
bratell
Fix link to NVidia Control X Extension Library homepage
Missing scheme in the link made it not work.

BUG=

Review URL: https://chromiumcodereview.appspot.com/15302002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@201023 0039d316-1c4b-4281-b951-d872f2087c98
rune
[CSSMQ] Implemented support for the scan media feature.
The scan media feature is only supported for "tv" as per spec. It is
currently not possible to query if a tv is progressive or interlaced.
Progressive is assumed for now.

Also, for media features that take ident values, only accept idents
which are allowed for a given feature.

BUG=236321

Review URL: https://chromiumcodereview.appspot.com/13896036

git-svn-id: svn://svn.chromium.org/blink/trunk@150487 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Optimized querySelector(All) when selector contains #id.
There existed an optimization that did an element lookup for an id if the
leftmost part of the selector was an id selector. Without this change, these
queries would do an id lookup:

querySelector("#id"), querySelector("#id.class")

while these wouldn't:

querySelector(".class#id"), querySelector("[name=x]#id")

This change modifies the element lookup to include the latter two.

More importantly, it also extends the optimization for id selectors to limit
traversal of the dom-tree to the sub-tree rooted at the element with an id
matching the rightmost id selector in the whole selector. For id selectors
appearing left of adjacent combinators, the traversal needs to be rooted at
the parent of the element with the given id.

Examples:

querySelector("#id span") - traversal from the id element.
querySelector("#id + div span") - traversal from the parent of the id element.

This fix should make this:

querySelector("#id span")

as fast as:

getElementById("id").querySelector("span")

BUG=240188

Review URL: https://chromiumcodereview.appspot.com/14581013

git-svn-id: svn://svn.chromium.org/blink/trunk@150417 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
[CSSMQ] Allow integer values for monochrome media feature.
min/max-monochrome already did.

BUG=236334

Review URL: https://chromiumcodereview.appspot.com/14203017

git-svn-id: svn://svn.chromium.org/blink/trunk@150415 bbb929c8-8fbe-4397-9dbb-9b2b20218538
rune
Recognize html whitespaces as separators for attribute selectors.
Used to only recognize 0x20 as a separator for attribute selector matching
values in space separated lists. Now recognizes 0x09, 0x0a, 0x0c, 0x0d, and
0x20 as separators.

BUG=239786

Review URL: https://chromiumcodereview.appspot.com/14980012

git-svn-id: svn://svn.chromium.org/blink/trunk@150410 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mstensho
Gtk content shell: map key F5 to reload.
R=
BUG=236299

Review URL: https://chromiumcodereview.appspot.com/14389010

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@199988 0039d316-1c4b-4281-b951-d872f2087c98
ed
CSS systemcolors should work in svg properties using <color>.
This affects the 'stop-color', 'flood-color' and 'lighting-color'
properties.

R=
BUG=234936

Review URL: https://chromiumcodereview.appspot.com/14108013

git-svn-id: svn://svn.chromium.org/blink/trunk@149844 bbb929c8-8fbe-4397-9dbb-9b2b20218538
mostynb
Feeding negative numbers to the HexStringToUInt64 should fail, with output 0 (the closest value in the datatype's range).
Review URL: https://chromiumcodereview.appspot.com/14109020

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@197614 0039d316-1c4b-4281-b951-d872f2087c98
mostynb
fix capslock typo in net/third_party/nss/README.chromium
"License FILE:" should be "License File:".  This typo slipped through in this previous review:
https://chromiumcodereview.appspot.com/10830201

Review URL: https://chromiumcodereview.appspot.com/14544002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@197103 0039d316-1c4b-4281-b951-d872f2087c98
ohrn
Introduce arm_version to allow building for armv5, v6 or v7.
This patch deprecates armv7 and adds arm_version that takes an integer
value representing the ARM architecture level.

In addition arm_arch, arm_tune, arm_fpu, arm_float_abi and arm_thumb can
be set to fine tune CPU related compiler flags, defaults are provided for
ARM versions 5 to 7.

BUG=234135

Review URL: https://chromiumcodereview.appspot.com/14065005

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@196702 0039d316-1c4b-4281-b951-d872f2087c98
msimonides
Clear the background_page_ready flag in DisableExtension.
I've used a conservative approach and only clear the background_page_ready
flag. In the UnloadExtension method the whole extension_runtime_data_ for
the extension is cleared, so maybe the same should be done here?

BUG=232435
R=mpcomplete@chromium.org

Review URL: https://chromiumcodereview.appspot.com/14246028

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@195468 0039d316-1c4b-4281-b951-d872f2087c98
mostynb
add --enable-spatial-navigation flag for testing
This depends on the following blink patch:
https://codereview.chromium.org/13811041/

Review URL: https://chromiumcodereview.appspot.com/14110006

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@194875 0039d316-1c4b-4281-b951-d872f2087c98
mostynb
posix: replace nonstandard futimes call with futimens
Replace a futimes call with futimens which is specified in POSIX.1-2008.

R=brettw@chromium.org,darin@chromium.org

Review URL: https://chromiumcodereview.appspot.com/13818027

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@194862 0039d316-1c4b-4281-b951-d872f2087c98
ohrn
Remove zero length composing spans.
This fixes the following logcat error:
E/SpannableStringBuilder(14995): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length

BUG=229809

Review URL: https://chromiumcodereview.appspot.com/13820016

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@193948 0039d316-1c4b-4281-b951-d872f2087c98
mostynb
fix gcc 4.7 compilation errors in base_unittests
Compiling base_unittests with gcc 4.7 on linux gives these errors:
../../base/logging_unittest.cc: In member function 'virtual void logging::{anonymous}::LoggingTest_BasicLogging_Test::TestBody()':
../../base/logging_unittest.cc:68:172: error: converting 'false' to pointer type for argument 1 of 'char testing::internal::IsNullLiteralHelper(testing::internal::Secret*)' [-Werror=conversion-null]
../../base/logging_unittest.cc: In member function 'virtual void logging::{anonymous}::LoggingTest_LogIsOn_Test::TestBody()':
../../base/logging_unittest.cc:123:174: error: converting 'false' to pointer type for argument 1 of 'char testing::internal::IsNullLiteralHelper(testing::internal::Secret*)' [-Werror=conversion-null]
../../base/logging_unittest.cc:132:174: error: converting 'false' to pointer type for argument 1 of 'char testing::internal::IsNullLiteralHelper(testing::internal::Secret*)' [-Werror=conversion-null]
../../base/logging_unittest.cc:141:174: error: converting 'false' to pointer type for argument 1 of 'char testing::internal::IsNullLiteralHelper(testing::internal::Secret*)' [-Werror=conversion-null]

Switching from EXPECT_EQ(false, something) to EXPECT_TRUE(false == something)
fixes the problem.

Review URL: https://chromiumcodereview.appspot.com/14019004

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@193872 0039d316-1c4b-4281-b951-d872f2087c98
mostynb
Android: fix link error for android_full_debug=1
android_full_debug=1 fails to link with "undefined reference to
__cxa_bad_typeid". Work around this by telling the linker to ignore
unused input sections.

Review URL: https://chromiumcodereview.appspot.com/13772007

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@193737 0039d316-1c4b-4281-b951-d872f2087c98
mostynb
Android: improve native debuggability
When starting with --wait-for-debugger command line option, it's ending
up in a busy loop waiting for a variable to be changed. Change that busy
loop from a macro to a function. It avoids having to step on instruction
level to find the right stack frame before the variable is visible.


Review URL: https://chromiumcodereview.appspot.com/13597005

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@192944 0039d316-1c4b-4281-b951-d872f2087c98
mostynb
libflac and libspeex are only used if input_speech==1, so add the dependencies as needed.
BUG=none

Review URL: https://chromiumcodereview.appspot.com/13431003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@192653 0039d316-1c4b-4281-b951-d872f2087c98
mostynb
remove redundant DCHECK that a size_t variable >= 0
SampleVector::GetCountAtIndex has a DCHECK which checks that a size_t
variable is >= 0 and then some other condition.  But size_t is an
unsigned type so the first part of the check is useless (and it
gives an error because of this with clang).


Review URL: https://chromiumcodereview.appspot.com/13006014

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@190776 0039d316-1c4b-4281-b951-d872f2087c98
mostynb
Make it possible to override the default mipsel sysroot.
Also, update the default mipsel sysroot to match the work in issue 12315003.

Review URL: https://chromiumcodereview.appspot.com/12387011

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@186251 0039d316-1c4b-4281-b951-d872f2087c98
mostynb
add a use_alsa gyp setting
By adding a gyp setting, we can explicitly disable alsa on various
unix targets that don't include alsa.

BUG=

TEST=Build with use_alsa=0 then run ldd on output binaries to verify libasound is not listed (and is listed if built with use_alsa=1 or unspecified).


Review URL: https://chromiumcodereview.appspot.com/12316049

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@185011 0039d316-1c4b-4281-b951-d872f2087c98
mostynb
ffmpeg_unittests should depend on use_ffmpeg==1
This target currently makes assumptions based on the platform, even though there's an explicit variable that was previously set for this purpose.


Review URL: https://chromiumcodereview.appspot.com/12334037

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@184320 0039d316-1c4b-4281-b951-d872f2087c98
mostynb
if PKG_CONFIG_PATH is already set, pkg-config-wrapper should use these dirs too
If PKG_CONFIG_PATH is set, then prepend these paths to those generated
by the wrapper.  This allows cross-compilation using sysroots with pkgconfig
directories in non-standard locations.

This change is safer than the original patch (https://codereview.chromium.org/12320047/), which was reverted (https://codereview.chromium.org/12317063/) due to what appears to be a chromeos builder with PKG_CONFIG_PATH set to an incomplete value (should probably be unset).

Add Opera Software to the AUTHORS file


BUG=


Review URL: https://chromiumcodereview.appspot.com/12340023

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@184184 0039d316-1c4b-4281-b951-d872f2087c98
mostynb
pkg-config-wrapper shouldn't clobber PKG_CONFIG_PATH if it is already set
This allows cross-compilation using sysroots with pkgconfig directories in
non-standard locations.

Add Opera Software to the AUTHORS file


BUG=


Review URL: https://chromiumcodereview.appspot.com/12320047

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@183957 0039d316-1c4b-4281-b951-d872f2087c98

V8

Author Message When
bratell
[jumbo] Rename one of the ResolveRenames
Recently* a second ResolveRenames appeared in
typed-optimization.cc. In some extreme (non-default) jumbo
builds that file shared translation unit (and thus anonymous
namespace) with load-elimination.cc which also has a
ResolveRenames which is slightly different.

To avoid that name clash and failed compilation, this
renames ResolveRenames -> ResolveRenamesForOpt.

*) It appeared in
 https://chromium-review.googlesource.com/c/v8/v8/+/1609803

Change-Id: Ia175468a8e978e93e95da1d28f74cee8dce253d2
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1615465
Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Auto-Submit: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#61655}
bratell
[jumbo] Avoid identical symbols between json and normal parser
The new json parser reuses a lot of symbol names from the
ordinary parser and in some extreme jumbo builds those
symbols end up in the same translation unit and prevents
compilation.

This adds "Json" to some duplicate symbol names.

Change-Id: Ie38ec7e65f9807b877d35689b654c696dc880998
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1602704
Auto-Submit: Daniel Bratell <bratell@opera.com>
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61403}
tmoniuszko
Include win32-headers.h to avoid jumbo build failure
Windows.h defines GetMessage macro which clashes with
MessageHandler::GetMessage. The problem arises when icu_util.cc is
included before messages.cc in the same jumbo file.

win32-headers.h defines NOUSER before including windows.h. This prevents
GetMessage from being defined.

Bug: v8:9042
Change-Id: I174eae5036ed2134b210d628fd2a97718db816d8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1539838
Reviewed-by: Adam Klein <adamk@chromium.org>
Commit-Queue: Tomasz Moniuszko <tmoniuszko@opera.com>
Cr-Commit-Position: refs/heads/master@{#60483}
bratell
Fixing SourcePosition ambiguity
There is both a v8::internal::SourcePosition and a
v8::internal::torque::SourcePositon and in jumbo builds
an unqualified SourcePositon ended up referring to the wrong
one since nobody had told the compiler that the correct one
existed. This broke jumbo builds of v8 cctests
on Windows (because only in Windows will the compiler look for
the symbol in a parent namespace).

R=szuend@chromium.org

Bug: v8:8880
Change-Id: I7c9ebf68629642b65e86d6a8ae458ec5ff01f2ce
Reviewed-on: https://chromium-review.googlesource.com/c/1496972
Reviewed-by: Mathias Bynens <mathias@chromium.org>
Reviewed-by: Simon Zünd <szuend@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#59980}
bratell
Removed reference to deleted assembler-arch-inl.h
src/assembler-arch-inl.h was deleted in November but it
remained in the build system. This patch also removes it from
the build system.

Change-Id: Ib384943861156d603636dc3069130cd6c5dfd4ef
Reviewed-on: https://chromium-review.googlesource.com/c/1456100
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#59396}
bratell
[wasm] Remove unused member variable
After the v8:8689 "Split compilation in three stages" commit landed,
WasmCompilationUnit::result_ was left dangling. In builds that
noticed this (in particular certain jumbo builds), the
-Wunused-private-field warning triggered which broke the build.

Bug: v8:8689
Change-Id: Iafc56b3dc6bb53e2e8417cabce540c2fcfd3431a
Reviewed-on: https://chromium-review.googlesource.com/c/1433780
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Ben Titzer <titzer@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59059}
bratell
Always route builds through jumbo.gni for simpler code
jumbo.gni will check whether use_jumbo_build is set or not and
if it's not set it will just check that |jumbo_excluded_sources|
lists do not include non-existing files. That means that there
is little/nothing to lose by always routing v8_source_set that
way, and it adds a bit in build file simplicity and local
checking of |jumbo_excluded_sources|.

Change-Id: I19ed91d304f4a2edbf10661d20e5f5d3180b3a35
Reviewed-on: https://chromium-review.googlesource.com/c/1430832
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59169}
bratell
Handle Windows paths for v8 debug info for builtins
If __FILE__ contained a backslash (which happened in jumbo builds on
Windows), then the generated embedded.S could contain broken strings.

This replaces backslashes with forward slashes before writing the
paths to embedded.S.

Bug: v8:8418,chromium:924454
Change-Id: I32134e9cd8acd2437f61a8f74c14583fa87a4bdf
Reviewed-on: https://chromium-review.googlesource.com/c/1430699
Reviewed-by: Michael Stanton <mvstanton@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#59053}
bratell
Removed headers from a jumbo exclude list in cctest
Headers are not included in jumbo builds so excluding
them has no meaning and will cause problems in a future
version of jumbo. This patch removes two such headers.

Change-Id: I19eadf989ff69a4e1116ba265ecb37236d67efd4
Reviewed-on: https://chromium-review.googlesource.com/c/1290793
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#56809}
bratell
[jumbo] Avoid collision between two kFloat32Bit
In jumbo builds, many files are compiled in the same translation
unit and share the same anonymous namespace. Now both gap_resolver.cc and
register-allocator.cc defined kFloat32Bit (a mask representation
of MachineRepresentation::kFloat32) which clashed if those
files were compiled together.

This patch inlines and removed one of the constants.

Change-Id: Ic79e077e62ce9866b6201ec61a9df1e66d5e4a13
Reviewed-on: https://chromium-review.googlesource.com/1206572
Reviewed-by: Bill Budge <bbudge@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#55677}
bratell
Rename local macro CHECK_RECEIVER -> CHECK_RECEIVER_OBJECT
builtins_util.h declares a macro named CHECK_RECEIVER and in some
extreme jumbo build configurations, that macro will end up in the
same translation unit as runtime-dataview.cc

Bug: v8:7792
Change-Id: I6db865b6061afd6bf1c74b3a172485d68c749929
Reviewed-on: https://chromium-review.googlesource.com/1075052
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53430}
mostynb
[jumbo] also exclude test-bytecode-generator.cc from cctest jumbo builds
This caused trouble for my downstream CI tests, even though it builds
successfully in the canonical v8 tree.  To be investigated properly
later.

Bug: chromium:746958
Change-Id: I180a5ecc51051e4eb6617180ccba787ff80bcf45
Reviewed-on: https://chromium-review.googlesource.com/682695
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Mostyn Bramley-Moore <mostynb@opera.com>
Cr-Commit-Position: refs/heads/master@{#48151}
mostynb
[jumbo]: allow cctest jumbo mode builds
There is no jumbo_executable target atm, so split the cctest v8_executable
target into cctest and cctest_sources.

Bug: chromium:746958
Change-Id: Iec0956234d026039c4d29921170dd2f0955222ca
Reviewed-on: https://chromium-review.googlesource.com/680575
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Mostyn Bramley-Moore <mostynb@opera.com>
Cr-Commit-Position: refs/heads/master@{#48147}
mostynb
[jumbo] add test source file namespace in test-hashmap.cc
Bug: chromium:746958
Change-Id: Ia251d99ffe142fadb99fc83082683aa87676c47d
Reviewed-on: https://chromium-review.googlesource.com/680574
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Mostyn Bramley-Moore <mostynb@opera.com>
Cr-Commit-Position: refs/heads/master@{#48145}
mostynb
[jumbo] undef some more macros defined in .cc files
Bug: chromium:746958
Change-Id: I81ad56e3bfbdc458c3e318927191f6c5e137c448
Reviewed-on: https://chromium-review.googlesource.com/680554
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Mostyn Bramley-Moore <mostynb@opera.com>
Cr-Commit-Position: refs/heads/master@{#48143}
mostynb
[jumbo] drop duplicate BUILD macro from test-run-wasm-js.cc
BUILD is already defined in test/cctest/wasm/wasm-run-utils.h.

Bug: chromium:746958
Change-Id: Icf577ce91424d9851d2db39658fd52c68c864995
Reviewed-on: https://chromium-review.googlesource.com/676843
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Mostyn Bramley-Moore <mostynb@opera.com>
Cr-Commit-Position: refs/heads/master@{#48122}
mostynb
[jumbo] add some missing cctest header guards
Bug: chromium:746958
Change-Id: I0c1dfe1019b5324d322f5c7a6a2e6095c18f0b40
Reviewed-on: https://chromium-review.googlesource.com/676583
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Mostyn Bramley-Moore <mostynb@opera.com>
Cr-Commit-Position: refs/heads/master@{#48106}
mostynb
[jumbo] add test namespaces for cctest
By adding a per test source file namespace, we can avoid a lot of
symbol collisions in jumbo builds.

While we're at it, let's remove some "using" statements that also
cause trouble.

Bug: chromium:746958
Change-Id: I6f8a723e1ba5905888638e0687b23193f3f012ca
Reviewed-on: https://chromium-review.googlesource.com/676803
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Mostyn Bramley-Moore <mostynb@opera.com>
Cr-Commit-Position: refs/heads/master@{#48102}
mostynb
[jumbo] fix arm64 builds
Previously instructions-arm64.h was alternatively defining or declaring
some constants based on whether or not ARM64_DEFINE_FP_STATICS was defined,
and it was assumed that exactly one file would include this header with
the macro defined.

In jumbo builds, the header guards in instructions-arm64.h meant that the
resulting state of the header file would be whichever of the two cases
that appeared first in the compilation unit.  This would cause multiple
definitions in some cases and no definitions in some other cases (or if
you were really lucky, it would work out ok).

Let's move these constants to a separate source file temporarily, to be
excluded from jumbo compilation units.  This code should eventually be
replaced with a cleaner solution.

Bug: chromium:746958
Change-Id: I7edb1821ef408afd50c6b236d63d3c07f955b58f
Reviewed-on: https://chromium-review.googlesource.com/663898
Commit-Queue: Mostyn Bramley-Moore <mostynb@opera.com>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48003}
mostynb
[jumbo] last few changes for enabling more jumbo_file_merge_limit values
* Inline src/runtime/runtime-typedarray.cc's TypedArrayCopyElements to
  avoid clash with src/builtins/builtins-typedarray.cc
* #undef V after its last use in src/asmjs/asm-scanner.cc
* Convince clang that it's ok that frame_content_ is never used in
  src/deoptimizer.h

Bug: chromium:746958
Change-Id: Ibef589b66384d982a8463c3f05b9db9c4fd92ce0
Reviewed-on: https://chromium-review.googlesource.com/663858
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Mostyn Bramley-Moore <mostynb@opera.com>
Cr-Commit-Position: refs/heads/master@{#47986}
mostynb
[jumbo] avoid MAP_TYPE system header symbol clashes
Linux builds have an include chain from src/perf-jit.cc:
sys/mman.h -> bits/mman.h -> bits/mman-linux.h, which defines
a MAP_TYPE macro that conflicts with InstanceType::MAP_TYPE
in jumbo builds, for some jumbo_file_merge_limit values.

Since MAP_TYPE isn't used in perf-jit.cc, it should be safe
to #undef the macro immediately after the sys/mman.h #include
statement.

Bug: chromium:746958
Change-Id: I1339a4f56cf6783bf6121cd44c93e776af9458ba
Reviewed-on: https://chromium-review.googlesource.com/654042
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Mostyn Bramley-Moore <mostynb@opera.com>
Cr-Commit-Position: refs/heads/master@{#47971}
mostynb
[jumbo] avoid fixed-dtoa.cc conflicts with base/macros.h's RoundUp
Bug: chromium:746958
Change-Id: I18593669e8a8bb622b575258441d4933ad98ec3e
Reviewed-on: https://chromium-review.googlesource.com/654871
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Mostyn Bramley-Moore <mostynb@opera.com>
Cr-Commit-Position: refs/heads/master@{#47894}
mostynb
[jumbo] undef FORWARD_DECLARE after creating it in source files
Followup after https://chromium-review.googlesource.com/c/v8/v8/+/652427
which triggered FORWARD_DECLARE macro redefinition warnings/errors.  Let's
make sure to undef this macro at the end of source files that create it.

Bug: chromium:746958
Change-Id: Ie70743c836db45eb51f412a0d6359f0f667319d3
Reviewed-on: https://chromium-review.googlesource.com/654657
Commit-Queue: Mostyn Bramley-Moore <mostynb@opera.com>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#47866}
mostynb
[jumbo] #undef TRACE at the end of source files
This macro is defined all over the place, and often causes macro
redefinition errors in jumbo builds.  Let's make sure all such
instances created in source files are #undef'ed.

Candidate files found with:
  grep -wL '#undef TRACE' $(git grep -wl '#define TRACE' -- '*.cc')

While we're at it, let's undef all macros defined in these files.

Bug: chromium:746958
Change-Id: I639ca2b141f908457d1b2601cd6d5827dee0ead0
Reviewed-on: https://chromium-review.googlesource.com/652476
Reviewed-by: Mircea Trofin <mtrofin@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Mostyn Bramley-Moore <mostynb@opera.com>
Cr-Commit-Position: refs/heads/master@{#47859}
mostynb
jumbo: avoid arm64 macro redefinition errors
Bug: chromium:746958
Change-Id: I4e23608995952efd0f0bd73d9bf4f9a3fc84d478
Reviewed-on: https://chromium-review.googlesource.com/650256
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Mostyn Bramley-Moore <mostynb@opera.com>
Cr-Commit-Position: refs/heads/master@{#47825}
mostynb
jumbo: utils-arm64.cc: undef __
Bug: chromium:746958
Change-Id: I5df144055d1918bf26acba648e07646150249d94
Reviewed-on: https://chromium-review.googlesource.com/647549
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Mostyn Bramley-Moore <mostynb@opera.com>
Cr-Commit-Position: refs/heads/master@{#47782}
mostynb
jumbo: build some slow-to-compile sources separately
Daniel Bratell reports:
> v8 had a couple of files that were very slow to compile before jumbo
> and if those now end up in the same translation unit, then I can see
> how that translation unit can take an extreme time to get through
> the compiler.
>
> From one of my test builds (times in seconds):
> 49.7 v8_base/objects.o
> 44.0 v8_base/code-stub-assembler.o
> 32.9 v8_base/api.o
> 30.5 v8_base/elements.o
> 25.9 v8_builtins_generators/builtins-regexp-gen.o
> 22.8 v8_base/parser.o
> 21.2 v8_base/heap.o
>
> All of these are in the slowest 0.1% ninja jobs so they are extreme
> in some way. I think I would just exclude them all (or at least the
> 30s+ ones) completely from jumbo.

BUG=chromium:746958

Change-Id: I01741109def4f9ac7c946319374076eb7b9d03b6
Reviewed-on: https://chromium-review.googlesource.com/637971
Commit-Queue: Mostyn Bramley-Moore <mostynb@opera.com>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#47703}
mostynb
Start preparing test/cctest for jumbo compilation
* Avoid "using namespace" statements, which trigger clang's -Wheader-hygiene
  warnings in jumbo builds.
* Undefine created macros at the end of source files.

BUG=chromium:746958

Change-Id: I5d25432c314437f607b0e1be22765a6764267ba6
Reviewed-on: https://chromium-review.googlesource.com/610962
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Mostyn Bramley-Moore <mostynb@opera.com>
Cr-Commit-Position: refs/heads/master@{#47347}
mostynb
jumbo: Include src/compiler/*linkage.cc in jumbo compilation units
BUG=chromium:752428

Change-Id: I0d1f3a09ecd2ffb7bfd8120b212e88fd00008fc0
Reviewed-on: https://chromium-review.googlesource.com/608961
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Commit-Queue: Mostyn Bramley-Moore <mostynb@opera.com>
Cr-Commit-Position: refs/heads/master@{#47544}
mostynb
add gn jumbo build support
To speed up compilation times, jumbo allows files to be compiled
together. This is a well known method ("unity builds") to both
compile faster and create a poor man's "full program optimization".
We are only interested in compile times.

Background:
https://chromium.googlesource.com/chromium/src/+/master/docs/jumbo.md

Note that jumbo builds are not enabled by default.  To try this out,
add use_jumbo_build=true to your GN args.

BUG=chromium:746958

Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel
Change-Id: Ieb9fdccb6c135e9806dbed91c09a29aa8b8bee11
Reviewed-on: https://chromium-review.googlesource.com/579090
Commit-Queue: Mostyn Bramley-Moore <mostynb@opera.com>
Reviewed-by: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Marja Hölttä <marja@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#47239}
mostynb
remove reference to Parser::Internalize, which is gone now
BUG=v8:5203

Change-Id: I088145e83877fad1b15476757f528e5f1e9cdf54
Reviewed-on: https://chromium-review.googlesource.com/511442
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Reviewed-by: Marja Hölttä <marja@chromium.org>
Commit-Queue: Mostyn Bramley-Moore <mostynb@opera.com>
Cr-Commit-Position: refs/heads/master@{#45482}
jl
Do not enter contexts implicitly
Blink uses Isolate::GetEnteredContext() to implement HTML's "entry
context" concept, and thus depends on it not being changed except
explicitly (by Blink.) To support this, stop entering contexts
implicitly in all external API entry points; rather just set the
context as current. The only thing that changes the entered context
is now Context::Enter()/Context::Exit() (and Context::Scope.)

BUG=v8:6307

Review-Url: https://codereview.chromium.org/2862483003
Cr-Commit-Position: refs/heads/master@{#45064}
landell
Print error message if dumping wasm file fails
BUG=

Review-Url: https://codereview.chromium.org/2806313002
Cr-Commit-Position: refs/heads/master@{#45007}
jl
[inspector] Add some context scopes to inspector code
Currently, the external API (e.g. v8::Object::Get()) will enter the
context passed to it automatically. This is incorrect and causes some
trouble for Blink, so we want to change that.

It then becomes a potential problem to call the external API without
first entering a context, which the inspector code does in some
places. This patch aims to correct this.

BUG=v8:6307

Review-Url: https://codereview.chromium.org/2841053002
Cr-Commit-Position: refs/heads/master@{#44917}
landell
uclibc now has support for backtrace and demangle functions
BUG=

Review-Url: https://codereview.chromium.org/2292973002
Cr-Commit-Position: refs/heads/master@{#39263}
asaka
additional includes needed for MIPS toolchain after move of hashmap
Follow up from https://codereview.chromium.org/2010243003

BUG=v8:5050

Review-Url: https://codereview.chromium.org/2071273003
Cr-Commit-Position: refs/heads/master@{#37103}
mostynb
include stdlib.h when using calloc
Small followup to https://codereview.chromium.org/2042253002

BUG=chromium:616033

Review-Url: https://codereview.chromium.org/2061163003
Cr-Commit-Position: refs/heads/master@{#36992}
asaka
Replace std::trunc() with trunc() to support cross-compiling
Fix-up of https://codereview.chromium.org/1965443003 required for
certain toolchains that do not support std::trunc().

BUG=

Review-Url: https://codereview.chromium.org/2056693002
Cr-Commit-Position: refs/heads/master@{#36882}
pgorszkowski
Invalidate defaultObjects if timezone changes
In case of calling 'toLocaleString', 'toLocaleTimeString' and
'toLocaleDateString' functions of 'Date' with empty 'locales' and
'options', DateTimeFormat is cached inside 'defaultObjects'.
If we change the timezone the cache is not invalidated.

BUG=v8:5022
TEST=cctest:DateCacheVersion. See the bug
CQ_INCLUDE_TRYBOTS=tryserver.v8:v8_linux_noi18n_rel_ng

Review-Url: https://codereview.chromium.org/1985423003
Cr-Commit-Position: refs/heads/master@{#36420}
haavardm
Expose JSON stringifier through V8 API
BUG=602659
LOG=N

Review URL: https://codereview.chromium.org/1891203002

Cr-Commit-Position: refs/heads/master@{#35543}
mostynb
make v8_use_snapshot configurable in gn
Changing this value is not guaranteed to work yet, but it needs to be
an arg in order to experiment with it.

Review URL: https://codereview.chromium.org/1427343003

Cr-Commit-Position: refs/heads/master@{#31932}
landell
Include stdio.h for fwrite support
BUG=

Review URL: https://codereview.chromium.org/1418213007

Cr-Commit-Position: refs/heads/master@{#31669}
mostynb
convert a bunch of DCHECKs to STATIC_ASSERT
Review URL: https://codereview.chromium.org/1251593009

Cr-Commit-Position: refs/heads/master@{#29825}
bratell
Avoid repeating code when creating builtins.
InstallBuiltinFunctionIds stood out when looking at code that grew
strangely when compiled with default optimizations.

This change from repeated code to a loop saves 6-7 KB of machine code.
I suspect it's faster but I also suspect it's fast enough either way so
that is not really a factor. Machine code reduction seen below.

Code formatted with git cl format.

clang x64:
Total change: -5985 bytes
-------------------------------------------
 +517 - Source: ?? - (gained 744, lost 227)
-------------------------------------------
  New symbols:
       +744: v8::internal::Genesis::InstallBuiltinFunctionIds()::builtins type=d, size=744 bytes
  Removed symbols:
         -4: .L.str98 type=r, size=4 bytes
... [stripped 30 similar lines]
        -19: .L.str100 type=r, size=19 bytes

----------------------------------------------------------------------------------------------
 -6502 - Source: /home/bratell/src/chromium/src/v8/src/bootstrapper.cc - (gained 0, lost 6502)
----------------------------------------------------------------------------------------------
  Removed symbols:
      -1135: v8::internal::ResolveBuiltinIdHolder(v8::internal::Handle<v8::internal::Context>, char const*) type=t, size=1135 bytes
  Shrunk symbols:
      -5367: v8::internal::Genesis::InstallBuiltinFunctionIds() type=t, (was 7105 bytes, now 1738 bytes)

BUG=

Review URL: https://codereview.chromium.org/918303005

Cr-Commit-Position: refs/heads/master@{#26919}
bratell
Make the statistics generation data driven.
StatisticsExtension::GetCounters() has grown to repeat a lot of code
so to make it more maintainable and generate less machine code,
make it data driven. This makes a 64 bit Linux build 50 KB smaller.

Total change: -51677 bytes
==========================
  1 shrunk, for a net change of -51677 bytes (64222 bytes before, 12545 bytes after) across 1 sources
  279691 unchanged, totalling 51423668 bytes

Per-source Analysis:

-------------------------------------------------------------------------------------------------------------------
 -51677 - Source: /home/bratell/src/chromium/src/v8/src/extensions/statistics-extension.cc - (gained 0, lost 51677)
-------------------------------------------------------------------------------------------------------------------
  Shrunk symbols:
     -51677: v8::internal::StatisticsExtension::GetCounters(v8::FunctionCallbackInfo<v8::Value> const&) type=t, (was 64222 bytes, now 12545 bytes)

BUG=

Review URL: https://codereview.chromium.org/912413003

Cr-Commit-Position: refs/heads/master@{#26640}
mostynb
convert compile-time checkable DCHECKs to STATIC_ASSERTs
Review URL: https://codereview.chromium.org/768683006

Cr-Commit-Position: refs/heads/master@{#26187}
mathiasb
Make `RegExp.prototype.flags` getter configurable
TEST=mjsunit/harmony
BUG=v8:3751
LOG=N

Review URL: https://codereview.chromium.org/788053003

Cr-Commit-Position: refs/heads/master@{#25809}
mostynb
move v8_use_external_startup_data to standalone.gypi
This allows the setting to be overridable by embedders,
at the cost of forcing embedders that don't build v8
using standalone.gypi to add this setting to their build
config.

BUG=chromium:421063
LOG=Y

Review URL: https://codereview.chromium.org/794583002

Cr-Commit-Position: refs/heads/master@{#25781}
mathiasb
Implement the `RegExp.prototype.flags` getter
TEST=mjsunit/harmony
BUG=v8:3751
LOG=N

Review URL: https://codereview.chromium.org/770333005

Cr-Commit-Position: refs/heads/master@{#25762}
alexanderk
Fix include mistakes
1) Missing <stdio.h> while using fopen, fclose, fseek etc
2) platform-linux.cc includes <sys/types.h> wtice

BUG=v8:3691

Review URL: https://codereview.chromium.org/716123003

Cr-Commit-Position: refs/heads/master@{#25395}
mostynb
only define ARRAYSIZE_UNSAFE for NaCl builds
Now that C++11 is allowed, we can use arraysize instead of
ARRAYSIZE_UNSAFE, except in NaCl builds.  So let's move this
macro inside an NaCl ifdef.

BUG=chromium:405225
LOG=y
R=jochen@chromium.org

Review URL: https://codereview.chromium.org/668303002

Patch from Mostyn Bramley-Moore <mostynb@opera.com>.

Cr-Commit-Position: refs/heads/master@{#24875}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24875 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
jl
Preserve message when rethrowing exception
A new message was always generated if there is a the top-most verbose
TryCatch, even when rethrowing an exception from a TryCatch that is going
out of scope, and we already have a message.

BUG=v8:3583
LOG=Y
R=yangguo@chromium.org

Review URL: https://codereview.chromium.org/587703002

Patch from Jens Widell <jl@opera.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24152 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
mathiasb
Only escape U+0022 in argument values of `String.prototype` HTML methods
Contributed by Mathias Bynens <mathiasb@opera.com>.

TEST=mjsunit/es6/string-html
BUG=v8:2217
LOG=Y
R=arv@chromium.org, yangguo@chromium.org

Review URL: https://codereview.chromium.org/446973004

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22955 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
mathiasb
Add `CheckObjectCoercible` for the `String.prototype` HTML methods
Contributed by Mathias Bynens <mathiasb@opera.com>.

TEST=mjsunit/es6/string-html
BUG=v8:2218
LOG=Y
R=yangguo@chromium.org

Review URL: https://codereview.chromium.org/422543003

Patch from Mathias Bynens <mathias@qiwi.be>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22938 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
sof
Add bailout checks to Message::Get{Start,End}Column()
Also add an initial ON_BAILOUT() check to these two 'bailout enabled'
accessors.

(The need for these was encountered via http://crbug.com/393273)

R=dcarney@chromium.org

Review URL: https://codereview.chromium.org/402173003

Patch from Sigbjorn Finne <sof@opera.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22553 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
mathiasb
Implement String.prototype.codePointAt and String.fromCodePoint.
Contributed by Mathias Bynens <mathiasb@opera.com>.

TBR=mathiasb@opera.com, rossberg@chromium.org
BUG=v8:2840
LOG=Y

Review URL: https://codereview.chromium.org/406863003

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22493 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
mathiasb
Make `String.prototype.contains` throw when passing a regular expression
Contributed by Mathias Bynens <mathiasb@opera.com>.

TEST=mjsunit/harmony
BUG=v8:3261
LOG=Y
R=yangguo@chromium.org, arv@chromium.org, ishell@chromium.org

Review URL: https://codereview.chromium.org/227113005

Patch from Mathias Bynens <mathiasb@opera.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20534 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
sigbjornf
Upgrade Symbol implementation to match current ES6 behavior.
Refresh the implementation of Symbols to catch up with what the
specification now mandates:

* The global Symbol() function manufactures new Symbol values,
  optionally with a string description attached.

* Invoking Symbol() as a constructor will now throw.

* ToString() over Symbol values still throws, and
  Object.prototype.toString() stringifies like before.

* A Symbol value is wrapped in a Symbol object either implicitly if
  it is the receiver, or explicitly done via Object(symbolValue) or
  (new Object(symbolValue).)

* The Symbol.prototype.toString() method no longer throws on Symbol
  wrapper objects (nor Symbol values.) Ditto for Symbol.prototype.valueOf().

* Symbol.prototype.toString() stringifies as "Symbol("<description>"),
  valueOf() returns the wrapper's Symbol value.

* ToPrimitive() over Symbol wrapper objects now throws.

Overall, this provides a stricter separation between Symbol values and
wrapper objects than before, and the explicit fetching out of the
description (nee name) via the "name" property is no longer supported
(by the spec nor the implementation.)

Adjusted existing Symbol test files to fit current, adding some extra
tests for new/changed behavior.

LOG=N
R=arv@chromium.org, rossberg@chromium.org, arv, rossberg
BUG=v8:3053

Review URL: https://codereview.chromium.org/118553003

Patch from Sigbjorn Finne <sigbjornf@opera.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19490 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
mathiasb
Use `CHECK_OBJECT_COERCIBLE` macro where possible
Contributed by Mathias Bynens <mathiasb@opera.com>.

TEST=
BUG=v8:3122
LOG=N
R=arv@chromium.org

Review URL: https://codereview.chromium.org/132333019

Patch from Mathias Bynens <mathiasb@opera.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18979 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
mathiasb
Add Opera Software ASA to AUTHORS
Contributed by Mathias Bynens <mathiasb@opera.com>.

BUG=
LOG=N
R=bmeurer@chromium.org, jarin@chromium.org

Review URL: https://codereview.chromium.org/135493003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18976 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
mathiasb
Make `String.prototype.{starts,ends}With` throw when passing a regular expression
Contributed by Mathias Bynens <mathiasb@opera.com>.

TEST=mjsunit/harmony
BUG=v8:3070
LOG=Y
R=arv@chromium.org, ishell@chromium.org

Review URL: https://codereview.chromium.org/120683002

Patch from Mathias Bynens <mathiasb@opera.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18870 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
mathiasb
Fix compilation on x64 architectures
Contributed by Mathias Bynens <mathiasb@opera.com>.

BUG=v8:3110
LOG=Y
R=bmeurer@chromium.org, jarin@chromium.org

Review URL: https://codereview.chromium.org/143003007

Patch from Mathias Bynens <mathiasb@opera.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18760 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
mostynb
DoubleToIStub can't use ip on armv6, because the ubfx impl will clobber it
This previous change broke DoubleToIStub on armv6:
https://code.google.com/p/v8/source/detail?r=16322

The problem is that DoubleToIStub::Generate assumed that it could safely use the ip register, but on armv6 the ubfx implementation will clobber any previous value stored there.  So instead, pick another register.

Test case:
for (var i=0; i<2; i++) {
	v = 4294967295;
	v &= -2;
	print(v)
	}

This should print -2 twice, but on armv6 without this patch, it prints -2 followed by 2046.

This problem causes sunspider's bitops-nsieve-bit, crypto-md5 and crypto-sha1 tests to generate incorrect results (but the results are not checked for validity in sunspider-1.0 as available in chromium, but are checked and reported as incorrect in sunspider-1.0.2).

Thanks to Tomasz Kilarski for helping out with this.

R=bmeurer@chromium.org, rmcilroy@chromium.org

Review URL: https://codereview.chromium.org/131823004

Patch from Mostyn Bramley-Moore <mostynb@opera.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18688 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
sigbjornf
Fix stub-invoked setter callback handling.
When invoking a setter callback for a property using
JSObject::SetPropertyWithCallback(),the callback arguments includes
a correct pair of receiver and holder objects.

Such a pair of _possibly different_ arguments (receiver, holder) must
also be supplied when invoking the same setter callback from JITed
code, when the setter is invoked through the StoreCallbackProperty
stub.

An example where this matters are the accessor properties kept on the
global scope of Worker (i.e., properties kept on the global object
itself, and not on its prototype.) Conflating the receiver with the
holder leads to general confusion when attempting to fetch out the
wrapper object.

LOG=N
R=dcarney@chromium.org, dcarney
BUG=239669

Review URL: https://codereview.chromium.org/139263008

Patch from Sigbjorn Finne <sigbjornf@opera.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18658 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
sigbjornf
Upgrade Number constructor to ES6.
Add missing constants, predicates and functions to the Number
constructor to have it offer what ES6 now specifies.

That is, extend it with:

 * isInteger(), isSafeInteger()
 * parseInt(), parseFloat()
 * EPSILON, MIN_SAFE_INTEGER, MAX_SAFE_INTEGER

LOG=N
R=mstarzinger@chromium.org
BUG=v8:3082

Review URL: https://codereview.chromium.org/124573002

Patch from Sigbjorn Finne <sigbjornf@opera.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18480 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
sof
Avoid duplication of a hidden & inherited prototype's properties.
In Runtime_GetLocalPropertyNames(), the hidden prototypes of an object
are also consulted when deriving the property name set. However, if
given a function object and its template was inherited from the
template of one of its hidden prototypes, that hidden prototype's
property accessors will be present on the object already. Unwanted
duplicates will therefore appear.

Hence, go through the property names that the hidden prototypes
contribute and remove any already occurring ones.

Assumed to be a rare constellation, so the cost of this extra pass is
considered acceptable.

LOG=N
R=dcarney@chromium.org, jochen@chromium.org, rossberg@chromium.org
BUG=269562

Review URL: https://codereview.chromium.org/116533003

Patch from Sigbjorn Finne <sof@opera.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18448 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
sigbjornf
Make a strict function's "name" property non-writable.
Set [[Writable]] to false for the "name" property of strict
functions as well, mirroring what non-strict functions have
it as.

LOG=N
R=rossberg@chromium.org
TEST=mjsunit/regress/regress-270142
BUG=270142

Review URL: https://codereview.chromium.org/99203006

Patch from Sigbjorn Finne <sigbjornf@opera.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18387 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
mostynb
Switch armv7 setting to arm_version==7 in v8 gyp files
BUG=chromium:234135
LOG=Y
R=jkummerow@chromium.org

Review URL: https://codereview.chromium.org/98543008

Patch from Mostyn Bramley-Moore <mostynb@opera.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18297 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
fs
MIPS: Fix return-value from Array.push stub when pushing non-SMI value
Load and update the arrays length in v0 to make sure the length gets
returned correctly when leaving the function.

Add new testcase.

TEST=mjsunit/array-push-non-smi-value

BUG=130022
R=jkummerow@chromium.org, plind44@gmail.com

Review URL: https://codereview.chromium.org/23589002

Patch from fs <fs@opera.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16377 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
bratell
Fix so that you can run presubmit.py in Windows.
presubmit.py tried to execute cpplint.py directly, but in Windows it's the shell that connects that to the python binary so the execution (subprocess.Popen) needs to be told how to find python. An alternative would be to call subprocess.Popen with shell=True but this is less dangerous.

Review URL: https://chromiumcodereview.appspot.com/13849008

Patch from Daniel Bratell <bratell@opera.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14263 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
jl
Fix detection of indexed properties in Object.defineProperty()
When defining an indexed property on an Array object, the object's
length property should (perhaps) be updated.  This was done for any
property for which

  ToUInt32(name) == ToNumber(name)

was true, meaning any property name that, when converted to a number,
was an integer in the range [0, 2^32).  The detection should be more
strict; an indexed property is one for which

  ToString(ToUInt32(name)) == name

is true only.

Review URL: https://codereview.chromium.org/13914003

Patch from Jens Lindström <jl@opera.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14242 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
mostynb
linux: fix uClibc ifdeffery
Remove duplicate inclusion of execinfo.h and make OS::DumpBacktrace
a NOOP on uclibc.

Review URL: https://codereview.chromium.org/13071007
Patch from Mostyn Bramley-Moore <mostynb@opera.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14172 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

Skia

Author Message When
fs
Scale the result of TightBounds when path was inverse-scaled
When the path was "large" (as defined by ScaleFactor(...)), the computed
bounds would not be adjusted to the correct space. Make sure to scale
the result in those cases.

BUG=chromium:678162

Change-Id: Ia2eb94050c4620286e9abb69976dbc0202ecc307
Reviewed-on: https://skia-review.googlesource.com/6501
Reviewed-by: Cary Clark <caryclark@google.com>
Commit-Queue: Cary Clark <caryclark@google.com>
kolczyk
Fix the assert and clamping in SkMatrix::get*Scale[s]().
Follow-up after https://codereview.chromium.org/2143133005/.

BUG=skia:4718
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2154123003

Review-Url: https://codereview.chromium.org/2154123003
kolczyk
Guard SkMatrix::get*Scale[s]() against negative nearly-zero values.
BUG=skia:4718
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2143133005

Review-Url: https://codereview.chromium.org/2143133005
mboc
SkTypeface::MakeFromName to take SkFontStyle.
SkTypeface::MakeFromName currently takes SkTypeface::Style,
which is quite limited. This starts the transition to this
function taking SkFontStyle instead.

GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1818043002

TBR=reed
He said it sounded like a good idea.

Review-Url: https://codereview.chromium.org/1818043002
fs
Add SkPath::isLastContourClosed()
Adds a simple method for checking if the last command/verb in the
current contour is a 'close'.

This will simplify determining "closedness" for blink::Path, and aid
in the implementation of algorithms such as:

https://drafts.fxtf.org/motion-1/#motion-processing (second item in list)

GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1601103006

Review URL: https://codereview.chromium.org/1601103006
fs
Use the unswapped end point y for early out case in winding_line
The x-coordinates are not swapped, so using the swapped y will result
in a comparison with the wrong (end) point.

BUG=skia:4265
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1533873002

Review URL: https://codereview.chromium.org/1533873002
fs
Don't fail SkMergeImageFilter if one of the inputs are empty
If one of the inputs to a SkMergeImageFilter was clipped away or
otherwise caused the filterImage(...) invocation for it to return
false, the entire effect would be "failed" and return false --
regardless of if it had produced a result or not.
Instead of returning false directly if filterImage(...) for a source
returned false, consider all the inputs, and then only return false if
all of them do.

BUG=chromium:489046

Review URL: https://codereview.chromium.org/1133523006
fs
SkMatrix44(const SkMatrix&) needs to initialize the type mask
Review URL: https://codereview.chromium.org/791723006
ljagielski
Leaking CGBitmapContext in SkFontHost_mac
third_party/skia/src/ports/SkFontHost_mac.cpp: don't increase retain count of
newly assigned CFTypeRef in AutoCFRelease::reset(). Each time CFTypeRef is
assigned to AutoCFRelease, AutoCFRelease becomes its sole owner.

BUG=skia:
R=reed@google.com, bungeman@google.com, rmistry@google.com, sheyang@chromium.org

Author: ljagielski@opera.com

Review URL: https://codereview.chromium.org/393513003
ljagielski
Leaking CGBitmapContext in SkFontHost_mac
third_party/skia/src/ports/SkFontHost_mac.cpp: don't increase retain count of
newly assigned CFTypeRef in AutoCFRelease::reset(). Each time CFTypeRef is
assigned to AutoCFRelease, AutoCFRelease becomes its sole owner.

BUG=skia:
R=reed@google.com, bungeman@google.com, rmistry@google.com, sheyang@chromium.org

Author: ljagielski@opera.com

Review URL: https://codereview.chromium.org/393513003
kolczyk
Fixed Skia compilation error with strict clang.
BUG=skia:
R=reed@google.com, sergeyberezin@chromium.org, hcm@google.com

Author: kolczyk@opera.com

Review URL: https://codereview.chromium.org/227043006

git-svn-id: http://skia.googlecode.com/svn/trunk@14071 2bbb7eff-a529-9590-31e7-b0007b416f81
fs
Compact the clipstack for kReplace_Op'd geometry
When adding a clip rect or clip path to the stack with the
kReplace_Op operation, remove all previous elements within the
same save frame (elements with fSaveCount equal to the current
fSaveCount of the stack). This prevents unbounded growth of the
clipstack for long-lived instances that gets reused.

Addresses https://code.google.com/p/skia/issues/detail?id=748

R=robertphillips@google.com

Author: fs@opera.com

Review URL: https://chromiumcodereview.appspot.com/16160020

git-svn-id: http://skia.googlecode.com/svn/trunk@9502 2bbb7eff-a529-9590-31e7-b0007b416f81

BoringSSL

Author Message When
mostynb
avoid clashes with libc's 'open' in e_chacha20poly1305.c
Some strange toolchains can have an implicit (or explicit) fcntl.h include,
so let's avoid using the name 'open' for local functions.  This should not
cause any trouble.

Change-Id: Ie131b5920ac23938013c2c03302b97a7418c7180
Reviewed-on: https://boringssl-review.googlesource.com/6540
Reviewed-by: David Benjamin <davidben@chromium.org>
Reviewed-by: Adam Langley <agl@google.com>
sigbjorn
Make key exchange strength available.
This change stores the size of the group/modulus (for RSA/DHE) or curve
ID (for ECDHE) in the |SSL_SESSION|. This makes it available for UIs
where desired.

Change-Id: I354141da432a08f71704c9683f298b361362483d
Reviewed-on: https://boringssl-review.googlesource.com/5280
Reviewed-by: Adam Langley <agl@google.com>
the_jk
Allow compilation for armv6
Use when giving -DANDROID_ABI="armeabi-v6 with VFP" to android-cmake

Change-Id: Ifb053bcf4788e34fb54e20c27d4e519416ca9a11
Reviewed-on: https://boringssl-review.googlesource.com/4945
Reviewed-by: Adam Langley <agl@google.com>
the_jk
Fix compilation of sha256-armv4.S when using -march=armv6
sha256-armv4.S:1884: Error: invalid constant (ffffffffffffef90) after fixup

BUG=495695

Change-Id: I5b7423c2f7a10657c92c7b1ccae970f33c569455
Reviewed-on: https://boringssl-review.googlesource.com/4944
Reviewed-by: Adam Langley <agl@google.com>
the_jk
Match the ifdef check in bsaes-armv7.S
bsaes-armv7.S implements bsaes_cbc_encrypt if #if __ARM_MAX_ARCH__ >= 7
but e_aes.c instead used #if __ARM_ARCH >= 7 causing duplicate symbols
for linkers that care about that

Change-Id: I10ad8e24be75fdc03b0670869a53078b0477950b
Reviewed-on: https://boringssl-review.googlesource.com/4943
Reviewed-by: Adam Langley <agl@google.com>
haavardm
Remove ssl2.h and ssl23.h.
The SSL23_ST_foo macros are only used in ssl_stat.c.
However, these states are never set and can be removed.

Move the two remaining SSLv2 client hello record macros to ssl3.h

Change-Id: I76055405a9050cf873b4d1cbc689e54dd3490b8a
Reviewed-on: https://boringssl-review.googlesource.com/4160
Reviewed-by: Adam Langley <agl@google.com>
haavardm
Clean up error reporting.
Quite a few functions reported wrong function names when pushing
to the error stack.

Change-Id: I84d89dbefd2ecdc89ffb09799e673bae17be0e0f
Reviewed-on: https://boringssl-review.googlesource.com/4080
Reviewed-by: David Benjamin <davidben@chromium.org>
Reviewed-by: Adam Langley <agl@google.com>
haavardm
Remove EC_GROUP_set_point_conversion_form
All serialization functions take point format as input, and
asn1_form is never used.

Change-Id: Ib1ede692e815ac0c929e3b589c3a5869adb0dc8b
Reviewed-on: https://boringssl-review.googlesource.com/2511
Reviewed-by: Adam Langley <agl@google.com>
haavardm
Remove ec hybrid point format
According to rfc5480 and rfc4492 the hybrid format is not allowed
neither in certificates or the tls protocol.

Change-Id: I1d3fb5bef765bc7b58d29bdd60e15247fac4dc7a
Reviewed-on: https://boringssl-review.googlesource.com/2510
Reviewed-by: Adam Langley <agl@google.com>
haavardm
Cleanup of setting external buffer
Don't use |BIO_set_foo_buffer_size| when setting the
sizes of the buffers while making buffer pair. Since it
happens in pair.c we know the BIOs are BIO pairs and using
bio_ctrl here complicates setting external buffers. Also
zero out bio_bio_st during construction.

This fixes a problem that would happen if the default buffer
sizes were not set, since buf_externally_allocated was
not yet initialized.

Remove BIO_C_SET_BUFF_SIZE and BIO_CTRL_RESET which are
not used for bio pairs.

Change-Id: I365091d5f44f6f1c5522c325a771bdf03d8fe950
Reviewed-on: https://boringssl-review.googlesource.com/2370
Reviewed-by: Adam Langley <agl@google.com>
haavardm
Add zero copy read and write api for bio pairs.
Also add functionality for setting external buffers to give the
caller better control of the buffers. This is typical needed if OS
sockets can outlive the bio pair.

Change-Id: I500f0c522011ce76e9a9bce5d7b43c93d9d11457
haavardm
Don't scan libfoo_error.c for error codes.
This will have the effect that all dead error codes are removed
from given lib when make_errors.go runs with --reset flag.

Change-Id: I6303721c5d7cd18af7d47c95fdf3702a7628ad5a
Reviewed-on: https://boringssl-review.googlesource.com/1570
Reviewed-by: Adam Langley <agl@google.com>
haavardm
Implement client side of TLS signed certificate stamps extension.
https://crbug.com/389420 and 3.3 in rfc6962.

Change-Id: Ib22bcd4e4bde5a314ed33e123e19a76cdb714da4
Reviewed-on: https://boringssl-review.googlesource.com/1491
Reviewed-by: David Benjamin <davidben@chromium.org>
Reviewed-by: Adam Langley <agl@google.com>
haavardm
Use OPENSSL_free instead of free.
Even if OPENSSL_free() now simply is defined to free(), it is
still nice to consistently use OPENSSL_free, so that they can
easily be replaced. Many embedded platforms still have slow
allocation and free functions.

Change-Id: Ie8781591311f12c7f69206dbad6fc4a0c89d88b7
Reviewed-on: https://boringssl-review.googlesource.com/1490
Reviewed-by: Adam Langley <agl@google.com>
haavardm
Fix of handling weak dh server keys.
https://crbug.com/353579

Align behavior with NSS and report SSL_R_BAD_DH_P_LENGTH error
when size of the server's dh group is less than 512 bits.

Change-Id: I09f1828482f40b2283f7c6a69425819379399815
Reviewed-on: https://boringssl-review.googlesource.com/1480
Reviewed-by: Adam Langley <agl@google.com>
haavardm
Fixed reporting wrong function to OPENSSL_PUT_ERROR.
ssl3_send_client_key_exchange were wrongly reported
by ssl3_send_client_certificate() and
ssl3_check_cert_and_algorithm()

Change-Id: I244d3d871b6b4f75a188fd386d52ffc4335d1f9b
Reviewed-on: https://boringssl-review.googlesource.com/1460
Reviewed-by: Adam Langley <agl@google.com>