diff options
Diffstat (limited to 'webkit')
-rw-r--r-- | webkit/glue/request_extra_data.cc | 13 | ||||
-rw-r--r-- | webkit/glue/request_extra_data.h | 29 | ||||
-rw-r--r-- | webkit/glue/resource_loader_bridge.h | 7 | ||||
-rw-r--r-- | webkit/glue/webkit_glue.gypi | 2 | ||||
-rw-r--r-- | webkit/glue/weburlloader_impl.cc | 9 |
5 files changed, 60 insertions, 0 deletions
diff --git a/webkit/glue/request_extra_data.cc b/webkit/glue/request_extra_data.cc new file mode 100644 index 0000000..8870fed --- /dev/null +++ b/webkit/glue/request_extra_data.cc @@ -0,0 +1,13 @@ +// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "webkit/glue/request_extra_data.h" + +RequestExtraData::~RequestExtraData() {} + +RequestExtraData::RequestExtraData(bool is_main_frame, + int64 frame_identifier) + : is_main_frame_(is_main_frame), + frame_identifier_(frame_identifier) { +} diff --git a/webkit/glue/request_extra_data.h b/webkit/glue/request_extra_data.h new file mode 100644 index 0000000..1dd6103 --- /dev/null +++ b/webkit/glue/request_extra_data.h @@ -0,0 +1,29 @@ +// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef WEBKIT_GLUE_REQUEST_EXTRA_DATA_H_ +#define WEBKIT_GLUE_REQUEST_EXTRA_DATA_H_ +#pragma once + +#include "third_party/WebKit/Source/WebKit/chromium/public/WebURLRequest.h" + +// The RenderView stores an instance of this class in the "extra data" of each +// ResourceRequest (see RenderView::willSendRequest). +class RequestExtraData : public WebKit::WebURLRequest::ExtraData { + public: + RequestExtraData(bool is_main_frame, int64 frame_identifier); + virtual ~RequestExtraData(); + + bool is_main_frame() const { return is_main_frame_; } + + int64 frame_identifier() const { return frame_identifier_; } + + private: + bool is_main_frame_; + int64 frame_identifier_; + + DISALLOW_COPY_AND_ASSIGN(RequestExtraData); +}; + +#endif // WEBKIT_GLUE_REQUEST_EXTRA_DATA_H_ diff --git a/webkit/glue/resource_loader_bridge.h b/webkit/glue/resource_loader_bridge.h index 9b2fd09..dcc86f4 100644 --- a/webkit/glue/resource_loader_bridge.h +++ b/webkit/glue/resource_loader_bridge.h @@ -246,6 +246,13 @@ class ResourceLoaderBridge { // True if the request was user initiated. bool has_user_gesture; + + // True if |frame_id| represents a main frame of a RenderView. + bool is_main_frame; + + // Identifies the frame within the RenderView that sent the request. + // -1 if unknown / invalid. + int64 frame_id; }; // See the SyncLoad method declared below. (The name of this struct is not diff --git a/webkit/glue/webkit_glue.gypi b/webkit/glue/webkit_glue.gypi index ae8319d..e2ac88a 100644 --- a/webkit/glue/webkit_glue.gypi +++ b/webkit/glue/webkit_glue.gypi @@ -379,6 +379,8 @@ 'resource_loader_bridge.cc', 'resource_loader_bridge.h', 'resource_type.h', + 'request_extra_data.cc', + 'request_extra_data.h', 'scoped_clipboard_writer_glue.h', 'simple_webmimeregistry_impl.cc', 'simple_webmimeregistry_impl.h', diff --git a/webkit/glue/weburlloader_impl.cc b/webkit/glue/weburlloader_impl.cc index cbdf18d..116ea0f 100644 --- a/webkit/glue/weburlloader_impl.cc +++ b/webkit/glue/weburlloader_impl.cc @@ -30,6 +30,7 @@ #include "webkit/glue/ftp_directory_listing_response_delegate.h" #include "webkit/glue/multipart_response_delegate.h" #include "webkit/glue/resource_loader_bridge.h" +#include "webkit/glue/request_extra_data.h" #include "webkit/glue/site_isolation_metrics.h" #include "webkit/glue/webkit_glue.h" @@ -442,6 +443,14 @@ void WebURLLoaderImpl::Context::Start( request_info.routing_id = request.requestorID(); request_info.download_to_file = request.downloadToFile(); request_info.has_user_gesture = request.hasUserGesture(); + request_info.frame_id = -1; + request_info.is_main_frame = false; + if (request.extraData()) { + RequestExtraData* extra_data = + static_cast<RequestExtraData*>(request.extraData()); + request_info.frame_id = extra_data->frame_identifier(); + request_info.is_main_frame = extra_data->is_main_frame(); + } bridge_.reset(ResourceLoaderBridge::Create(request_info)); if (!request.httpBody().isNull()) { |