324 Commits

Author SHA1 Message Date
Elliott Sprehn
ca96d732de Remove REM units.
The code to make them dynamically update was already removed when
Document::inheritHtmlAndBodyElementStyles was removed. We might want
to add them back later, but probably in a different way, so lets
remove the code for now to make refactoring the style system easier.

R=eseidel@chromium.org

Review URL: https://codereview.chromium.org/788883005
2014-12-15 17:29:04 -08:00
Elliott Sprehn
4b7e60d511 Remove dead StyleRuleFilter.
This was for custom shaders, which we don't support (and neither
does Blink).

R=eseidel@chromium.org

Review URL: https://codereview.chromium.org/810543002
2014-12-15 16:29:47 -08:00
Elliott Sprehn
e9806c1a88 Remove containsAttributeSelector() checks.
We can just set the style as unique from inside the SelectorChecker
instead. That's not ideal either, but it's simpler, and we'll eventually
use a hashing function to instead make elements with attribute selectors
that have the same values share their style instead of disabling
sharing.

R=eseidel@chromium.org

Review URL: https://codereview.chromium.org/803113004
2014-12-15 13:43:40 -08:00
Elliott Sprehn
4dea02214c Remove dead methods from CSSStyleSheet and StyleSheetContents.
R=eseidel@chromium.org

Review URL: https://codereview.chromium.org/809513003
2014-12-15 13:24:48 -08:00
Elliott Sprehn
ab533f0210 Remove second set of clients from StyleSheetContents.
It used to track loading and completed clients to deal with remote
loading sheets (@import, <link>), but all sheets are inline in Sky
so this is now dead code.

R=eseidel@chromium.org

Review URL: https://codereview.chromium.org/808563002
2014-12-15 12:45:13 -08:00
Elliott Sprehn
e0cde8499a Remove single client special cases for StyleSheetContents.
We can also remove all single document checks since in Sky we
don't have the cross document cache so all sheets are always
connected to a single document.

I also did some minor code simplification and removed an
OILPAN ifdef.

R=ojan@chromium.org

Review URL: https://codereview.chromium.org/799143002
2014-12-12 17:08:43 -08:00
Elliott Sprehn
89b5468c3b Remove dead code from StyleSheetContents and CSSStyleSheet.
This code was for external stylesheets which we don't
support.

R=ojan@chromium.org

Review URL: https://codereview.chromium.org/799073004
2014-12-12 16:27:23 -08:00
Elliott Sprehn
586a535b7f Delete StyleSheetList and support code.
We don't need this since we don't expose the list of sheets from Document
or ShadowRoot in Sky. After removing this code I also simplified the
system and deleted StyleSheetCandidate and DocumentStyleSheetCollector
which don't really do anything anymore.

Even if we do want to add back a list of sheets later it won't need code
because we don't have a concept of a remote sheet like <link rel> did,
and we don't have to deal with non-CSS sheets.

R=ojan@chromium.org

Review URL: https://codereview.chromium.org/803673003
2014-12-12 15:47:57 -08:00
Elliott Sprehn
85c3691e29 Remove hasSyntacticallyValidCSSHeader.
This existed apparently to track if a CSS file had at least
a valid CSS rule at the start to attempt to mitigate cross
origin CSS attacks where a file with an invalid mime was
sniffed as CSS and then we skipped the first part which
was not valid, but then interpreted the latter half of
the file as valid CSS.

In Sky all content is same origin, so we don't need this
mitigation.

R=ojan@chromium.org

Review URL: https://codereview.chromium.org/800083003
2014-12-12 15:44:21 -08:00
Elliott Sprehn
3bccf6139d Remove hasFailedOrCanceledSubresources.
This was used to skip caching sheets across documents that had failed
resource loads so that when you loaded a new tab with the same resource
we'd attempt to load it again.

The cross document cache (which was only used by <link>) doesn't exist
in Sky, and neither does CSSStyleSheetResource which used it, so we can
remove all this code.

R=ojan@chromium.org

Review URL: https://codereview.chromium.org/799113003
2014-12-12 15:41:52 -08:00
Elliott Sprehn
15f795fcc3 Simplify the internals of HTMLStyleElement.
addStyleSheetCandidateNode already checks inDocument(), so we can remove
that check. We can also merge processStyleSheet, process and createSheet

I also removed the print media query check, and inlined
clearDocumentData into the destructor.

R=ojan@chromium.org

