Opera Software upstreamed commits

Upstreamed commits in Chromium: 8140, V8: 70, Skia: 12, BoringSSL: 16.

Click message to expand

Chromium

Author Message When
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}