#include "services/network/url_loader_factory.h"
#include "url/scheme_host_port.h"
#include "url/url_util.h"
+#if BUILDFLAG(IS_TIZEN_TV)
+#include "url/url_constants.h"
+#endif
namespace network::cors {
constexpr const char kTimingAllowOrigin[] = "Timing-Allow-Origin";
+#if BUILDFLAG(IS_TIZEN_TV)
+void IgnoreHbbtvCarouselRequestHeader(ResourceRequest& request,
+ const base::StringPiece& value) {
+ std::string origin_string;
+ bool has_origin = request.headers.GetHeader("Origin", &origin_string) &&
+ origin_string != "null";
+ if (!has_origin ||
+ std::string::npos == origin_string.find(url::kHbbTVCarouselScheme))
+ request.headers.SetHeader(net::HttpRequestHeaders::kOrigin, value);
+}
+#endif
+
class EmptyResolveHostClient : ResolveHostClientBase {
public:
EmptyResolveHostClient(const GURL& url,
(request_.method != net::HttpRequestHeaders::kGetMethod &&
request_.method != net::HttpRequestHeaders::kHeadMethod))) {
if (tainted_) {
+#if BUILDFLAG(IS_TIZEN_TV)
+ IgnoreHbbtvCarouselRequestHeader(request_, url::Origin().Serialize());
+#else
request_.headers.SetHeader(net::HttpRequestHeaders::kOrigin,
url::Origin().Serialize());
+#endif
} else {
+#if BUILDFLAG(IS_TIZEN_TV)
+ IgnoreHbbtvCarouselRequestHeader(request_,
+ request_.request_initiator->Serialize());
+#else
request_.headers.SetHeader(net::HttpRequestHeaders::kOrigin,
request_.request_initiator->Serialize());
+#endif
}
}
#include "third_party/blink/renderer/platform/wtf/shared_buffer.h"
#include "third_party/blink/renderer/platform/wtf/std_lib_extras.h"
#include "third_party/blink/renderer/platform/wtf/text/string_builder.h"
+#if BUILDFLAG(IS_TIZEN_TV)
+#include "third_party/blink/public/platform/web_application_type.h"
+#include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
+#include "url/gurl.h"
+#include "url/url_constants.h"
+#include "v8/include/v8.h"
+#endif
namespace blink {
request.SetHttpBody(std::move(http_body));
}
+#if BUILDFLAG(IS_TIZEN_TV)
+ if (IsHbbTV()) {
+ v8::Isolate* isolate = v8::Isolate::GetCurrent();
+ if (isolate) {
+ String set_origin;
+
+ uint32_t number = isolate->GetNumberOfDataSlots();
+ for (uint32_t index = 0; index < number; index++) {
+ set_origin = (const char*)isolate->GetData(index);
+ if (!set_origin.empty() &&
+ set_origin.StartsWith(url::kHbbTVCarouselScheme)) {
+ if (request_headers_.Contains(AtomicString("Origin")))
+ request_headers_.Remove(AtomicString("Origin"));
+ request_headers_.Set(AtomicString("Origin"),
+ AtomicString(set_origin.Utf8().data()));
+ }
+ }
+ }
+ }
+#endif
+
if (request_headers_.size() > 0)
request.AddHTTPHeaderFields(request_headers_);