Parse new <shape> <box> syntax for shape properties

The shape-inside and shape-outside properties now support basic shapes
with an optional box model keyword before or after them. This patch
adds support for parsing this new syntax.

BUG=322165

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

git-svn-id: svn://svn.chromium.org/blink/trunk@164114 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Prettyprinting for layout units

This will lead to gdb output like:

        m_frameRect = {
          m_location = LayoutPoint(0px, 0px),
          m_size = LayoutSize(800px, 585px)
        },
        m_marginBox = {
          m_top = 0px,
          m_right = 0px,
          m_bottom = 0px,
          m_left = 0px
        },
        m_minPreferredLogicalWidth = 0px,
        m_maxPreferredLogicalWidth = 0px,
        m_intrinsicContentLogicalHeight = 585px,

Much easier to read than having to divide by 64 in your head!

Non-integer pixels will print like:
  m_location = LayoutPoint(0.5px x 0px),

BUG=
R=tony@chromium.org, abarth@chromium.org, ojan@chromium.org

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

git-svn-id: svn://svn.chromium.org/blink/trunk@164115 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Revert of https://codereview.chromium.org/74513003/
Reason for revert: https://code.google.com/p/chromium/issues/detail?id=329603

TBR=abarth@chromium.org,japhet@chromium.org,eseidel@chromium.org
NOTREECHECKS=true
NOTRY=true

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

git-svn-id: svn://svn.chromium.org/blink/trunk@164116 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Add a layer of indirection between Frame and Page

This adds a new class FrameHost whose job it is to
hold state which is shared between multiple Frames
such as Settings or Clients.

Right now FrameHost just redirects all calls to Page --
just enough to get Frame.cpp building using FrameHost
instead of Page.

In a follow-up change I will actually move ownership
of Settings, (some of PageClients) and various
members which Page holds onto just to be a central
place for all Frames to access.

Page and friends should be about holding onto page-level
logic and members for coordinating interaction between
frames.  FrameHost is about holding members and logic
which are simply shared between frames but do not
need to coordinate between those frames.

This provides the basic plumbing to allow me to remove
most of the remaining includes of page/ classes from
the rest of core.  Anything left over after that will
be actual layering violations and not just bad plumbing.

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

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

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