diff options
26 files changed, 49 insertions, 438 deletions
diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc index 707ca7a..ee71f09 100644 --- a/chrome/browser/chrome_content_browser_client.cc +++ b/chrome/browser/chrome_content_browser_client.cc @@ -770,7 +770,9 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches( switches::kExperimentalSpellcheckerFeatures, switches::kMemoryProfiling, switches::kMessageLoopHistogrammer, + switches::kNoJsRandomness, switches::kNoRunningInsecureContent, + switches::kPlaybackMode, switches::kPpapiFlashArgs, switches::kPpapiFlashInProcess, switches::kPpapiFlashPath, @@ -778,6 +780,7 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches( switches::kProfilingAtStart, switches::kProfilingFile, switches::kProfilingFlush, + switches::kRecordMode, switches::kSilentDumpOnDCHECK, switches::kWhitelistedExtensionID, }; diff --git a/chrome/chrome_renderer.gypi b/chrome/chrome_renderer.gypi index f9ce51d..99bd387 100644 --- a/chrome/chrome_renderer.gypi +++ b/chrome/chrome_renderer.gypi @@ -131,6 +131,8 @@ 'renderer/net/predictor_queue.h', 'renderer/net/renderer_net_predictor.cc', 'renderer/net/renderer_net_predictor.h', + 'renderer/playback_extension.cc', + 'renderer/playback_extension.h', 'renderer/resource_bundle_source_map.cc', 'renderer/resource_bundle_source_map.h', 'renderer/resources/extensions/apitest.js', diff --git a/chrome/common/chrome_switches.cc b/chrome/common/chrome_switches.cc index 51b273b..bffa62f 100644 --- a/chrome/common/chrome_switches.cc +++ b/chrome/common/chrome_switches.cc @@ -854,6 +854,13 @@ const char kNoExperiments[] = "no-experiments"; // you're for some reason tempted to pass them both. const char kNoFirstRun[] = "no-first-run"; +// Support a separate switch that enables the v8 playback extension. +// The extension causes javascript calls to Date.now() and Math.random() +// to return consistent values, such that subsequent loads of the same +// page will result in consistent js-generated data and XHR requests. +// Pages may still be able to generate inconsistent data from plugins. +const char kNoJsRandomness[] = "no-js-randomness"; + // Starts the browser outside of managed mode. const char kNoManaged[] = "no-managed"; @@ -937,6 +944,10 @@ const char kPackExtensionKey[] = "pack-extension-key"; // Specifies the path to the user data folder for the parent profile. const char kParentProfile[] = "parent-profile"; +// Read previously recorded data from the cache. Only cached data is read. +// See kRecordMode. +const char kPlaybackMode[] = "playback-mode"; + // Controls the PPAPI Flash field trial. Valid values are defined below. If an // unknown value is supplied on the command line, the switch is ignored. // TODO(yzshen): Remove this flag when the field trial is over. @@ -1040,6 +1051,12 @@ const char kProxyServer[] = "proxy-server"; // NOTE: This is only implemented for Views. const char kPurgeMemoryButton[] = "purge-memory-button"; +// Chrome supports a playback and record mode. Record mode saves *everything* +// to the cache. Playback mode reads data exclusively from the cache. This +// allows us to record a session into the cache and then replay it at will. +// See also kPlaybackMode. +const char kRecordMode[] = "record-mode"; + // Reloads pages that have been killed when they are next focused by the user. const char kReloadKilledTabs[] = "reload-killed-tabs"; diff --git a/chrome/common/chrome_switches.h b/chrome/common/chrome_switches.h index abe4977..f00f873 100644 --- a/chrome/common/chrome_switches.h +++ b/chrome/common/chrome_switches.h @@ -232,6 +232,7 @@ extern const char kNoDisplayingInsecureContent[]; extern const char kNoEvents[]; extern const char kNoExperiments[]; extern const char kNoFirstRun[]; +extern const char kNoJsRandomness[]; extern const char kNoManaged[]; extern const char kNoProxyServer[]; extern const char kNoPings[]; @@ -255,6 +256,7 @@ extern const char kOrganicInstall[]; extern const char kPackExtension[]; extern const char kPackExtensionKey[]; extern const char kParentProfile[]; +extern const char kPlaybackMode[]; extern const char kPpapiFlashFieldTrial[]; extern const char kPpapiFlashFieldTrialDisableByDefault[]; extern const char kPpapiFlashFieldTrialEnableByDefault[]; @@ -282,6 +284,7 @@ extern const char kProxyBypassList[]; extern const char kProxyPacUrl[]; extern const char kProxyServer[]; extern const char kPurgeMemoryButton[]; +extern const char kRecordMode[]; extern const char kReloadKilledTabs[]; extern const char kRemoteDebuggingFrontend[]; extern const char kRendererPrintPreview[]; diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer/chrome_content_renderer_client.cc index 9b9fb6c..cd7a2e9 100644 --- a/chrome/renderer/chrome_content_renderer_client.cc +++ b/chrome/renderer/chrome_content_renderer_client.cc @@ -47,6 +47,7 @@ #include "chrome/renderer/net/renderer_net_predictor.h" #include "chrome/renderer/page_click_tracker.h" #include "chrome/renderer/page_load_histograms.h" +#include "chrome/renderer/playback_extension.h" #include "chrome/renderer/plugins/plugin_placeholder.h" #include "chrome/renderer/plugins/plugin_uma.h" #include "chrome/renderer/prerender/prerender_dispatcher.h" @@ -179,12 +180,17 @@ void ChromeContentRendererClient::RenderThreadStarted() { if (search_extension) thread->RegisterExtension(search_extension); - if (CommandLine::ForCurrentProcess()->HasSwitch( - switches::kEnableBenchmarking)) + CommandLine* command_line = CommandLine::ForCurrentProcess(); + if (command_line->HasSwitch(switches::kEnableBenchmarking)) thread->RegisterExtension(extensions_v8::BenchmarkingExtension::Get()); - if (CommandLine::ForCurrentProcess()->HasSwitch( - switches::kEnableIPCFuzzing)) { + if (command_line->HasSwitch(switches::kPlaybackMode) || + command_line->HasSwitch(switches::kRecordMode) || + command_line->HasSwitch(switches::kNoJsRandomness)) { + thread->RegisterExtension(extensions_v8::PlaybackExtension::Get()); + } + + if (command_line->HasSwitch(switches::kEnableIPCFuzzing)) { thread->GetChannel()->set_outgoing_message_filter(LoadExternalIPCFuzzer()); } // chrome:, chrome-devtools:, and chrome-internal: pages should not be diff --git a/webkit/extensions/v8/playback_extension.cc b/chrome/renderer/playback_extension.cc index c106c84..5f9f017 100644 --- a/webkit/extensions/v8/playback_extension.cc +++ b/chrome/renderer/playback_extension.cc @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "webkit/extensions/v8/playback_extension.h" +#include "chrome/renderer/playback_extension.h" #include "v8/include/v8.h" diff --git a/webkit/extensions/v8/playback_extension.h b/chrome/renderer/playback_extension.h index c425ea0..6d2a427 100644 --- a/webkit/extensions/v8/playback_extension.h +++ b/chrome/renderer/playback_extension.h @@ -2,12 +2,10 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef WEBKIT_EXTENSIONS_V8_PLAYBACK_EXTENSION_H_ -#define WEBKIT_EXTENSIONS_V8_PLAYBACK_EXTENSION_H_ +#ifndef CHROME_RENDERER_PLAYBACK_EXTENSION_H_ +#define CHROME_RENDERER_PLAYBACK_EXTENSION_H_ #pragma once -#include "webkit/extensions/webkit_extensions_export.h" - namespace v8 { class Extension; } @@ -27,9 +25,9 @@ namespace extensions_v8 { // in exactly the same order in which they were recorded. class PlaybackExtension { public: - WEBKIT_EXTENSIONS_EXPORT static v8::Extension* Get(); + static v8::Extension* Get(); }; } // namespace extensions_v8 -#endif // WEBKIT_EXTENSIONS_V8_PLAYBACK_EXTENSION_H_ +#endif // CHROME_RENDERER_PLAYBACK_EXTENSION_H_ diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc index 623d051..f621e7e 100644 --- a/content/browser/renderer_host/render_process_host_impl.cc +++ b/content/browser/renderer_host/render_process_host_impl.cc @@ -717,12 +717,9 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer( switches::kInProcessWebGL, switches::kJavaScriptFlags, switches::kLoggingLevel, - switches::kNoJsRandomness, switches::kNoReferrers, switches::kNoSandbox, - switches::kPlaybackMode, switches::kPpapiOutOfProcess, - switches::kRecordMode, switches::kRegisterPepperPlugins, switches::kRendererAssertTest, #if defined(OS_POSIX) diff --git a/content/public/common/content_switches.cc b/content/public/common/content_switches.cc index d25ab40..b052176 100644 --- a/content/public/common/content_switches.cc +++ b/content/public/common/content_switches.cc @@ -421,23 +421,12 @@ const char kNaClBrokerProcess[] = "nacl-broker"; // Causes the process to run as a NativeClient loader. const char kNaClLoaderProcess[] = "nacl-loader"; -// Support a separate switch that enables the v8 playback extension. -// The extension causes javascript calls to Date.now() and Math.random() -// to return consistent values, such that subsequent loads of the same -// page will result in consistent js-generated data and XHR requests. -// Pages may still be able to generate inconsistent data from plugins. -const char kNoJsRandomness[] = "no-js-randomness"; - // Don't send HTTP-Referer headers. const char kNoReferrers[] = "no-referrers"; // Disables the sandbox for all process types that are normally sandboxed. const char kNoSandbox[] = "no-sandbox"; -// Read previously recorded data from the cache. Only cached data is read. -// See kRecordMode. -const char kPlaybackMode[] = "playback-mode"; - // Specifies a command that should be used to launch the plugin process. Useful // for running the plugin process through purify or quantify. Ex: // --plugin-launcher="path\to\purify /Run=yes" @@ -490,12 +479,6 @@ const char kProcessPerSite[] = "process-per-site"; // script connections to each other). const char kProcessPerTab[] = "process-per-tab"; -// Chrome supports a playback and record mode. Record mode saves *everything* -// to the cache. Playback mode reads data exclusively from the cache. This -// allows us to record a session into the cache and then replay it at will. -// See also kPlaybackMode. -const char kRecordMode[] = "record-mode"; - // The value of this switch determines whether the process is started as a // renderer or plugin host. If it's empty, it's the browser. const char kProcessType[] = "type"; diff --git a/content/public/common/content_switches.h b/content/public/common/content_switches.h index 79051a42..f2f4085 100644 --- a/content/public/common/content_switches.h +++ b/content/public/common/content_switches.h @@ -132,10 +132,8 @@ extern const char kLogPluginMessages[]; // TODO(jam): this doesn't belong in content. CONTENT_EXPORT extern const char kNaClBrokerProcess[]; CONTENT_EXPORT extern const char kNaClLoaderProcess[]; -extern const char kNoJsRandomness[]; CONTENT_EXPORT extern const char kNoReferrers[]; CONTENT_EXPORT extern const char kNoSandbox[]; -CONTENT_EXPORT extern const char kPlaybackMode[]; extern const char kPluginLauncher[]; CONTENT_EXPORT extern const char kPluginPath[]; CONTENT_EXPORT extern const char kPluginProcess[]; @@ -151,7 +149,6 @@ extern const char kPpapiStartupDialog[]; extern const char kProcessPerSite[]; CONTENT_EXPORT extern const char kProcessPerTab[]; CONTENT_EXPORT extern const char kProcessType[]; -CONTENT_EXPORT extern const char kRecordMode[]; CONTENT_EXPORT extern const char kRegisterPepperPlugins[]; CONTENT_EXPORT extern const char kRemoteDebuggingPort[]; CONTENT_EXPORT extern const char kRendererAssertTest[]; diff --git a/content/renderer/render_thread_impl.cc b/content/renderer/render_thread_impl.cc index 41132b0..f493cc2 100644 --- a/content/renderer/render_thread_impl.cc +++ b/content/renderer/render_thread_impl.cc @@ -79,7 +79,6 @@ #include "third_party/WebKit/Source/WebKit/chromium/public/WebView.h" #include "ui/base/ui_base_switches.h" #include "v8/include/v8.h" -#include "webkit/extensions/v8/playback_extension.h" #include "webkit/glue/webkit_glue.h" // TODO(port) @@ -483,12 +482,6 @@ void RenderThreadImpl::EnsureWebKitInitialized() { webkit_glue::EnableWebCoreLogChannels( command_line.GetSwitchValueASCII(switches::kWebCoreLogChannels)); - if (command_line.HasSwitch(switches::kPlaybackMode) || - command_line.HasSwitch(switches::kRecordMode) || - command_line.HasSwitch(switches::kNoJsRandomness)) { - RegisterExtension(extensions_v8::PlaybackExtension::Get()); - } - if (CommandLine::ForCurrentProcess()->HasSwitch( switches::kDomAutomationController)) { base::StringPiece extension = content::GetContentClient()->GetDataResource( diff --git a/webkit/extensions/v8/OWNERS b/webkit/extensions/v8/OWNERS deleted file mode 100644 index 30288836..0000000 --- a/webkit/extensions/v8/OWNERS +++ /dev/null @@ -1 +0,0 @@ -mbelshe@chromium.org diff --git a/webkit/extensions/v8/heap_profiler_extension.cc b/webkit/extensions/v8/heap_profiler_extension.cc deleted file mode 100644 index 17f9110..0000000 --- a/webkit/extensions/v8/heap_profiler_extension.cc +++ /dev/null @@ -1,112 +0,0 @@ -// 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/extensions/v8/heap_profiler_extension.h" - -#include "base/basictypes.h" -#include "v8/include/v8.h" - -#if defined(USE_TCMALLOC) && !defined(OS_WIN) -#include "third_party/tcmalloc/chromium/src/gperftools/heap-profiler.h" -#endif - -namespace extensions_v8 { - -namespace { - -const char kHeapProfilerExtensionName[] = "v8/HeapProfiler"; - -class HeapProfilerWrapper : public v8::Extension { - public: - HeapProfilerWrapper() - : v8::Extension(kHeapProfilerExtensionName, - "if (typeof(chromium) == 'undefined') {" - " chromium = {};" - "}" - "(function() {" - " native function HeapProfilerStart();" - " native function HeapProfilerStop();" - " native function HeapProfilerDump();" - " chromium.HeapProfiler = {};" - " chromium.HeapProfiler.start = function(opt_prefix) {" - " var prefix = opt_prefix;" - " if (!prefix) {" - " var d = new Date();" - " prefix = \"chromium-\" + " - " (1900 + d.getYear()) + " - " \"-\" + d.getMonth() + " - " \"-\" + d.getDay() + " - " \"-\" + d.getTime();" - " }" - " HeapProfilerStart(prefix);" - " };" - " chromium.HeapProfiler.stop = function() {" - " HeapProfilerStop();" - " };" - " chromium.HeapProfiler.dump = function(opt_reason) {" - " HeapProfilerDump(opt_reason || \"\");" - " };" - "})();") {} - - virtual v8::Handle<v8::FunctionTemplate> GetNativeFunction( - v8::Handle<v8::String> name) { - if (name->Equals(v8::String::New("HeapProfilerStart"))) { - return v8::FunctionTemplate::New(HeapProfilerStart); - } else if (name->Equals(v8::String::New("HeapProfilerStop"))) { - return v8::FunctionTemplate::New(HeapProfilerStop); - } else if (name->Equals(v8::String::New("HeapProfilerDump"))) { - return v8::FunctionTemplate::New(HeapProfilerDump); - } - return v8::Handle<v8::FunctionTemplate>(); - } - -#if defined(USE_TCMALLOC) && !defined(OS_WIN) - static v8::Handle<v8::Value> HeapProfilerStart(const v8::Arguments& args) { - if (args.Length() >= 1 && args[0]->IsString()) { - v8::Local<v8::String> js_prefix = args[0]->ToString(); - char prefix[256]; - js_prefix->WriteAscii(prefix, 0, arraysize(prefix) - 1); - ::HeapProfilerStart(prefix); - } - return v8::Undefined(); - } - - static v8::Handle<v8::Value> HeapProfilerStop(const v8::Arguments& args) { - ::HeapProfilerStop(); - return v8::Undefined(); - } - - static v8::Handle<v8::Value> HeapProfilerDump(const v8::Arguments& args) { - if (args.Length() >= 1 && args[0]->IsString()) { - v8::Local<v8::String> js_reason = args[0]->ToString(); - char reason[256]; - js_reason->WriteAscii(reason, 0, arraysize(reason) - 1); - ::HeapProfilerDump(reason); - } - return v8::Undefined(); - } - -#else - - static v8::Handle<v8::Value> HeapProfilerStart(const v8::Arguments& args) { - return v8::Undefined(); - } - - static v8::Handle<v8::Value> HeapProfilerStop(const v8::Arguments& args) { - return v8::Undefined(); - } - - static v8::Handle<v8::Value> HeapProfilerDump(const v8::Arguments& args) { - return v8::Undefined(); - } -#endif -}; - -} // namespace - -v8::Extension* HeapProfilerExtension::Get() { - return new HeapProfilerWrapper; -} - -} // namespace extensions_v8 diff --git a/webkit/extensions/v8/heap_profiler_extension.h b/webkit/extensions/v8/heap_profiler_extension.h deleted file mode 100644 index 6e28b20..0000000 --- a/webkit/extensions/v8/heap_profiler_extension.h +++ /dev/null @@ -1,26 +0,0 @@ -// 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_EXTENSIONS_V8_HEAP_PROFILER_EXTENSION_H_ -#define WEBKIT_EXTENSIONS_V8_HEAP_PROFILER_EXTENSION_H_ -#pragma once - -#include "webkit/extensions/webkit_extensions_export.h" - -namespace v8 { -class Extension; -} - -namespace extensions_v8 { - -// HeapProfilerExtension is a V8 extension to expose a JS function for -// dumping native heap profiles. This should only be used for debugging. -class HeapProfilerExtension { - public: - WEBKIT_EXTENSIONS_EXPORT static v8::Extension* Get(); -}; - -} // namespace extensions_v8 - -#endif // WEBKIT_EXTENSIONS_V8_HEAP_PROFILER_EXTENSION_H_ diff --git a/webkit/extensions/v8/profiler_extension.cc b/webkit/extensions/v8/profiler_extension.cc deleted file mode 100644 index 3ffc205..0000000 --- a/webkit/extensions/v8/profiler_extension.cc +++ /dev/null @@ -1,104 +0,0 @@ -// 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/extensions/v8/profiler_extension.h" - -#include "build/build_config.h" -#include "v8/include/v8.h" - -#if defined(USE_TCMALLOC) && defined(OS_POSIX) && !defined(OS_MACOSX) -#include "third_party/tcmalloc/chromium/src/gperftools/profiler.h" -#endif - -const char kProfilerExtensionName[] = "v8/Profiler"; - -namespace extensions_v8 { - -class ProfilerWrapper : public v8::Extension { - public: - ProfilerWrapper() : - v8::Extension(kProfilerExtensionName, - "if (typeof(chromium) == 'undefined') {" - " chromium = {};" - "}" - "chromium.Profiler = function() {" - " native function ProfilerStart();" - " native function ProfilerStop();" - " native function ProfilerFlush();" - " native function ProfilerClearData();" - " native function ProfilerSetThreadName();" - " this.start = function() {" - " ProfilerStart();" - " };" - " this.stop = function() {" - " ProfilerStop();" - " };" - " this.clear = function() {" - " ProfilerClearData();" - " };" - " this.flush = function() {" - " ProfilerFlush();" - " };" - " this.setThreadName = function(name) {" - " ProfilerSetThreadName(name);" - " };" - "};") {} - - virtual v8::Handle<v8::FunctionTemplate> GetNativeFunction( - v8::Handle<v8::String> name) { - if (name->Equals(v8::String::New("ProfilerStart"))) - return v8::FunctionTemplate::New(ProfilerStart); - else if (name->Equals(v8::String::New("ProfilerStop"))) - return v8::FunctionTemplate::New(ProfilerStop); - else if (name->Equals(v8::String::New("ProfilerClearData"))) - return v8::FunctionTemplate::New(ProfilerClearData); - else if (name->Equals(v8::String::New("ProfilerFlush"))) - return v8::FunctionTemplate::New(ProfilerFlush); - else if (name->Equals(v8::String::New("ProfilerSetThreadName"))) - return v8::FunctionTemplate::New(ProfilerSetThreadName); - - return v8::Handle<v8::FunctionTemplate>(); - } - - static v8::Handle<v8::Value> ProfilerStart(const v8::Arguments& args) { -#if defined(USE_TCMALLOC) && defined(OS_POSIX) && !defined(OS_MACOSX) - ::ProfilerStart("chrome-profile"); -#endif - return v8::Undefined(); - } - - static v8::Handle<v8::Value> ProfilerStop(const v8::Arguments& args) { -#if defined(USE_TCMALLOC) && defined(OS_POSIX) && !defined(OS_MACOSX) - ::ProfilerStop(); -#endif - return v8::Undefined(); - } - - static v8::Handle<v8::Value> ProfilerClearData(const v8::Arguments& args) { - return v8::Undefined(); - } - - static v8::Handle<v8::Value> ProfilerFlush(const v8::Arguments& args) { -#if defined(USE_TCMALLOC) && defined(OS_POSIX) && !defined(OS_MACOSX) - ::ProfilerFlush(); -#endif - return v8::Undefined(); - } - - static v8::Handle<v8::Value> ProfilerSetThreadName( - const v8::Arguments& args) { - if (args.Length() >= 1 && args[0]->IsString()) { - v8::Local<v8::String> inputString = args[0]->ToString(); - char nameBuffer[256]; - inputString->WriteAscii(nameBuffer, 0, sizeof(nameBuffer)-1); - } - return v8::Undefined(); - } -}; - -v8::Extension* ProfilerExtension::Get() { - return new ProfilerWrapper(); -} - -} // namespace extensions_v8 diff --git a/webkit/extensions/v8/profiler_extension.h b/webkit/extensions/v8/profiler_extension.h deleted file mode 100644 index 8098cb7..0000000 --- a/webkit/extensions/v8/profiler_extension.h +++ /dev/null @@ -1,27 +0,0 @@ -// 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_EXTENSIONS_V8_PROFILER_EXTENSION_H_ -#define WEBKIT_EXTENSIONS_V8_PROFILER_EXTENSION_H_ -#pragma once - -#include "webkit/extensions/webkit_extensions_export.h" - -namespace v8 { -class Extension; -} - -namespace extensions_v8 { - -// Profiler is an extension to allow javascript access to the API for -// an external profiler program (such as Quantify). The "External" part of the -// name is to distinguish it from the built-in V8 Profiler. -class ProfilerExtension { - public: - WEBKIT_EXTENSIONS_EXPORT static v8::Extension* Get(); -}; - -} // namespace extensions_v8 - -#endif // WEBKIT_EXTENSIONS_V8_PROFILER_EXTENSION_H_ diff --git a/webkit/extensions/webkit_extensions_export.h b/webkit/extensions/webkit_extensions_export.h deleted file mode 100644 index f1fff8e..0000000 --- a/webkit/extensions/webkit_extensions_export.h +++ /dev/null @@ -1,26 +0,0 @@ -// Copyright (c) 2012 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_EXTENSIONS_WEBKIT_EXTENSIONS_EXPORT_H_ -#define WEBKIT_EXTENSIONS_WEBKIT_EXTENSIONS_EXPORT_H_ -#pragma once - -#if defined(COMPONENT_BUILD) -#if defined(WIN32) - -#if defined(WEBKIT_EXTENSIONS_IMPLEMENTATION) -#define WEBKIT_EXTENSIONS_EXPORT __declspec(dllexport) -#else -#define WEBKIT_EXTENSIONS_EXPORT __declspec(dllimport) -#endif // defined(WEBKIT_EXTENSIONS_IMPLEMENTATION) - -#else // defined(WIN32) -#define WEBKIT_EXTENSIONS_EXPORT __attribute__((visibility("default"))) -#endif - -#else // defined(COMPONENT_BUILD) -#define WEBKIT_EXTENSIONS_EXPORT -#endif - -#endif // WEBKIT_EXTENSIONS_WEBKIT_EXTENSIONS_EXPORT_H_ diff --git a/webkit/glue/webkit_glue.gypi b/webkit/glue/webkit_glue.gypi index 89bc7bd..a3d6ed5 100644 --- a/webkit/glue/webkit_glue.gypi +++ b/webkit/glue/webkit_glue.gypi @@ -455,19 +455,6 @@ 'window_open_disposition.cc', 'worker_task_runner.cc', 'worker_task_runner.h', - - # These files used to be built in the webcore target, but moved here - # since part of glue. - '../extensions/v8/gc_extension.cc', - '../extensions/v8/gc_extension.h', - '../extensions/v8/heap_profiler_extension.cc', - '../extensions/v8/heap_profiler_extension.h', - '../extensions/v8/playback_extension.cc', - '../extensions/v8/playback_extension.h', - '../extensions/v8/profiler_extension.cc', - '../extensions/v8/profiler_extension.h', - '../extensions/webkit_extensions_export.h', - ], # When glue is a dependency, it needs to be a hard dependency. # Dependents may rely on files generated by this target or one of its diff --git a/webkit/extensions/v8/gc_extension.cc b/webkit/support/gc_extension.cc index d8aa9f7..44c3e11 100644 --- a/webkit/extensions/v8/gc_extension.cc +++ b/webkit/support/gc_extension.cc @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "webkit/extensions/v8/gc_extension.h" +#include "webkit/support/gc_extension.h" #include "v8/include/v8.h" diff --git a/webkit/extensions/v8/gc_extension.h b/webkit/support/gc_extension.h index ea5003b..ef3f2bd 100644 --- a/webkit/extensions/v8/gc_extension.h +++ b/webkit/support/gc_extension.h @@ -2,12 +2,10 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef WEBKIT_EXTENSIONS_V8_GC_EXTENSION_H_ -#define WEBKIT_EXTENSIONS_V8_GC_EXTENSION_H_ +#ifndef WEBKIT_SUPPORT_GC_EXTENSION_H_ +#define WEBKIT_SUPPORT_GC_EXTENSION_H_ #pragma once -#include "webkit/extensions/webkit_extensions_export.h" - namespace v8 { class Extension; } @@ -18,9 +16,9 @@ namespace extensions_v8 { // garbage collection. This should only be used for debugging. class GCExtension { public: - WEBKIT_EXTENSIONS_EXPORT static v8::Extension* Get(); + static v8::Extension* Get(); }; } // namespace extensions_v8 -#endif // WEBKIT_EXTENSIONS_V8_GC_EXTENSION_H_ +#endif // WEBKIT_SUPPORT_GC_EXTENSION_H_ diff --git a/webkit/support/test_webkit_platform_support.cc b/webkit/support/test_webkit_platform_support.cc index 0b11a80..6bcc225 100644 --- a/webkit/support/test_webkit_platform_support.cc +++ b/webkit/support/test_webkit_platform_support.cc @@ -35,7 +35,6 @@ #include "v8/include/v8.h" #include "webkit/appcache/web_application_cache_host_impl.h" #include "webkit/database/vfs_backend.h" -#include "webkit/extensions/v8/gc_extension.h" #include "webkit/glue/simple_webmimeregistry_impl.h" #include "webkit/glue/webclipboard_impl.h" #include "webkit/glue/webkit_glue.h" @@ -44,6 +43,7 @@ #include "webkit/gpu/webgraphicscontext3d_in_process_impl.h" #include "webkit/plugins/npapi/plugin_list.h" #include "webkit/support/simple_database_system.h" +#include "webkit/support/gc_extension.h" #include "webkit/support/test_webmessageportchannel.h" #include "webkit/support/webkit_support.h" #include "webkit/support/weburl_loader_mock_factory.h" diff --git a/webkit/support/webkit_support.gypi b/webkit/support/webkit_support.gypi index f42840f..64f3be1 100644 --- a/webkit/support/webkit_support.gypi +++ b/webkit/support/webkit_support.gypi @@ -40,6 +40,8 @@ 'sources': [ 'drt_application_mac.h', 'drt_application_mac.mm', + 'gc_extension.cc', + 'gc_extension.h', 'platform_support.h', 'platform_support_android.cc', 'platform_support_linux.cc', diff --git a/webkit/tools/test_shell/node_leak_test.cc b/webkit/tools/test_shell/node_leak_test.cc index 13ab6b21..5fdf02c 100644 --- a/webkit/tools/test_shell/node_leak_test.cc +++ b/webkit/tools/test_shell/node_leak_test.cc @@ -48,11 +48,7 @@ class NodeLeakTest : public TestShellTest { TestShell::SetFileTestTimeout(timeout_ms); } - // Optionally use playback mode (for instance if running automated tests). - net::HttpCache::Mode mode = - parsed_command_line.HasSwitch(test_shell::kPlaybackMode) ? - net::HttpCache::PLAYBACK : net::HttpCache::NORMAL; - SimpleResourceLoaderBridge::Init(cache_path, mode, false); + SimpleResourceLoaderBridge::Init(cache_path, net::HttpCache::NORMAL, false); TestShellTest::SetUp(); } diff --git a/webkit/tools/test_shell/test_shell_main.cc b/webkit/tools/test_shell/test_shell_main.cc index 8ae0714..9752901 100644 --- a/webkit/tools/test_shell/test_shell_main.cc +++ b/webkit/tools/test_shell/test_shell_main.cc @@ -30,10 +30,6 @@ #include "third_party/WebKit/Source/WebKit/chromium/public/WebScriptController.h" #include "ui/gfx/gl/gl_implementation.h" #include "ui/gfx/gl/gl_switches.h" -#include "webkit/extensions/v8/gc_extension.h" -#include "webkit/extensions/v8/heap_profiler_extension.h" -#include "webkit/extensions/v8/playback_extension.h" -#include "webkit/extensions/v8/profiler_extension.h" #include "webkit/glue/webkit_glue.h" #include "webkit/glue/webpreferences.h" #include "webkit/glue/window_open_disposition.h" @@ -160,21 +156,6 @@ int main(int argc, char* argv[]) { net::HttpCache::Mode cache_mode = net::HttpCache::NORMAL; - // This is a special mode where JS helps the browser implement - // playback/record mode. Generally, in this mode, some functions - // of client-side randomness are removed. For example, in - // this mode Math.random() and Date.getTime() may not return - // values which vary. - bool playback_mode = - parsed_command_line.HasSwitch(test_shell::kPlaybackMode); - bool record_mode = - parsed_command_line.HasSwitch(test_shell::kRecordMode); - - if (playback_mode) - cache_mode = net::HttpCache::PLAYBACK; - else if (record_mode) - cache_mode = net::HttpCache::RECORD; - if (parsed_command_line.HasSwitch(test_shell::kEnableFileCookies)) net::CookieMonster::EnableFileScheme(); @@ -277,19 +258,6 @@ int main(int argc, char* argv[]) { // Test shell always exposes the GC. webkit_glue::SetJavaScriptFlags("--expose-gc"); - // Expose GCController to JavaScript. - WebScriptController::registerExtension(extensions_v8::GCExtension::Get()); - - if (parsed_command_line.HasSwitch(test_shell::kProfiler)) { - WebScriptController::registerExtension( - extensions_v8::ProfilerExtension::Get()); - } - - if (parsed_command_line.HasSwitch(test_shell::kHeapProfiler)) { - WebScriptController::registerExtension( - extensions_v8::HeapProfilerExtension::Get()); - } - // Load and initialize the stats table. Attempt to construct a somewhat // unique name to isolate separate instances from each other. @@ -305,36 +273,13 @@ int main(int argc, char* argv[]) { TestShell* shell; if (TestShell::CreateNewWindow(starting_url, &shell)) { - if (record_mode || playback_mode) { - platform.SetWindowPositionForRecording(shell); - WebScriptController::registerExtension( - extensions_v8::PlaybackExtension::Get()); - } - shell->Show(WebKit::WebNavigationPolicyNewWindow); if (parsed_command_line.HasSwitch(test_shell::kDumpStatsTable)) shell->DumpStatsTableOnExit(); - bool no_events = parsed_command_line.HasSwitch(test_shell::kNoEvents); - if ((record_mode || playback_mode) && !no_events) { - FilePath script_path = cache_path; - // Create the cache directory in case it doesn't exist. - file_util::CreateDirectory(cache_path); - script_path = script_path.AppendASCII("script.log"); - if (record_mode) - base::EventRecorder::current()->StartRecording(script_path); - if (playback_mode) - base::EventRecorder::current()->StartPlayback(script_path); - } - webkit_glue::SetJavaScriptFlags(TestShell::GetJSFlagsForLoad(0)); MessageLoop::current()->Run(); - - if (record_mode) - base::EventRecorder::current()->StopRecording(); - if (playback_mode) - base::EventRecorder::current()->StopPlayback(); } TestShell::ShutdownTestShell(); diff --git a/webkit/tools/test_shell/test_shell_switches.cc b/webkit/tools/test_shell/test_shell_switches.cc index ab5941f..eafdfa4 100644 --- a/webkit/tools/test_shell/test_shell_switches.cc +++ b/webkit/tools/test_shell/test_shell_switches.cc @@ -43,15 +43,6 @@ const char kMultipleLoads[] = "multiple-loads"; // in the corresponding load. const char kJavaScriptFlags[] = "js-flags"; -// Run the http cache in record mode. -const char kRecordMode[] = "record-mode"; - -// Run the http cache in playback mode. -const char kPlaybackMode[] = "playback-mode"; - -// Don't record/playback events when using record & playback. -const char kNoEvents[] = "no-events"; - // Dump stats table on exit. const char kDumpStatsTable[] = "stats"; @@ -73,12 +64,6 @@ const char kCheckLayoutTestSystemDeps[] = "check-layout-test-sys-deps"; // to happen even if in layout test mode. const char kGDB[] = "gdb"; -// Make functions of the Profiler class available in javascript -const char kProfiler[] = "profiler"; - -// Make functions of the HeapProfiler class available in javascript -const char kHeapProfiler[] = "heap-profiler"; - const char kAllowExternalPages[] = "allow-external-pages"; const char kEnableAccel2DCanvas[] = "enable-accelerated-2d-canvas"; diff --git a/webkit/tools/test_shell/test_shell_switches.h b/webkit/tools/test_shell/test_shell_switches.h index a7255f1..f45296a 100644 --- a/webkit/tools/test_shell/test_shell_switches.h +++ b/webkit/tools/test_shell/test_shell_switches.h @@ -20,17 +20,12 @@ extern const char kStartupDialog[]; extern const char kGPFaultErrorBox[]; extern const char kJavaScriptFlags[]; extern const char kMultipleLoads[]; -extern const char kRecordMode[]; -extern const char kPlaybackMode[]; -extern const char kNoEvents[]; extern const char kDumpStatsTable[]; extern const char kCacheDir[]; extern const char kEnableFileCookies[]; extern const char kAllowScriptsToCloseWindows[]; extern const char kCheckLayoutTestSystemDeps[]; extern const char kGDB[]; -extern const char kProfiler[]; -extern const char kHeapProfiler[]; extern const char kAllowExternalPages[]; extern const char kEnableAccel2DCanvas[]; extern const char kEnableAccelCompositing[]; |