Review URL: https://codereview.chromium.org/798563005
2014-12-12 13:14:12 -08:00
Eric Seidel
870da02623 Fix hit-testing
It was broken during removal of RenderLayer::collectFragments:
https://codereview.chromium.org/778043005/

R=esprehn@chromium.org, ojan@chromium.org

Review URL: https://codereview.chromium.org/791933004
2014-12-12 09:25:48 -08:00
Colin Blundell
e55c96e96a Run gn format on all gni files (gn version 307087)
Change generated by running the following command:

for x in `git ls-files *.gni`; do gn format --in-place $x; done

This came up as an issue in https://codereview.chromium.org/801523002/, but I
didn't want to add noise to that CL.

R=qsr@chromium.org, qsr

Review URL: https://codereview.chromium.org/794413003
2014-12-12 09:51:24 +01:00
Elliott Sprehn
9c5454bdd9 Remove candidate tracking bit from <style>.
This bit doesn't really seem to do anything except prevent a hash table
lookup in removeChild. I'm hoping to remove the hash tables anyway, so
lets just remove this bit.

I also removed the dead m_loading bit.

R=ojan@chromium.org

Review URL: https://codereview.chromium.org/789603003
2014-12-11 18:43:27 -08:00
Elliott Sprehn
e1c6f5561c Remove style element counting in ShadowRoot.
This optimization doesn't make sense, all it does is avoid adding
the ScopedStyleResolver for the ShadowRoot when looking for host
styles, but having that extra resolver shouldn't be slow, and in
sky it's very rare to have a ShadowRoot without styles unlike
on the web where <input> is very common and gets its style from
the UA instead of from a <style> like a normal component.

R=ojan@chromium.org

Review URL: https://codereview.chromium.org/797873002
2014-12-11 17:33:56 -08:00
Elliott Sprehn
7d4ebad24b Remove the type attribute from <style>.
In Sky there's only CSS.

R=ojan@chromium.org

Review URL: https://codereview.chromium.org/791453004
2014-12-11 17:32:45 -08:00
Elliott Sprehn
0af96f055d Turn StyleSharing to 11.
In Sky we can style share if our TreeScopes have the same styles, our :host
styles are the same, and we'd inherit the same styles. This allows a lot of
simplification to the style sharing logic since we don't need to deal with
descendant selectors or tree boundary crossing rules:

- We can remove the logic that was checking that we were distributed
to the same insertion points since there's no ::content selectors.

- We can check the actual inherited values instead of looking at the
parentOrSHadowHostNode(). We used to look at the node in Blink because we
were checking that you'd get the same descendant selectors applied. In Sky
we instead want to make sure you'd inherit the same values. This also
means we don't need the element().parentOrShadowHostElement() != parent case
in the SharedStyleFinder which was trying to deal with descendant selectors
again.

I also removed the checks that were redundant with the checks inside
supportsStyleSharing() which we always check before adding sharing
candidates.

Finally by refactoring the code to make the TreeScope style check work it
exposed that the Document::styleSheets() and TreeScope::styleSheets() APIs
are now dead. A future patch will delete the now dead StyleSheetList class
as well.

This change makes the city-list application share between all the items in
the list, and all of the headers of the same type now share as well.

R=ojan@chromium.org

Review URL: https://codereview.chromium.org/796713002
2014-12-11 15:34:24 -08:00
Colin Blundell
b5be4a0945 Restructure public side of navigation service.
This CL goes from this:
  //mojo/services/public/interfaces/navigation

to this:
  //mojo/services/navigation/public/interfaces

This CL also makes the Mojo-side changes necessary to roll this change into
Chromium.

TBR=beng

Review URL: https://codereview.chromium.org/796783002
2014-12-11 08:49:15 +01:00
Rafael Weinstein
be846a56b7 Remove CompositingReasons.*
R=esprehn@chromium.org

Review URL: https://codereview.chromium.org/794733004
2014-12-09 17:19:00 -08:00
Elliott Sprehn
2be9b79d94 Use the HashSet of attribute names in SharedStyleFinder.
Instead of trying to match the actual attribute rules, lets just look
at the HashSet of attribute names. This is faster, though possibly less
optimal if you use compound rules like .foo[attr]. That's rare though,
and removing this extra RuleSet will allow simplifying SelectorChecker
since hasAnyMatchingRules required a special mode where it tried to
match selectors but ignored if the scope could really match. This paves
the way to moving the RuleFeatureSet to be per-TreeScope instead of
per-Document.

