diff --git a/DEPS b/DEPS
index 7ee3225..7e30a7be 100644
--- a/DEPS
+++ b/DEPS
@@ -43,7 +43,7 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling V8
   # and whatever else without interference from each other.
-  'v8_revision': '187d3a473dff59c5ad9cb9511f6d5af43cfacb42',
+  'v8_revision': '19c765e9c7e56d70b7512dfb58202502d5d48366',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling swarming_client
   # and whatever else without interference from each other.
diff --git a/chrome/VERSION b/chrome/VERSION
index e50007e..9793e2b 100644
--- a/chrome/VERSION
+++ b/chrome/VERSION
@@ -1,4 +1,4 @@
 MAJOR=53
 MINOR=0
-BUILD=2745
+BUILD=2746
 PATCH=0
diff --git a/third_party/WebKit/LayoutTests/platform/android/svg/custom/shape-rendering-expected.png b/third_party/WebKit/LayoutTests/platform/android/svg/custom/shape-rendering-expected.png
new file mode 100644
index 0000000..faea3396
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/android/svg/custom/shape-rendering-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/android/svg/custom/shape-rendering-expected.txt b/third_party/WebKit/LayoutTests/platform/android/svg/custom/shape-rendering-expected.txt
new file mode 100644
index 0000000..bc2b286
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/android/svg/custom/shape-rendering-expected.txt
@@ -0,0 +1,13 @@
+layer at (0,0) size 800x600
+  LayoutView at (0,0) size 800x600
+layer at (0,0) size 800x600
+  LayoutSVGRoot {svg} at (0,10) size 709x194
+    LayoutSVGRect {rect} at (30,10) size 140x140 [transform={m=((0.82,0.57)(-0.57,0.82)) t=(87.72,10.36)}] [fill={[type=SOLID] [color=#008000]}] [x=0.00] [y=0.00] [width=100.00] [height=100.00]
+    LayoutSVGRect {rect} at (180,10) size 140x140 [transform={m=((0.82,0.57)(-0.57,0.82)) t=(237.72,10.36)}] [fill={[type=SOLID] [color=#008000]}] [x=0.00] [y=0.00] [width=100.00] [height=100.00]
+    LayoutSVGContainer {g} at (0,165) size 709x39
+      LayoutSVGText {text} at (0,165) size 282x19 contains 1 chunk(s)
+        LayoutSVGInlineText {#text} at (0,0) size 282x19
+          chunk 1 text run 1 at (0.00,180.00) startOffset 0 endOffset 49 width 282.00: "The rectangle on the left should be anti-aliased."
+      LayoutSVGText {text} at (0,185) size 709x19 contains 1 chunk(s)
+        LayoutSVGInlineText {#text} at (0,0) size 709x19
+          chunk 1 text run 1 at (0.00,200.00) startOffset 0 endOffset 118 width 709.00: "The rectangle on the right should not be anti-aliased, as it has the property shape-rendering=\"crispEdges\". Bug 16182."
diff --git a/third_party/WebKit/LayoutTests/platform/android/svg/custom/use-referencing-nonexisting-symbol-expected.png b/third_party/WebKit/LayoutTests/platform/android/svg/custom/use-referencing-nonexisting-symbol-expected.png
new file mode 100644
index 0000000..4128a80
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/android/svg/custom/use-referencing-nonexisting-symbol-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/svg/custom/shape-rendering-expected.png b/third_party/WebKit/LayoutTests/platform/linux/svg/custom/shape-rendering-expected.png
index faea3396..3ef973f 100644
--- a/third_party/WebKit/LayoutTests/platform/linux/svg/custom/shape-rendering-expected.png
+++ b/third_party/WebKit/LayoutTests/platform/linux/svg/custom/shape-rendering-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/svg/custom/shape-rendering-expected.txt b/third_party/WebKit/LayoutTests/platform/linux/svg/custom/shape-rendering-expected.txt
index bc2b286..492460106 100644
--- a/third_party/WebKit/LayoutTests/platform/linux/svg/custom/shape-rendering-expected.txt
+++ b/third_party/WebKit/LayoutTests/platform/linux/svg/custom/shape-rendering-expected.txt
@@ -1,13 +1,40 @@
 layer at (0,0) size 800x600
   LayoutView at (0,0) size 800x600
 layer at (0,0) size 800x600
-  LayoutSVGRoot {svg} at (0,10) size 709x194
-    LayoutSVGRect {rect} at (30,10) size 140x140 [transform={m=((0.82,0.57)(-0.57,0.82)) t=(87.72,10.36)}] [fill={[type=SOLID] [color=#008000]}] [x=0.00] [y=0.00] [width=100.00] [height=100.00]
-    LayoutSVGRect {rect} at (180,10) size 140x140 [transform={m=((0.82,0.57)(-0.57,0.82)) t=(237.72,10.36)}] [fill={[type=SOLID] [color=#008000]}] [x=0.00] [y=0.00] [width=100.00] [height=100.00]
-    LayoutSVGContainer {g} at (0,165) size 709x39
-      LayoutSVGText {text} at (0,165) size 282x19 contains 1 chunk(s)
-        LayoutSVGInlineText {#text} at (0,0) size 282x19
-          chunk 1 text run 1 at (0.00,180.00) startOffset 0 endOffset 49 width 282.00: "The rectangle on the left should be anti-aliased."
-      LayoutSVGText {text} at (0,185) size 709x19 contains 1 chunk(s)
-        LayoutSVGInlineText {#text} at (0,0) size 709x19
-          chunk 1 text run 1 at (0.00,200.00) startOffset 0 endOffset 118 width 709.00: "The rectangle on the right should not be anti-aliased, as it has the property shape-rendering=\"crispEdges\". Bug 16182."
+  LayoutSVGRoot {svg} at (21,10) size 614x174
+    LayoutSVGContainer {g} at (21,10) size 164x174 [transform={m=((1.00,0.00)(0.00,1.00)) t=(50.00,30.00)}]
+      LayoutSVGContainer {g} at (21,10) size 164x164 [transform={m=((0.82,0.57)(-0.57,0.82)) t=(37.72,-19.64)}]
+        LayoutSVGRect {rect} at (30,10) size 140x140 [fill={[type=SOLID] [color=#008000]}] [x=0.00] [y=0.00] [width=100.00] [height=100.00]
+        LayoutSVGPath {path} at (26,97) size 83x59 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#000000]}] [data="M 0 107 L 100 107"]
+        LayoutSVGPath {path} at (21,103) size 84x60 [stroke={[type=SOLID] [color=#000000] [stroke width=2.00]}] [fill={[type=SOLID] [color=#000000]}] [data="M 0 115 L 100 115"]
+        LayoutSVGPath {path} at (109,65) size 76x95 [fill={[type=SOLID] [color=#000000]}] [data="M 107 0 Q 118 25 107 50 T 107 100 Z"]
+      LayoutSVGText {text} at (0,135) size 26x19 contains 1 chunk(s)
+        LayoutSVGInlineText {#text} at (0,0) size 26x19
+          chunk 1 text run 1 at (0.00,150.00) startOffset 0 endOffset 4 width 26.00: "auto"
+    LayoutSVGContainer {g} at (171,10) size 164x174 [transform={m=((1.00,0.00)(0.00,1.00)) t=(200.00,30.00)}]
+      LayoutSVGContainer {g} at (171,10) size 164x164 [transform={m=((0.82,0.57)(-0.57,0.82)) t=(37.72,-19.64)}]
+        LayoutSVGRect {rect} at (180,10) size 140x140 [fill={[type=SOLID] [color=#008000]}] [x=0.00] [y=0.00] [width=100.00] [height=100.00]
+        LayoutSVGPath {path} at (176,97) size 83x59 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#000000]}] [data="M 0 107 L 100 107"]
+        LayoutSVGPath {path} at (171,103) size 84x60 [stroke={[type=SOLID] [color=#000000] [stroke width=2.00]}] [fill={[type=SOLID] [color=#000000]}] [data="M 0 115 L 100 115"]
+        LayoutSVGPath {path} at (259,65) size 76x95 [fill={[type=SOLID] [color=#000000]}] [data="M 107 0 Q 118 25 107 50 T 107 100 Z"]
+      LayoutSVGText {text} at (0,135) size 66x19 contains 1 chunk(s)
+        LayoutSVGInlineText {#text} at (0,0) size 66x19
+          chunk 1 text run 1 at (0.00,150.00) startOffset 0 endOffset 10 width 66.00: "crispEdges"
+    LayoutSVGContainer {g} at (321,10) size 164x174 [transform={m=((1.00,0.00)(0.00,1.00)) t=(350.00,30.00)}]
+      LayoutSVGContainer {g} at (321,10) size 164x164 [transform={m=((0.82,0.57)(-0.57,0.82)) t=(37.72,-19.64)}]
+        LayoutSVGRect {rect} at (330,10) size 140x140 [fill={[type=SOLID] [color=#008000]}] [x=0.00] [y=0.00] [width=100.00] [height=100.00]
+        LayoutSVGPath {path} at (326,97) size 83x59 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#000000]}] [data="M 0 107 L 100 107"]
+        LayoutSVGPath {path} at (321,103) size 84x60 [stroke={[type=SOLID] [color=#000000] [stroke width=2.00]}] [fill={[type=SOLID] [color=#000000]}] [data="M 0 115 L 100 115"]
+        LayoutSVGPath {path} at (409,65) size 76x95 [fill={[type=SOLID] [color=#000000]}] [data="M 107 0 Q 118 25 107 50 T 107 100 Z"]
+      LayoutSVGText {text} at (0,135) size 89x19 contains 1 chunk(s)
+        LayoutSVGInlineText {#text} at (0,0) size 89x19
+          chunk 1 text run 1 at (0.00,150.00) startOffset 0 endOffset 13 width 89.00: "optimizeSpeed"
+    LayoutSVGContainer {g} at (471,10) size 164x174 [transform={m=((1.00,0.00)(0.00,1.00)) t=(500.00,30.00)}]
+      LayoutSVGContainer {g} at (471,10) size 164x164 [transform={m=((0.82,0.57)(-0.57,0.82)) t=(37.72,-19.64)}]
+        LayoutSVGRect {rect} at (480,10) size 140x140 [fill={[type=SOLID] [color=#008000]}] [x=0.00] [y=0.00] [width=100.00] [height=100.00]
+        LayoutSVGPath {path} at (476,97) size 83x59 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#000000]}] [data="M 0 107 L 100 107"]
+        LayoutSVGPath {path} at (471,103) size 84x60 [stroke={[type=SOLID] [color=#000000] [stroke width=2.00]}] [fill={[type=SOLID] [color=#000000]}] [data="M 0 115 L 100 115"]
+        LayoutSVGPath {path} at (559,65) size 76x95 [fill={[type=SOLID] [color=#000000]}] [data="M 107 0 Q 118 25 107 50 T 107 100 Z"]
+      LayoutSVGText {text} at (0,135) size 115x19 contains 1 chunk(s)
+        LayoutSVGInlineText {#text} at (0,0) size 115x19
+          chunk 1 text run 1 at (0.00,150.00) startOffset 0 endOffset 18 width 114.00: "geometricPrecision"
diff --git a/third_party/WebKit/LayoutTests/platform/linux/svg/custom/use-referencing-nonexisting-symbol-expected.png b/third_party/WebKit/LayoutTests/platform/linux/svg/custom/use-referencing-nonexisting-symbol-expected.png
index 4128a80..455ce24 100644
--- a/third_party/WebKit/LayoutTests/platform/linux/svg/custom/use-referencing-nonexisting-symbol-expected.png
+++ b/third_party/WebKit/LayoutTests/platform/linux/svg/custom/use-referencing-nonexisting-symbol-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/svg/custom/shape-rendering-expected.png b/third_party/WebKit/LayoutTests/platform/mac/svg/custom/shape-rendering-expected.png
index a4fc0039..558a73e 100644
--- a/third_party/WebKit/LayoutTests/platform/mac/svg/custom/shape-rendering-expected.png
+++ b/third_party/WebKit/LayoutTests/platform/mac/svg/custom/shape-rendering-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/svg/custom/use-referencing-nonexisting-symbol-expected.png b/third_party/WebKit/LayoutTests/platform/mac/svg/custom/use-referencing-nonexisting-symbol-expected.png
index 8b59feb..edb0333 100644
--- a/third_party/WebKit/LayoutTests/platform/mac/svg/custom/use-referencing-nonexisting-symbol-expected.png
+++ b/third_party/WebKit/LayoutTests/platform/mac/svg/custom/use-referencing-nonexisting-symbol-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/svg/custom/shape-rendering-expected.txt b/third_party/WebKit/LayoutTests/platform/win/svg/custom/shape-rendering-expected.txt
new file mode 100644
index 0000000..1169c067
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/win/svg/custom/shape-rendering-expected.txt
@@ -0,0 +1,13 @@
+layer at (0,0) size 800x600
+  LayoutView at (0,0) size 800x600
+layer at (0,0) size 800x600
+  LayoutSVGRoot {svg} at (0,10) size 757x194
+    LayoutSVGRect {rect} at (30,10) size 140x140 [transform={m=((0.82,0.57)(-0.57,0.82)) t=(87.72,10.36)}] [fill={[type=SOLID] [color=#008000]}] [x=0.00] [y=0.00] [width=100.00] [height=100.00]
+    LayoutSVGRect {rect} at (180,10) size 140x140 [transform={m=((0.82,0.57)(-0.57,0.82)) t=(237.72,10.36)}] [fill={[type=SOLID] [color=#008000]}] [x=0.00] [y=0.00] [width=100.00] [height=100.00]
+    LayoutSVGContainer {g} at (0,166) size 757x38
+      LayoutSVGText {text} at (0,166) size 304x18 contains 1 chunk(s)
+        LayoutSVGInlineText {#text} at (0,0) size 304x18
+          chunk 1 text run 1 at (0.00,180.00) startOffset 0 endOffset 49 width 303.88: "The rectangle on the left should be anti-aliased."
+      LayoutSVGText {text} at (0,186) size 757x18 contains 1 chunk(s)
+        LayoutSVGInlineText {#text} at (0,0) size 757x18
+          chunk 1 text run 1 at (0.00,200.00) startOffset 0 endOffset 118 width 756.55: "The rectangle on the right should not be anti-aliased, as it has the property shape-rendering=\"crispEdges\". Bug 16182."
diff --git a/third_party/WebKit/LayoutTests/platform/win7/svg/custom/shape-rendering-expected.png b/third_party/WebKit/LayoutTests/platform/win7/svg/custom/shape-rendering-expected.png
new file mode 100644
index 0000000..68097e9
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/win7/svg/custom/shape-rendering-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win7/svg/custom/shape-rendering-expected.txt b/third_party/WebKit/LayoutTests/platform/win7/svg/custom/shape-rendering-expected.txt
new file mode 100644
index 0000000..4aa4677f
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/win7/svg/custom/shape-rendering-expected.txt
@@ -0,0 +1,40 @@
+layer at (0,0) size 800x600
+  LayoutView at (0,0) size 800x600
+layer at (0,0) size 800x600
+  LayoutSVGRoot {svg} at (21,10) size 614x174
+    LayoutSVGContainer {g} at (21,10) size 164x173 [transform={m=((1.00,0.00)(0.00,1.00)) t=(50.00,30.00)}]
+      LayoutSVGContainer {g} at (21,10) size 164x164 [transform={m=((0.82,0.57)(-0.57,0.82)) t=(37.72,-19.64)}]
+        LayoutSVGRect {rect} at (30,10) size 140x140 [fill={[type=SOLID] [color=#008000]}] [x=0.00] [y=0.00] [width=100.00] [height=100.00]
+        LayoutSVGPath {path} at (26,97) size 83x59 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#000000]}] [data="M 0 107 L 100 107"]
+        LayoutSVGPath {path} at (21,103) size 84x60 [stroke={[type=SOLID] [color=#000000] [stroke width=2.00]}] [fill={[type=SOLID] [color=#000000]}] [data="M 0 115 L 100 115"]
+        LayoutSVGPath {path} at (109,65) size 76x95 [fill={[type=SOLID] [color=#000000]}] [data="M 107 0 Q 118 25 107 50 T 107 100 Z"]
+      LayoutSVGText {text} at (0,136) size 28x17 contains 1 chunk(s)
+        LayoutSVGInlineText {#text} at (0,0) size 28x17
+          chunk 1 text run 1 at (0.00,150.00) startOffset 0 endOffset 4 width 27.55: "auto"
+    LayoutSVGContainer {g} at (171,10) size 164x174 [transform={m=((1.00,0.00)(0.00,1.00)) t=(200.00,30.00)}]
+      LayoutSVGContainer {g} at (171,10) size 164x164 [transform={m=((0.82,0.57)(-0.57,0.82)) t=(37.72,-19.64)}]
+        LayoutSVGRect {rect} at (180,10) size 140x140 [fill={[type=SOLID] [color=#008000]}] [x=0.00] [y=0.00] [width=100.00] [height=100.00]
+        LayoutSVGPath {path} at (176,97) size 83x59 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#000000]}] [data="M 0 107 L 100 107"]
+        LayoutSVGPath {path} at (171,103) size 84x60 [stroke={[type=SOLID] [color=#000000] [stroke width=2.00]}] [fill={[type=SOLID] [color=#000000]}] [data="M 0 115 L 100 115"]
+        LayoutSVGPath {path} at (259,65) size 76x95 [fill={[type=SOLID] [color=#000000]}] [data="M 107 0 Q 118 25 107 50 T 107 100 Z"]
+      LayoutSVGText {text} at (0,136) size 71x18 contains 1 chunk(s)
+        LayoutSVGInlineText {#text} at (0,0) size 71x18
+          chunk 1 text run 1 at (0.00,150.00) startOffset 0 endOffset 10 width 70.20: "crispEdges"
+    LayoutSVGContainer {g} at (321,10) size 164x174 [transform={m=((1.00,0.00)(0.00,1.00)) t=(350.00,30.00)}]
+      LayoutSVGContainer {g} at (321,10) size 164x164 [transform={m=((0.82,0.57)(-0.57,0.82)) t=(37.72,-19.64)}]
+        LayoutSVGRect {rect} at (330,10) size 140x140 [fill={[type=SOLID] [color=#008000]}] [x=0.00] [y=0.00] [width=100.00] [height=100.00]
+        LayoutSVGPath {path} at (326,97) size 83x59 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#000000]}] [data="M 0 107 L 100 107"]
+        LayoutSVGPath {path} at (321,103) size 84x60 [stroke={[type=SOLID] [color=#000000] [stroke width=2.00]}] [fill={[type=SOLID] [color=#000000]}] [data="M 0 115 L 100 115"]
+        LayoutSVGPath {path} at (409,65) size 76x95 [fill={[type=SOLID] [color=#000000]}] [data="M 107 0 Q 118 25 107 50 T 107 100 Z"]
+      LayoutSVGText {text} at (0,136) size 96x18 contains 1 chunk(s)
+        LayoutSVGInlineText {#text} at (0,0) size 96x18
+          chunk 1 text run 1 at (0.00,150.00) startOffset 0 endOffset 13 width 95.09: "optimizeSpeed"
+    LayoutSVGContainer {g} at (471,10) size 164x174 [transform={m=((1.00,0.00)(0.00,1.00)) t=(500.00,30.00)}]
+      LayoutSVGContainer {g} at (471,10) size 164x164 [transform={m=((0.82,0.57)(-0.57,0.82)) t=(37.72,-19.64)}]
+        LayoutSVGRect {rect} at (480,10) size 140x140 [fill={[type=SOLID] [color=#008000]}] [x=0.00] [y=0.00] [width=100.00] [height=100.00]
+        LayoutSVGPath {path} at (476,97) size 83x59 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#000000]}] [data="M 0 107 L 100 107"]
+        LayoutSVGPath {path} at (471,103) size 84x60 [stroke={[type=SOLID] [color=#000000] [stroke width=2.00]}] [fill={[type=SOLID] [color=#000000]}] [data="M 0 115 L 100 115"]
+        LayoutSVGPath {path} at (559,65) size 76x95 [fill={[type=SOLID] [color=#000000]}] [data="M 107 0 Q 118 25 107 50 T 107 100 Z"]
+      LayoutSVGText {text} at (0,136) size 124x18 contains 1 chunk(s)
+        LayoutSVGInlineText {#text} at (0,0) size 124x18
+          chunk 1 text run 1 at (0.00,150.00) startOffset 0 endOffset 18 width 123.52: "geometricPrecision"
diff --git a/third_party/WebKit/LayoutTests/platform/win7/svg/custom/use-referencing-nonexisting-symbol-expected.png b/third_party/WebKit/LayoutTests/platform/win7/svg/custom/use-referencing-nonexisting-symbol-expected.png
new file mode 100644
index 0000000..b071626dd
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/win7/svg/custom/use-referencing-nonexisting-symbol-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/svg/custom/shape-rendering-expected.txt b/third_party/WebKit/LayoutTests/svg/custom/shape-rendering-expected.txt
index 1169c067..7d9d8414 100644
--- a/third_party/WebKit/LayoutTests/svg/custom/shape-rendering-expected.txt
+++ b/third_party/WebKit/LayoutTests/svg/custom/shape-rendering-expected.txt
@@ -1,13 +1,40 @@
 layer at (0,0) size 800x600
   LayoutView at (0,0) size 800x600
 layer at (0,0) size 800x600
-  LayoutSVGRoot {svg} at (0,10) size 757x194
-    LayoutSVGRect {rect} at (30,10) size 140x140 [transform={m=((0.82,0.57)(-0.57,0.82)) t=(87.72,10.36)}] [fill={[type=SOLID] [color=#008000]}] [x=0.00] [y=0.00] [width=100.00] [height=100.00]
-    LayoutSVGRect {rect} at (180,10) size 140x140 [transform={m=((0.82,0.57)(-0.57,0.82)) t=(237.72,10.36)}] [fill={[type=SOLID] [color=#008000]}] [x=0.00] [y=0.00] [width=100.00] [height=100.00]
-    LayoutSVGContainer {g} at (0,166) size 757x38
-      LayoutSVGText {text} at (0,166) size 304x18 contains 1 chunk(s)
-        LayoutSVGInlineText {#text} at (0,0) size 304x18
-          chunk 1 text run 1 at (0.00,180.00) startOffset 0 endOffset 49 width 303.88: "The rectangle on the left should be anti-aliased."
-      LayoutSVGText {text} at (0,186) size 757x18 contains 1 chunk(s)
-        LayoutSVGInlineText {#text} at (0,0) size 757x18
-          chunk 1 text run 1 at (0.00,200.00) startOffset 0 endOffset 118 width 756.55: "The rectangle on the right should not be anti-aliased, as it has the property shape-rendering=\"crispEdges\". Bug 16182."
+  LayoutSVGRoot {svg} at (21,10) size 614x174
+    LayoutSVGContainer {g} at (21,10) size 164x174 [transform={m=((1.00,0.00)(0.00,1.00)) t=(50.00,30.00)}]
+      LayoutSVGContainer {g} at (21,10) size 164x164 [transform={m=((0.82,0.57)(-0.57,0.82)) t=(37.72,-19.64)}]
+        LayoutSVGRect {rect} at (30,10) size 140x140 [fill={[type=SOLID] [color=#008000]}] [x=0.00] [y=0.00] [width=100.00] [height=100.00]
+        LayoutSVGPath {path} at (26,97) size 83x59 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#000000]}] [data="M 0 107 L 100 107"]
+        LayoutSVGPath {path} at (21,103) size 84x60 [stroke={[type=SOLID] [color=#000000] [stroke width=2.00]}] [fill={[type=SOLID] [color=#000000]}] [data="M 0 115 L 100 115"]
+        LayoutSVGPath {path} at (109,65) size 76x95 [fill={[type=SOLID] [color=#000000]}] [data="M 107 0 Q 118 25 107 50 T 107 100 Z"]
+      LayoutSVGText {text} at (0,136) size 28x18 contains 1 chunk(s)
+        LayoutSVGInlineText {#text} at (0,0) size 28x18
+          chunk 1 text run 1 at (0.00,150.00) startOffset 0 endOffset 4 width 27.55: "auto"
+    LayoutSVGContainer {g} at (171,10) size 164x174 [transform={m=((1.00,0.00)(0.00,1.00)) t=(200.00,30.00)}]
+      LayoutSVGContainer {g} at (171,10) size 164x164 [transform={m=((0.82,0.57)(-0.57,0.82)) t=(37.72,-19.64)}]
+        LayoutSVGRect {rect} at (180,10) size 140x140 [fill={[type=SOLID] [color=#008000]}] [x=0.00] [y=0.00] [width=100.00] [height=100.00]
+        LayoutSVGPath {path} at (176,97) size 83x59 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#000000]}] [data="M 0 107 L 100 107"]
+        LayoutSVGPath {path} at (171,103) size 84x60 [stroke={[type=SOLID] [color=#000000] [stroke width=2.00]}] [fill={[type=SOLID] [color=#000000]}] [data="M 0 115 L 100 115"]
+        LayoutSVGPath {path} at (259,65) size 76x95 [fill={[type=SOLID] [color=#000000]}] [data="M 107 0 Q 118 25 107 50 T 107 100 Z"]
+      LayoutSVGText {text} at (0,136) size 71x18 contains 1 chunk(s)
+        LayoutSVGInlineText {#text} at (0,0) size 71x18
+          chunk 1 text run 1 at (0.00,150.00) startOffset 0 endOffset 10 width 70.20: "crispEdges"
+    LayoutSVGContainer {g} at (321,10) size 164x174 [transform={m=((1.00,0.00)(0.00,1.00)) t=(350.00,30.00)}]
+      LayoutSVGContainer {g} at (321,10) size 164x164 [transform={m=((0.82,0.57)(-0.57,0.82)) t=(37.72,-19.64)}]
+        LayoutSVGRect {rect} at (330,10) size 140x140 [fill={[type=SOLID] [color=#008000]}] [x=0.00] [y=0.00] [width=100.00] [height=100.00]
+        LayoutSVGPath {path} at (326,97) size 83x59 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#000000]}] [data="M 0 107 L 100 107"]
+        LayoutSVGPath {path} at (321,103) size 84x60 [stroke={[type=SOLID] [color=#000000] [stroke width=2.00]}] [fill={[type=SOLID] [color=#000000]}] [data="M 0 115 L 100 115"]
+        LayoutSVGPath {path} at (409,65) size 76x95 [fill={[type=SOLID] [color=#000000]}] [data="M 107 0 Q 118 25 107 50 T 107 100 Z"]
+      LayoutSVGText {text} at (0,136) size 96x18 contains 1 chunk(s)
+        LayoutSVGInlineText {#text} at (0,0) size 96x18
+          chunk 1 text run 1 at (0.00,150.00) startOffset 0 endOffset 13 width 95.09: "optimizeSpeed"
+    LayoutSVGContainer {g} at (471,10) size 164x174 [transform={m=((1.00,0.00)(0.00,1.00)) t=(500.00,30.00)}]
+      LayoutSVGContainer {g} at (471,10) size 164x164 [transform={m=((0.82,0.57)(-0.57,0.82)) t=(37.72,-19.64)}]
+        LayoutSVGRect {rect} at (480,10) size 140x140 [fill={[type=SOLID] [color=#008000]}] [x=0.00] [y=0.00] [width=100.00] [height=100.00]
+        LayoutSVGPath {path} at (476,97) size 83x59 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#000000]}] [data="M 0 107 L 100 107"]
+        LayoutSVGPath {path} at (471,103) size 84x60 [stroke={[type=SOLID] [color=#000000] [stroke width=2.00]}] [fill={[type=SOLID] [color=#000000]}] [data="M 0 115 L 100 115"]
+        LayoutSVGPath {path} at (559,65) size 76x95 [fill={[type=SOLID] [color=#000000]}] [data="M 107 0 Q 118 25 107 50 T 107 100 Z"]
+      LayoutSVGText {text} at (0,136) size 124x18 contains 1 chunk(s)
+        LayoutSVGInlineText {#text} at (0,0) size 124x18
+          chunk 1 text run 1 at (0.00,150.00) startOffset 0 endOffset 18 width 123.52: "geometricPrecision"
diff --git a/third_party/WebKit/LayoutTests/svg/custom/shape-rendering.svg b/third_party/WebKit/LayoutTests/svg/custom/shape-rendering.svg
index 35c8cb8..db24b34 100644
--- a/third_party/WebKit/LayoutTests/svg/custom/shape-rendering.svg
+++ b/third_party/WebKit/LayoutTests/svg/custom/shape-rendering.svg
@@ -1,10 +1,41 @@
 <svg xmlns="http://www.w3.org/2000/svg">
-  <rect transform="translate(50, 30) rotate(35, 50, 50)" fill="green" width="100" height="100"/>
-  <rect transform="translate(200, 30) rotate(35, 50, 50)" fill="green" width="100" height="100" shape-rendering="crispEdges"/>
+  <g transform="translate(50, 30)">
+    <g transform="rotate(35, 50, 50)">
+      <rect fill="green" width="100" height="100"/>
+      <path d="M0 107 L100 107" stroke-width="1px" stroke="black"/>
+      <path d="M0 115 L100 115" stroke-width="2px" stroke="black"/>
+      <path d="M107 0 Q118 25 107 50 T107 100Z" fill="black" />
+    </g>
+    <text x="0" y="150" font-size="16px">auto</text>
+  </g>
 
-  <g>
-    <text y="180">The rectangle on the left should be anti-aliased.</text>
-    <text y="200">The rectangle on the right should not be anti-aliased, as it has the property shape-rendering="crispEdges". Bug 16182.</text>
+  <g transform="translate(200, 30)" shape-rendering="crispEdges">
+    <g transform="rotate(35, 50, 50)">
+      <rect fill="green" width="100" height="100"/>
+      <path d="M0 107 L100 107" stroke-width="1px" stroke="black"/>
+      <path d="M0 115 L100 115" stroke-width="2px" stroke="black"/>
+      <path d="M107 0 Q118 25 107 50 T107 100Z" fill="black" />
+    </g>
+    <text x="0" y="150" font-size="16px">crispEdges</text>
+  </g>
+
+  <g transform="translate(350, 30)" shape-rendering="optimizeSpeed">
+    <g transform="rotate(35, 50, 50)">
+      <rect fill="green" width="100" height="100"/>
+      <path d="M0 107 L100 107" stroke-width="1px" stroke="black"/>
+      <path d="M0 115 L100 115" stroke-width="2px" stroke="black"/>
+      <path d="M107 0 Q118 25 107 50 T107 100Z" fill="black" />
+    </g>
+    <text x="0" y="150" font-size="16px">optimizeSpeed</text>
+  </g>
+
+  <g transform="translate(500, 30)" shape-rendering="geometricPrecision">
+    <g transform="rotate(35, 50, 50)">
+      <rect fill="green" width="100" height="100"/>
+      <path d="M0 107 L100 107" stroke-width="1px" stroke="black"/>
+      <path d="M0 115 L100 115" stroke-width="2px" stroke="black"/>
+      <path d="M107 0 Q118 25 107 50 T107 100Z" fill="black" />
+    </g>
+    <text x="0" y="150" font-size="16px">geometricPrecision</text>
   </g>
 </svg>
-
diff --git a/third_party/WebKit/Source/core/paint/SVGShapePainter.cpp b/third_party/WebKit/Source/core/paint/SVGShapePainter.cpp
index 0894edc..3862fc2 100644
--- a/third_party/WebKit/Source/core/paint/SVGShapePainter.cpp
+++ b/third_party/WebKit/Source/core/paint/SVGShapePainter.cpp
@@ -60,7 +60,7 @@
             LayoutObjectDrawingRecorder recorder(paintContext.paintInfo().context, m_layoutSVGShape, paintContext.paintInfo().phase, boundingBox);
             const SVGComputedStyle& svgStyle = m_layoutSVGShape.style()->svgStyle();
 
-            bool shouldAntiAlias = svgStyle.shapeRendering() != SR_CRISPEDGES;
+            bool shouldAntiAlias = svgStyle.shapeRendering() != SR_CRISPEDGES && svgStyle.shapeRendering() != SR_OPTIMIZESPEED;
 
             for (int i = 0; i < 3; i++) {
                 switch (svgStyle.paintOrderType(i)) {