summaryrefslogtreecommitdiffstats
path: root/content
diff options
context:
space:
mode:
authordimich <dimich@chromium.org>2016-03-02 15:15:32 -0800
committerCommit bot <commit-bot@chromium.org>2016-03-02 23:16:58 +0000
commit08ebff81c084613192bd3e0b79613e394ffb2aa7 (patch)
tree6fbe8938e1ecb4187e219ccad9dcb90d861cd89f /content
parent53eccbc71cfc0b6f715d595888d6850d38b013c0 (diff)
downloadchromium_src-08ebff81c084613192bd3e0b79613e394ffb2aa7.zip
chromium_src-08ebff81c084613192bd3e0b79613e394ffb2aa7.tar.gz
chromium_src-08ebff81c084613192bd3e0b79613e394ffb2aa7.tar.bz2
Revert of Mustash: Move GURL ParamTraits to url/ipc (patchset #18 id:330001 of https://codereview.chromium.org/1722773002/ )
Reason for revert: Broke compile on iOS_Simulator_GN_(dbg): https://build.chromium.org/p/chromium.mac/builders/iOS_Simulator_GN_%28dbg%29/builds/1777 Original issue's description: > Move GURL ParamTraits to url/ipc > > As a part of the GPU refactor for Mus, we are trying to eliminate spots where content/common/gpu depends on > content/. One such dependency is GURL. As per discussion here: > https://codereview.chromium.org/1703163002/, the plan of record is to move > GURL ParamTraits out of content/ and into url/. > > BUG=586368 > CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_site_isolation > > Committed: https://crrev.com/45eb2e749a8b08988ab45bfd6806c004e9f511fa > Cr-Commit-Position: refs/heads/master@{#378859} TBR=fsamuel@chromium.org,piman@chromium.org,brettw@chromium.org,tsepez@chromium.org,thakis@chromium.org,markdittmer@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=586368 Review URL: https://codereview.chromium.org/1755363003 Cr-Commit-Position: refs/heads/master@{#378869}
Diffstat (limited to 'content')
-rw-r--r--content/browser/frame_host/navigator_impl.cc5
-rw-r--r--content/browser/web_contents/web_contents_impl_unittest.cc3
-rw-r--r--content/child/plugin_messages.h3
-rw-r--r--content/child/service_worker/service_worker_dispatcher.cc7
-rw-r--r--content/common/BUILD.gn1
-rw-r--r--content/common/accessibility_messages.h1
-rw-r--r--content/common/appcache_messages.h1
-rw-r--r--content/common/browser_plugin/browser_plugin_messages.h2
-rw-r--r--content/common/clipboard_messages.h5
-rw-r--r--content/common/common_param_traits_unittest.cc62
-rw-r--r--content/common/devtools_messages.h1
-rw-r--r--content/common/dom_storage/dom_storage_messages.h2
-rw-r--r--content/common/drag_messages.h1
-rw-r--r--content/common/fileapi/webblob_messages.h2
-rw-r--r--content/common/gpu/gpu_host_messages.h1
-rw-r--r--content/common/input_messages.h1
-rw-r--r--content/content_browser.gypi1
-rw-r--r--content/content_child.gypi1
-rw-r--r--content/content_common.gypi1
-rw-r--r--content/content_renderer.gypi1
-rw-r--r--content/content_shell.gypi1
-rw-r--r--content/public/common/BUILD.gn1
-rw-r--r--content/public/common/common_param_traits.cc41
-rw-r--r--content/public/common/common_param_traits.h12
-rw-r--r--content/public/common/content_constants.cc1
-rw-r--r--content/renderer/render_frame_impl.cc3
-rw-r--r--content/renderer/render_view_impl.cc3
-rw-r--r--content/shell/common/layout_test/layout_test_messages.h2
28 files changed, 134 insertions, 32 deletions
diff --git a/content/browser/frame_host/navigator_impl.cc b/content/browser/frame_host/navigator_impl.cc
index f23cdee..50ff49c 100644
--- a/content/browser/frame_host/navigator_impl.cc
+++ b/content/browser/frame_host/navigator_impl.cc
@@ -42,7 +42,6 @@
#include "content/public/common/resource_response.h"
#include "content/public/common/url_constants.h"
#include "net/base/net_errors.h"
-#include "url/url_constants.h"
namespace content {
@@ -291,8 +290,8 @@ bool NavigatorImpl::NavigateToEntry(
// The renderer will reject IPC messages with URLs longer than
// this limit, so don't attempt to navigate with a longer URL.
- if (dest_url.spec().size() > url::kMaxURLChars) {
- LOG(WARNING) << "Refusing to load URL as it exceeds " << url::kMaxURLChars
+ if (dest_url.spec().size() > kMaxURLChars) {
+ LOG(WARNING) << "Refusing to load URL as it exceeds " << kMaxURLChars
<< " characters.";
return false;
}
diff --git a/content/browser/web_contents/web_contents_impl_unittest.cc b/content/browser/web_contents/web_contents_impl_unittest.cc
index 9cabfd4..506b87f 100644
--- a/content/browser/web_contents/web_contents_impl_unittest.cc
+++ b/content/browser/web_contents/web_contents_impl_unittest.cc
@@ -51,7 +51,6 @@
#include "net/test/cert_test_util.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "third_party/skia/include/core/SkColor.h"
-#include "url/url_constants.h"
namespace content {
namespace {
@@ -489,7 +488,7 @@ TEST_F(WebContentsImplTest, SimpleNavigation) {
TEST_F(WebContentsImplTest, NavigateToExcessivelyLongURL) {
// Construct a URL that's kMaxURLChars + 1 long of all 'a's.
const GURL url(std::string("http://example.org/").append(
- url::kMaxURLChars + 1, 'a'));
+ kMaxURLChars + 1, 'a'));
controller().LoadURL(
url, Referrer(), ui::PAGE_TRANSITION_GENERATED, std::string());
diff --git a/content/child/plugin_messages.h b/content/child/plugin_messages.h
index 501dfdb..74bb5d32 100644
--- a/content/child/plugin_messages.h
+++ b/content/child/plugin_messages.h
@@ -11,13 +11,12 @@
#include "content/common/content_export.h"
#include "content/common/content_param_traits.h"
#include "content/common/cursors/webcursor.h"
+#include "content/public/common/common_param_traits.h"
#include "ipc/ipc_channel_handle.h"
#include "ipc/ipc_message_macros.h"
#include "ui/gfx/geometry/rect.h"
#include "ui/gfx/ipc/gfx_param_traits.h"
#include "ui/gfx/native_widget_types.h"
-#include "ui/surface/transport_dib.h"
-#include "url/ipc/url_param_traits.h"
#if defined(OS_POSIX)
#include "base/file_descriptor_posix.h"
diff --git a/content/child/service_worker/service_worker_dispatcher.cc b/content/child/service_worker/service_worker_dispatcher.cc
index 72ba685..b8fd1421 100644
--- a/content/child/service_worker/service_worker_dispatcher.cc
+++ b/content/child/service_worker/service_worker_dispatcher.cc
@@ -25,7 +25,6 @@
#include "content/public/common/content_constants.h"
#include "third_party/WebKit/public/platform/WebString.h"
#include "third_party/WebKit/public/platform/modules/serviceworker/WebServiceWorkerProviderClient.h"
-#include "url/url_constants.h"
using blink::WebServiceWorkerError;
using blink::WebServiceWorkerProvider;
@@ -111,8 +110,8 @@ void ServiceWorkerDispatcher::RegisterServiceWorker(
WebServiceWorkerRegistrationCallbacks* callbacks) {
DCHECK(callbacks);
- if (pattern.possibly_invalid_spec().size() > url::kMaxURLChars ||
- script_url.possibly_invalid_spec().size() > url::kMaxURLChars) {
+ if (pattern.possibly_invalid_spec().size() > kMaxURLChars ||
+ script_url.possibly_invalid_spec().size() > kMaxURLChars) {
scoped_ptr<WebServiceWorkerRegistrationCallbacks>
owned_callbacks(callbacks);
std::string error_message(kServiceWorkerRegisterErrorPrefix);
@@ -162,7 +161,7 @@ void ServiceWorkerDispatcher::GetRegistration(
WebServiceWorkerGetRegistrationCallbacks* callbacks) {
DCHECK(callbacks);
- if (document_url.possibly_invalid_spec().size() > url::kMaxURLChars) {
+ if (document_url.possibly_invalid_spec().size() > kMaxURLChars) {
scoped_ptr<WebServiceWorkerGetRegistrationCallbacks> owned_callbacks(
callbacks);
std::string error_message(kServiceWorkerGetRegistrationErrorPrefix);
diff --git a/content/common/BUILD.gn b/content/common/BUILD.gn
index 63d416a..3854840 100644
--- a/content/common/BUILD.gn
+++ b/content/common/BUILD.gn
@@ -170,7 +170,6 @@ source_set("common") {
"//ui/gfx/ipc",
"//ui/shell_dialogs",
"//url",
- "//url/ipc:url_ipc",
]
if (!is_ios) {
diff --git a/content/common/accessibility_messages.h b/content/common/accessibility_messages.h
index 660484c..5a0a598 100644
--- a/content/common/accessibility_messages.h
+++ b/content/common/accessibility_messages.h
@@ -8,6 +8,7 @@
#include "content/common/ax_content_node_data.h"
#include "content/common/content_export.h"
#include "content/common/view_message_enums.h"
+#include "content/public/common/common_param_traits.h"
#include "ipc/ipc_message_macros.h"
#include "ipc/ipc_message_utils.h"
#include "ipc/ipc_param_traits.h"
diff --git a/content/common/appcache_messages.h b/content/common/appcache_messages.h
index 95964f7..7e74848 100644
--- a/content/common/appcache_messages.h
+++ b/content/common/appcache_messages.h
@@ -9,7 +9,6 @@
#include <stdint.h>
#include "content/common/appcache_interfaces.h"
-#include "url/ipc/url_param_traits.h"
#define IPC_MESSAGE_START AppCacheMsgStart
diff --git a/content/common/browser_plugin/browser_plugin_messages.h b/content/common/browser_plugin/browser_plugin_messages.h
index f85bafe..ef1640f 100644
--- a/content/common/browser_plugin/browser_plugin_messages.h
+++ b/content/common/browser_plugin/browser_plugin_messages.h
@@ -12,6 +12,7 @@
#include "content/common/content_param_traits.h"
#include "content/common/cursors/webcursor.h"
#include "content/common/edit_command.h"
+#include "content/public/common/common_param_traits.h"
#include "content/public/common/drop_data.h"
#include "ipc/ipc_channel_handle.h"
#include "ipc/ipc_message_macros.h"
@@ -25,6 +26,7 @@
#include "ui/gfx/geometry/rect.h"
#include "ui/gfx/geometry/size.h"
#include "ui/gfx/ipc/gfx_param_traits.h"
+#include "url/gurl.h"
#undef IPC_MESSAGE_EXPORT
#define IPC_MESSAGE_EXPORT CONTENT_EXPORT
diff --git a/content/common/clipboard_messages.h b/content/common/clipboard_messages.h
index 36877f0..00a198c 100644
--- a/content/common/clipboard_messages.h
+++ b/content/common/clipboard_messages.h
@@ -10,16 +10,13 @@
#include <string>
#include <vector>
-#include "build/build_config.h"
#include "base/memory/shared_memory.h"
#include "base/strings/string16.h"
#include "build/build_config.h"
#include "content/common/clipboard_format.h"
-#include "content/common/content_export.h"
+#include "content/public/common/common_param_traits.h"
#include "ipc/ipc_message_macros.h"
-#include "ipc/param_traits_macros.h"
#include "ui/base/clipboard/clipboard.h"
-#include "url/ipc/url_param_traits.h"
// Singly-included section for types and/or struct declarations.
#ifndef CONTENT_COMMON_CLIPBOARD_MESSAGES_H_
diff --git a/content/common/common_param_traits_unittest.cc b/content/common/common_param_traits_unittest.cc
index 648e6a6..03c19a0 100644
--- a/content/common/common_param_traits_unittest.cc
+++ b/content/common/common_param_traits_unittest.cc
@@ -20,6 +20,68 @@
#include "third_party/skia/include/core/SkBitmap.h"
#include "ui/gfx/geometry/rect.h"
#include "ui/gfx/ipc/gfx_param_traits.h"
+#include "url/gurl.h"
+
+// Tests that serialize/deserialize correctly understand each other
+TEST(IPCMessageTest, Serialize) {
+ const char* serialize_cases[] = {
+ "http://www.google.com/",
+ "http://user:pass@host.com:888/foo;bar?baz#nop",
+ };
+
+ for (size_t i = 0; i < arraysize(serialize_cases); i++) {
+ GURL input(serialize_cases[i]);
+ IPC::Message msg(1, 2, IPC::Message::PRIORITY_NORMAL);
+ IPC::ParamTraits<GURL>::Write(&msg, input);
+
+ GURL output;
+ base::PickleIterator iter(msg);
+ EXPECT_TRUE(IPC::ParamTraits<GURL>::Read(&msg, &iter, &output));
+
+ // We want to test each component individually to make sure its range was
+ // correctly serialized and deserialized, not just the spec.
+ EXPECT_EQ(input.possibly_invalid_spec(), output.possibly_invalid_spec());
+ EXPECT_EQ(input.is_valid(), output.is_valid());
+ EXPECT_EQ(input.scheme(), output.scheme());
+ EXPECT_EQ(input.username(), output.username());
+ EXPECT_EQ(input.password(), output.password());
+ EXPECT_EQ(input.host(), output.host());
+ EXPECT_EQ(input.port(), output.port());
+ EXPECT_EQ(input.path(), output.path());
+ EXPECT_EQ(input.query(), output.query());
+ EXPECT_EQ(input.ref(), output.ref());
+ }
+
+ // Test an excessively long GURL.
+ {
+ const std::string url = std::string("http://example.org/").append(
+ content::kMaxURLChars + 1, 'a');
+ GURL input(url.c_str());
+ IPC::Message msg(1, 2, IPC::Message::PRIORITY_NORMAL);
+ IPC::ParamTraits<GURL>::Write(&msg, input);
+
+ GURL output;
+ base::PickleIterator iter(msg);
+ EXPECT_TRUE(IPC::ParamTraits<GURL>::Read(&msg, &iter, &output));
+ EXPECT_TRUE(output.is_empty());
+ }
+
+ // Test an invalid GURL.
+ {
+ IPC::Message msg;
+ msg.WriteString("#inva://idurl/");
+ GURL output;
+ base::PickleIterator iter(msg);
+ EXPECT_FALSE(IPC::ParamTraits<GURL>::Read(&msg, &iter, &output));
+ }
+
+ // Also test the corrupt case.
+ IPC::Message msg(1, 2, IPC::Message::PRIORITY_NORMAL);
+ msg.WriteInt(99);
+ GURL output;
+ base::PickleIterator iter(msg);
+ EXPECT_FALSE(IPC::ParamTraits<GURL>::Read(&msg, &iter, &output));
+}
// Tests std::pair serialization
TEST(IPCMessageTest, Pair) {
diff --git a/content/common/devtools_messages.h b/content/common/devtools_messages.h
index 4c7c24a..f61525c 100644
--- a/content/common/devtools_messages.h
+++ b/content/common/devtools_messages.h
@@ -43,6 +43,7 @@
#include <string>
#include "content/common/content_export.h"
+#include "content/public/common/common_param_traits.h"
#include "content/public/common/console_message_level.h"
#include "ipc/ipc_message_macros.h"
diff --git a/content/common/dom_storage/dom_storage_messages.h b/content/common/dom_storage/dom_storage_messages.h
index 59d22c9..7fd4426 100644
--- a/content/common/dom_storage/dom_storage_messages.h
+++ b/content/common/dom_storage/dom_storage_messages.h
@@ -7,11 +7,11 @@
#include <stdint.h>
#include "content/common/dom_storage/dom_storage_types.h"
+#include "content/public/common/common_param_traits.h"
#include "ipc/ipc_message_macros.h"
#include "ipc/ipc_param_traits.h"
#include "third_party/WebKit/public/platform/WebStorageArea.h"
#include "url/gurl.h"
-#include "url/ipc/url_param_traits.h"
#define IPC_MESSAGE_START DOMStorageMsgStart
diff --git a/content/common/drag_messages.h b/content/common/drag_messages.h
index 8d2fd77..455bbff 100644
--- a/content/common/drag_messages.h
+++ b/content/common/drag_messages.h
@@ -6,6 +6,7 @@
// Multiply-included message file, hence no include guard.
#include "content/common/drag_event_source_info.h"
+#include "content/public/common/common_param_traits.h"
#include "content/public/common/drop_data.h"
#include "ipc/ipc_message_macros.h"
#include "third_party/WebKit/public/web/WebDragOperation.h"
diff --git a/content/common/fileapi/webblob_messages.h b/content/common/fileapi/webblob_messages.h
index 603e501..0dd3141 100644
--- a/content/common/fileapi/webblob_messages.h
+++ b/content/common/fileapi/webblob_messages.h
@@ -8,9 +8,9 @@
#include <stddef.h>
#include "content/common/content_export.h"
+#include "content/public/common/common_param_traits.h"
#include "ipc/ipc_message_macros.h"
#include "storage/common/data_element.h"
-#include "url/ipc/url_param_traits.h"
#undef IPC_MESSAGE_EXPORT
#define IPC_MESSAGE_EXPORT CONTENT_EXPORT
diff --git a/content/common/gpu/gpu_host_messages.h b/content/common/gpu/gpu_host_messages.h
index 1428c8a..b0414ab 100644
--- a/content/common/gpu/gpu_host_messages.h
+++ b/content/common/gpu/gpu_host_messages.h
@@ -23,7 +23,6 @@
#include "ui/gfx/ipc/gfx_param_traits.h"
#include "ui/gfx/native_widget_types.h"
#include "url/gurl.h"
-#include "url/ipc/url_param_traits.h"
#if defined(OS_MACOSX)
#include "content/common/gpu/accelerated_surface_buffers_swapped_params_mac.h"
diff --git a/content/common/input_messages.h b/content/common/input_messages.h
index cf4dc12..cef5568 100644
--- a/content/common/input_messages.h
+++ b/content/common/input_messages.h
@@ -24,6 +24,7 @@
#include "content/common/input/synthetic_smooth_scroll_gesture_params.h"
#include "content/common/input/synthetic_tap_gesture_params.h"
#include "content/common/input/touch_action.h"
+#include "content/public/common/common_param_traits.h"
#include "ipc/ipc_message_macros.h"
#include "third_party/WebKit/public/web/WebInputEvent.h"
#include "ui/events/ipc/latency_info_param_traits.h"
diff --git a/content/content_browser.gypi b/content/content_browser.gypi
index f2d4939..87cda02 100644
--- a/content/content_browser.gypi
+++ b/content/content_browser.gypi
@@ -63,7 +63,6 @@
'../ui/snapshot/snapshot.gyp:snapshot',
'../ui/surface/surface.gyp:surface',
'../ui/touch_selection/ui_touch_selection.gyp:ui_touch_selection',
- '../url/ipc/url_ipc.gyp:url_ipc',
'app/resources/content_resources.gyp:content_resources',
'app/strings/content_strings.gyp:content_strings',
'browser/background_sync/background_sync_proto.gyp:background_sync_proto',
diff --git a/content/content_child.gypi b/content/content_child.gypi
index 80f4fe3..3feb6cf 100644
--- a/content/content_child.gypi
+++ b/content/content_child.gypi
@@ -24,7 +24,6 @@
'../ui/gfx/gfx.gyp:gfx',
'../ui/gfx/gfx.gyp:gfx_geometry',
'../url/url.gyp:url_lib',
- '../url/ipc/url_ipc.gyp:url_ipc',
'app/resources/content_resources.gyp:content_resources',
'app/strings/content_strings.gyp:content_strings',
'content_common_mojo_bindings.gyp:content_common_mojo_bindings',
diff --git a/content/content_common.gypi b/content/content_common.gypi
index e472b9f..372bab7 100644
--- a/content/content_common.gypi
+++ b/content/content_common.gypi
@@ -46,7 +46,6 @@
'../ui/gl/gl.gyp:gl',
'../ui/shell_dialogs/shell_dialogs.gyp:shell_dialogs',
'../url/url.gyp:url_lib',
- '../url/ipc/url_ipc.gyp:url_ipc',
'content.gyp:common_features',
'content_common_mojo_bindings.gyp:content_common_mojo_bindings',
],
diff --git a/content/content_renderer.gypi b/content/content_renderer.gypi
index 594d692..11078c4 100644
--- a/content/content_renderer.gypi
+++ b/content/content_renderer.gypi
@@ -47,7 +47,6 @@
'../ui/gfx/gfx.gyp:gfx_geometry',
'../ui/native_theme/native_theme.gyp:native_theme',
'../ui/surface/surface.gyp:surface',
- '../url/ipc/url_ipc.gyp:url_ipc',
'../v8/tools/gyp/v8.gyp:v8',
'content_common_mojo_bindings.gyp:content_common_mojo_bindings',
],
diff --git a/content/content_shell.gypi b/content/content_shell.gypi
index dd6fe7d..ee17cb3 100644
--- a/content/content_shell.gypi
+++ b/content/content_shell.gypi
@@ -71,7 +71,6 @@
'../ui/gfx/ipc/gfx_ipc.gyp:gfx_ipc',
'../ui/gl/gl.gyp:gl',
'../url/url.gyp:url_lib',
- '../url/ipc/url_ipc.gyp:url_ipc',
'../v8/tools/gyp/v8.gyp:v8',
],
'include_dirs': [
diff --git a/content/public/common/BUILD.gn b/content/public/common/BUILD.gn
index 9075452..83d47d6 100644
--- a/content/public/common/BUILD.gn
+++ b/content/public/common/BUILD.gn
@@ -88,7 +88,6 @@ source_set("common_sources") {
public_deps = [
"//content/common",
"//mojo/public/cpp/bindings",
- "//url/ipc:url_ipc",
]
deps = [
"//net",
diff --git a/content/public/common/common_param_traits.cc b/content/public/common/common_param_traits.cc
index f402cca..6a937c6 100644
--- a/content/public/common/common_param_traits.cc
+++ b/content/public/common/common_param_traits.cc
@@ -15,6 +15,47 @@
namespace IPC {
+void ParamTraits<GURL>::Write(base::Pickle* m, const GURL& p) {
+ if (p.possibly_invalid_spec().length() > content::kMaxURLChars) {
+ m->WriteString(std::string());
+ return;
+ }
+
+ // Beware of print-parse inconsistency which would change an invalid
+ // URL into a valid one. Ideally, the message would contain this flag
+ // so that the read side could make the check, but performing it here
+ // avoids changing the on-the-wire representation of such a fundamental
+ // type as GURL. See https://crbug.com/166486 for additional work in
+ // this area.
+ if (!p.is_valid()) {
+ m->WriteString(std::string());
+ return;
+ }
+
+ m->WriteString(p.possibly_invalid_spec());
+ // TODO(brettw) bug 684583: Add encoding for query params.
+}
+
+bool ParamTraits<GURL>::Read(const base::Pickle* m,
+ base::PickleIterator* iter,
+ GURL* p) {
+ std::string s;
+ if (!iter->ReadString(&s) || s.length() > content::kMaxURLChars) {
+ *p = GURL();
+ return false;
+ }
+ *p = GURL(s);
+ if (!s.empty() && !p->is_valid()) {
+ *p = GURL();
+ return false;
+ }
+ return true;
+}
+
+void ParamTraits<GURL>::Log(const GURL& p, std::string* l) {
+ l->append(p.spec());
+}
+
void ParamTraits<url::Origin>::Write(base::Pickle* m, const url::Origin& p) {
WriteParam(m, p.unique());
WriteParam(m, p.scheme());
diff --git a/content/public/common/common_param_traits.h b/content/public/common/common_param_traits.h
index 4e7610c..5f55f13 100644
--- a/content/public/common/common_param_traits.h
+++ b/content/public/common/common_param_traits.h
@@ -25,7 +25,7 @@
#include "ipc/ipc_message_utils.h"
#include "ui/gfx/native_widget_types.h"
#include "ui/surface/transport_dib.h"
-#include "url/ipc/url_param_traits.h"
+#include "url/gurl.h"
#include "url/origin.h"
#if defined(OS_WIN)
@@ -45,6 +45,16 @@ class IPEndPoint;
namespace IPC {
template <>
+struct CONTENT_EXPORT ParamTraits<GURL> {
+ typedef GURL param_type;
+ static void Write(base::Pickle* m, const param_type& p);
+ static bool Read(const base::Pickle* m,
+ base::PickleIterator* iter,
+ param_type* p);
+ static void Log(const param_type& p, std::string* l);
+};
+
+template <>
struct CONTENT_EXPORT ParamTraits<url::Origin> {
typedef url::Origin param_type;
static void Write(base::Pickle* m, const param_type& p);
diff --git a/content/public/common/content_constants.cc b/content/public/common/content_constants.cc
index e337433..3a97a09 100644
--- a/content/public/common/content_constants.cc
+++ b/content/public/common/content_constants.cc
@@ -26,6 +26,7 @@ const char kSilverlightPluginMimeTypePrefix[] = "application/x-silverlight";
const size_t kMaxRendererProcessCount = 82;
const int kMaxSessionHistoryEntries = 50;
const size_t kMaxTitleChars = 4 * 1024;
+const size_t kMaxURLChars = 2 * 1024 * 1024;
const size_t kMaxURLDisplayChars = 32 * 1024;
#if defined(GOOGLE_CHROME_BUILD)
diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc
index a628700..5c2cade 100644
--- a/content/renderer/render_frame_impl.cc
+++ b/content/renderer/render_frame_impl.cc
@@ -180,7 +180,6 @@
#include "third_party/WebKit/public/web/WebSurroundingText.h"
#include "third_party/WebKit/public/web/WebUserGestureIndicator.h"
#include "third_party/WebKit/public/web/WebView.h"
-#include "url/url_constants.h"
#include "url/url_util.h"
#if defined(ENABLE_PLUGINS)
@@ -3661,7 +3660,7 @@ void RenderFrameImpl::showContextMenu(const blink::WebContextMenuData& data) {
// in the context menu.
// TODO(jcivelli): http://crbug.com/45160 This prevents us from saving large
// data encoded images. We should have a way to save them.
- if (params.src_url.spec().size() > url::kMaxURLChars)
+ if (params.src_url.spec().size() > kMaxURLChars)
params.src_url = GURL();
context_menu_node_ = data.node;
diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc
index 34d50c8..6b7de27 100644
--- a/content/renderer/render_view_impl.cc
+++ b/content/renderer/render_view_impl.cc
@@ -175,7 +175,6 @@
#include "ui/gfx/geometry/rect_conversions.h"
#include "ui/gfx/geometry/size_conversions.h"
#include "ui/gfx/native_widget_types.h"
-#include "url/url_constants.h"
#include "v8/include/v8.h"
#if defined(OS_ANDROID)
@@ -1897,7 +1896,7 @@ void RenderViewImpl::UpdateTargetURL(const GURL& url,
} else {
// URLs larger than |kMaxURLChars| cannot be sent through IPC -
// see |ParamTraits<GURL>|.
- if (latest_url.possibly_invalid_spec().size() > url::kMaxURLChars)
+ if (latest_url.possibly_invalid_spec().size() > kMaxURLChars)
latest_url = GURL();
Send(new ViewHostMsg_UpdateTargetURL(routing_id(), latest_url));
target_url_ = latest_url;
diff --git a/content/shell/common/layout_test/layout_test_messages.h b/content/shell/common/layout_test/layout_test_messages.h
index 0ca3309..b81b0bc 100644
--- a/content/shell/common/layout_test/layout_test_messages.h
+++ b/content/shell/common/layout_test/layout_test_messages.h
@@ -6,11 +6,11 @@
#include <string>
#include <vector>
+#include "content/public/common/common_param_traits.h"
#include "content/public/common/permission_status.mojom.h"
#include "ipc/ipc_message_macros.h"
#include "ipc/ipc_platform_file.h"
#include "url/gurl.h"
-#include "url/ipc/url_param_traits.h"
#define IPC_MESSAGE_START LayoutTestMsgStart