I also made the API of classNamesAffectedByRules match the newly added
attributesAffectedByRules to make SharedStyleFinder consistent.

R=ojan@chromium.org

Review URL: https://codereview.chromium.org/796583002
2014-12-10 17:12:07 -08:00
Eric Seidel
d4de7b0d3e Reverted the wrong one.
Revert "Revert "Get rid of LayerFragment.""

This reverts commit e68e8688f1105ca9fe7c49bac73246297ee76fb0.

TBR=ojan@chromium.org

Review URL: https://codereview.chromium.org/793123002
2014-12-10 15:01:32 -08:00
Eric Seidel
f353cd6cac Revert of Remove RenderLayer::collectFragments. (patchset #1 id:1 of https://codereview.chromium.org/778043005/)
Reason for revert:
This broke hit testing.  Hit testing always returns the root node now. :)

Original issue's description:
> Remove RenderLayer::collectFragments.
>
> Sky always has exactly one per RenderLayer. This patch
> gets rid of the hitTestLayer use of LayerFragment
> and gets paintLayerContents to create the list of
> fragments itself since it's the only caller.
>
> Also, delete dead code from LayerFragment.h.
>
> R=abarth@chromium.org
>
> Committed: 4a3b676dc3

TBR=esprehn@chromium.org,rafaelw@chromium.org,abarth@chromium.org,ojan@chromium.org
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/788383002
2014-12-10 14:58:48 -08:00
James Robinson
15db886b19 Simplify //mojo/public/c/system targets
We don't support building mojo apps in the component build, so we can
simplify these system targets a bit. We don't need to have everything
depend on a forwarding group that always evaluates to the same thing in
the mojo repo.

The new targets are:

//mojo/public/c/system which contains the system headers but no
implementation.

//mojo/public/platform/native:system which contains the system thunks
and exported thunk setter, used by anything run by the shell. This is
mostly used by the mojo_native_application template but is also used
by a few targets that need to link as shared_lib but will ultimately
be loaded by the shell.

//mojo/edk/system provides the real implementation of the system calls
and is used by the shell and a few tests.

The :for_... groups need to stick around for now to keep chromium
working, but once this rolls in to the chromium tree then these can
be fixed up as well.

R=viettrungluu@chromium.org

Review URL: https://codereview.chromium.org/754963008
2014-12-10 13:56:25 -08:00
Rafael Weinstein
f38f80c9f8 Enable/Unprefix Animations & Transitions, add basic tests
This patch remove the Web Animations & CSS Animation runtime flags (and enables both). Removes prefixed Aninamations & Transitions and adds some basic tests & test support API.

R=ojan@chromium.org

Review URL: https://codereview.chromium.org/760183003
2014-12-10 10:38:34 -08:00
Colin Blundell
3dc76a69df Restructure public side of view_manager service.
This CL goes from this:
//mojo/services/public/cpp/view_manager
//mojo/services/public/interfaces/view_manager

to this:
//mojo/services/view_manager/public/cpp
//mojo/services/view_manager/public/interfaces

This CL also makes the Mojo-side changes required to roll this change into
Chromium (for both view_manager and window_manager, which was converted in an
earlier CL but for which these updates were not made):
- Updates rev_sdk.py to pull over the new directory
- Updates //mojo/services/public/mojo_services_public.gyp

TBR=beng

Review URL: https://codereview.chromium.org/790623003
2014-12-10 14:16:27 +01:00
Ojan Vafai
1492a0d635 Remove the straggling DisableCompositingQueryAsserts.
We don't have compositing query asserts anymore,
so there's nothing to disable.

R=eseidel@chromium.org

Review URL: https://codereview.chromium.org/787293002
2014-12-09 20:25:18 -08:00
Ojan Vafai
3ffd336ad5 Remove relayout due to scrollbars taking up width
We only have overlay scrollbars, so we never need to
relayout due to the lack or presence of scrollbars.

Also remove a few stracking has*Scrollbar methods.

R=eseidel@chromium.org

Review URL: https://codereview.chromium.org/783393006
2014-12-09 19:48:50 -08:00
Elliott Sprehn
c6f3d36fe2 Simplify HTMLStyleElement.
The parser will never insert more than one child into a <style>, so we don't
need explicit logic to batch up parsing. Once I removed that it exposed that
all the line number and parser created logic is from error reporting in the
parser that's been dead in Blink for over a year.

