Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(191)

Side by Side Diff: third_party/WebKit/Source/bindings/core/v8/V8Binding.h

Issue 1583263002: Experimental CompressibleString UMA (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add DecompressingInForegroundTab Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2009 Google Inc. All rights reserved. 2 * Copyright (C) 2009 Google Inc. All rights reserved.
3 * Copyright (C) 2012 Ericsson AB. All rights reserved. 3 * Copyright (C) 2012 Ericsson AB. All rights reserved.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are 6 * modification, are permitted provided that the following conditions are
7 * met: 7 * met:
8 * 8 *
9 * * Redistributions of source code must retain the above copyright 9 * * Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer. 10 * notice, this list of conditions and the following disclaimer.
(...skipping 29 matching lines...) Expand all
40 #include "bindings/core/v8/ScriptValue.h" 40 #include "bindings/core/v8/ScriptValue.h"
41 #include "bindings/core/v8/ScriptWrappable.h" 41 #include "bindings/core/v8/ScriptWrappable.h"
42 #include "bindings/core/v8/V8BindingMacros.h" 42 #include "bindings/core/v8/V8BindingMacros.h"
43 #include "bindings/core/v8/V8PerIsolateData.h" 43 #include "bindings/core/v8/V8PerIsolateData.h"
44 #include "bindings/core/v8/V8StringResource.h" 44 #include "bindings/core/v8/V8StringResource.h"
45 #include "bindings/core/v8/V8ThrowException.h" 45 #include "bindings/core/v8/V8ThrowException.h"
46 #include "bindings/core/v8/V8ValueCache.h" 46 #include "bindings/core/v8/V8ValueCache.h"
47 #include "core/CoreExport.h" 47 #include "core/CoreExport.h"
48 #include "platform/JSONValues.h" 48 #include "platform/JSONValues.h"
49 #include "platform/heap/Handle.h" 49 #include "platform/heap/Handle.h"
50 #include "platform/text/CompressibleString.h"
50 #include "wtf/text/AtomicString.h" 51 #include "wtf/text/AtomicString.h"
51 #include <v8.h> 52 #include <v8.h>
52 53
53 namespace blink { 54 namespace blink {
54 55
55 class DOMWindow; 56 class DOMWindow;
56 class EventListener; 57 class EventListener;
57 class EventTarget; 58 class EventTarget;
58 class ExceptionState; 59 class ExceptionState;
59 class ExecutionContext; 60 class ExecutionContext;
(...skipping 366 matching lines...) Expand 10 before | Expand all | Expand 10 after
426 // Return a V8 external string that shares the underlying buffer with the given 427 // Return a V8 external string that shares the underlying buffer with the given
427 // WebCore string. The reference counting mechanism is used to keep the 428 // WebCore string. The reference counting mechanism is used to keep the
428 // underlying buffer alive while the string is still live in the V8 engine. 429 // underlying buffer alive while the string is still live in the V8 engine.
429 inline v8::Local<v8::String> v8String(v8::Isolate* isolate, const String& string ) 430 inline v8::Local<v8::String> v8String(v8::Isolate* isolate, const String& string )
430 { 431 {
431 if (string.isNull()) 432 if (string.isNull())
432 return v8::String::Empty(isolate); 433 return v8::String::Empty(isolate);
433 return V8PerIsolateData::from(isolate)->stringCache()->v8ExternalString(isol ate, string.impl()); 434 return V8PerIsolateData::from(isolate)->stringCache()->v8ExternalString(isol ate, string.impl());
434 } 435 }
435 436
437 inline v8::Local<v8::String> v8String(v8::Isolate* isolate, const CompressibleSt ring& string)
438 {
439 if (string.isNull())
440 return v8::String::Empty(isolate);
441 return V8PerIsolateData::from(isolate)->stringCache()->v8ExternalString(isol ate, string);
442 }
443
436 inline v8::Local<v8::String> v8AtomicString(v8::Isolate* isolate, const char* st r, int length = -1) 444 inline v8::Local<v8::String> v8AtomicString(v8::Isolate* isolate, const char* st r, int length = -1)
437 { 445 {
438 ASSERT(isolate); 446 ASSERT(isolate);
439 v8::Local<v8::String> value; 447 v8::Local<v8::String> value;
440 if (LIKELY(v8::String::NewFromUtf8(isolate, str, v8::NewStringType::kInterna lized, length).ToLocal(&value))) 448 if (LIKELY(v8::String::NewFromUtf8(isolate, str, v8::NewStringType::kInterna lized, length).ToLocal(&value)))
441 return value; 449 return value;
442 // Immediately crashes when NewFromUtf8() fails because it only fails the 450 // Immediately crashes when NewFromUtf8() fails because it only fails the
443 // given str is too long. 451 // given str is too long.
444 RELEASE_ASSERT_NOT_REACHED(); 452 RELEASE_ASSERT_NOT_REACHED();
445 return v8::String::Empty(isolate); 453 return v8::String::Empty(isolate);
(...skipping 638 matching lines...) Expand 10 before | Expand all | Expand 10 after
1084 PassRefPtr<TraceEvent::ConvertableToTraceFormat> devToolsTraceEventData(v8::Isol ate*, ExecutionContext*, v8::Local<v8::Function>); 1092 PassRefPtr<TraceEvent::ConvertableToTraceFormat> devToolsTraceEventData(v8::Isol ate*, ExecutionContext*, v8::Local<v8::Function>);
1085 1093
1086 // Callback functions used by generated code. 1094 // Callback functions used by generated code.
1087 CORE_EXPORT void v8ConstructorAttributeGetter(v8::Local<v8::Name> propertyName, const v8::PropertyCallbackInfo<v8::Value>&); 1095 CORE_EXPORT void v8ConstructorAttributeGetter(v8::Local<v8::Name> propertyName, const v8::PropertyCallbackInfo<v8::Value>&);
1088 1096
1089 typedef void (*InstallTemplateFunction)(v8::Local<v8::FunctionTemplate>, v8::Iso late*); 1097 typedef void (*InstallTemplateFunction)(v8::Local<v8::FunctionTemplate>, v8::Iso late*);
1090 1098
1091 } // namespace blink 1099 } // namespace blink
1092 1100
1093 #endif // V8Binding_h 1101 #endif // V8Binding_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698