By doing this simplification I was able to remove the finishParsingChildren()
callback entirely.

R=eseidel@chromium.org

Review URL: https://codereview.chromium.org/788113002
2014-12-09 19:01:46 -08:00
Elliott Sprehn
dfd9a3faa5 Add clear() to Element.classList.
We should support a fast way to remove all classes through the
classList instead of having to call removeAttribute() directly.

BUG=440529
R=ojan@chromium.org, rafaelw@chromium.org

Review URL: https://codereview.chromium.org/788093003
2014-12-09 17:56:41 -08:00
Elliott Sprehn
c2916617b4 Merge ClassList into DOMTokenList.
In Sky we only have one implementation of DOMTokenList so we don't
need this virtual interface.

R=rafaelw@chromium.org

Review URL: https://codereview.chromium.org/789843004
2014-12-09 16:06:29 -08:00
Elliott Sprehn
a355213564 Remove DOMSettableTokenList.
R=ojan@chromium.org

Review URL: https://codereview.chromium.org/789693003
2014-12-09 15:31:02 -08:00
Rafael Weinstein
fe9aa27ab5 Fix id/class collection from stylesheets
BUG=438036
R=esprehn@chromium.org

Review URL: https://codereview.chromium.org/785313002
2014-12-09 15:05:42 -08:00
Ojan Vafai
b00d41f26c Get rid of LayerFragment.
We don't have fragmentation. So no need for this abstraction.
This simplifies a lot of code so that we can do less work.
For example, we can check shouldPaintContent only up in
paintLayerContents instead of in each nested function.

Instead of passing the LayerFragment, pass the layer location
and the clip rect for each nested function.

R=esprehn@chromium.org

Review URL: https://codereview.chromium.org/789643002
2014-12-08 17:37:43 -08:00
Ojan Vafai
0069ab6369 Remove RenderLayer::collectFragments.
Sky always has exactly one per RenderLayer. This patch
gets rid of the hitTestLayer use of LayerFragment
and gets paintLayerContents to create the list of
fragments itself since it's the only caller.

Also, delete dead code from LayerFragment.h.

R=abarth@chromium.org

Review URL: https://codereview.chromium.org/778043005
2014-12-08 16:37:50 -08:00
Ojan Vafai
52a8beb189 Get rid of PaintPhaseTextClip.
This was just used for background-clip:text, which we no
longer support.

R=rafaelw@chromium.org

Review URL: https://codereview.chromium.org/783233002
2014-12-08 11:23:30 -08:00
Ojan Vafai
6a4ca1bc83 Remove PaintPhaseClippingMask.
I believe it was only used for regions/multi-column.
It's never set now.

R=esprehn@chromium.org

Review URL: https://codereview.chromium.org/786003002
2014-12-08 10:18:34 -08:00
Ojan Vafai
31343b63fe Get rid of the PaintLayerFlags bitmask.
Make it a regular enum and remove it from all the functions
it's not actually used. Also, make paintLayer and PaintLayerFlags
private since they're only used in RenderLayer.

R=eseidel@google.com

Review URL: https://codereview.chromium.org/779183004
2014-12-08 09:21:12 -08:00
Ojan Vafai
87b58eda51 Remove PaintBehavior. It's unused.
R=esprehn@chromium.org

Review URL: https://codereview.chromium.org/768973004
2014-12-08 08:57:37 -08:00
Elliott Sprehn
7500c00d8a Merge StyleElement into HTMLStyleElement.
StyleElement existed because Blink supported <link> and XSL sheets,
Sky only supports <style> so we can merge them together.

R=eseidel@chromium.org

Review URL: https://codereview.chromium.org/780083003
2014-12-04 13:33:07 -08:00
Ojan Vafai
2c71f77297 Get rid of background-clip:text and PaintBehaviorForceBlackText.
http://blog.ericzhang.com/punch-through-text-masks-with-css-and-html5/
shows that you can achieve the similar effects using canvas. This
doesn't need to be built into the core engine. It's OK for this
to require more than a line of CSS to achieve.

Unfortunately, the test included this this patch doesn't actually
show that I didn't break anything because background-image
is broken. I got the test from
47e0d126e8%5E%21/#F4

R=eseidel@chromium.org

Review URL: https://codereview.chromium.org/756183004
2014-12-04 12:15:39 -08:00
Ojan Vafai
405dedb984 Remove all but one of the PaintLayerFlags.
Only PaintLayerPaintingOverlayScrollbars is actually ever set
to a different value in different codepaths.

-PaintLayerHaveTransparency can just be replaced with
isTransparent() calls.
-PaintLayerPaintingCompositingScrollingPhase is unused.
-PaintLayerPaintingCompositingAllPhases is always set,
which means that the other three compositing ones are
also always set.

The third bullet more clearly falls out when you see that
the only caller of paintLayerContents is
paintLayerContentsAndReflection, which sets
PaintLayerPaintingCompositingAllPhases on the paint flags.
Get rid of paintLayerContentsAndReflection since we no
longer have reflections.

The rest of the changes are all just propagating the now
always false or true booleans in paintLayerContents.

R=eseidel@chromium.org

Review URL: https://codereview.chromium.org/778883002
2014-12-04 12:12:05 -08:00
Ojan Vafai
6e6e9181de Remove PaintLayerPaintingOverflowContents.
It was added for compositing overflow:scroll, which we don't do.
This also means that only the RespectOverflowClip enum value is
used. And PaintingClipRectsIgnoringOverflowClip is unused.

R=eseidel@chromium.org

Review URL: https://codereview.chromium.org/778753002
2014-12-03 19:09:56 -08:00
James Robinson
09de28ef8c Run gn format on all BUILD.gn files (gn version 306668)
Generated by running the following:
for x in `git ls-files | grep BUILD.gn`; do gn format --in-place $x; done

BUG=348474
R=viettrungluu@chromium.org

Review URL: https://codereview.chromium.org/773283006
2014-12-03 17:39:48 -08:00
Elliott Sprehn
1771ec30ea Remove SchemeRegistry and WebSecurityPolicy.
Mojo handles the security of our network layer, so we don't need
SchemeRegistry, and WebSecurityPolicy was just a wrapper around it.

R=eseidel@google.com

Review URL: https://codereview.chromium.org/758233004
2014-12-03 16:24:36 -08:00
Elliott Sprehn
e929430811 Remove CSSOM mutability in StyleRule.
The StyleRule classes supported copy() operations and mutable
property sets so that we could do copy-on-write and mutate them
using the CSSOM. Sky doesn't have a CSSOM like this though,
so we can remove all this code and make the StyleRule classes
effectively immutable after construction (the parser does mutate some
rules though).

I also removed some other dead code in the StyleRule hierarchy,
like some left over mutation methods that the CSSOM used to use.

R=eseidel@chromium.org, ojan@chromium.org

Review URL: https://codereview.chromium.org/758573005
2014-12-03 15:54:31 -08:00
Eric Seidel
c14361a751 Remove Isolated Worlds from Sky
These were a feature for allowing multiple
scripting contexts to access the same global
state without leaking wrappers between them.
For example, if the inspector wanted to
modify window.Array.dangerousFunction = ...
it wouldn't want the author's content to have
access to that.

This feature is not part of Sky's security model
and thus this is just dead code.

I tried to remove worlds all together, but there
is something special about how we use a
"fake" world (which is neither main nor isolated)
for GC, regexp and testing.

R=rafaelw@chromium.org, abarth@chromium.org
BUG=

Review URL: https://codereview.chromium.org/776143003
2014-12-03 15:51:09 -08:00
Elliott Sprehn
c229da3e07 Merge StyleSheet into CSSStyleSheet.
R=eseidel@chromium.org

Review URL: https://codereview.chromium.org/778743003
2014-12-03 14:24:37 -08:00
Elliott Sprehn
d8eea65cb8 Remove TouchAdjustment.
TouchAdjustment adjusts the hit test rects to nearby elements so
that when touch targets are too small they can still be hit by users. Instead
applications should just make their touch targets big enough, and if they
need adjustment it should be implemented at the framework level.

R=ojan@chromium.org

Review URL: https://codereview.chromium.org/774053003
2014-12-03 10:51:25 -08:00
Elliott Sprehn
6c94c18612 Remove the CSSOM.
This leaves CSSValue, but removes everything else.

R=ojan@chromium.org

Review URL: https://codereview.chromium.org/780483002
2014-12-03 10:50:02 -08:00
Ojan Vafai
e719d6ea2d Remove PaintLayerAppliedTransform.
This was for RenderReplica, which we no longer have.

R=esprehn@chromium.org

Review URL: https://codereview.chromium.org/772333002
2014-12-03 09:47:41 -08:00