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

Side by Side Diff: webkit/glue/webkit_glue.cc

Issue 20208: Lots of small nits to help to split off webkit.dll.... (Closed) Base URL: svn://chrome-svn.corp.google.com/chrome/trunk/src/
Patch Set: '' Created 11 years, 10 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
« no previous file with comments | « webkit/glue/scoped_clipboard_writer_glue.h ('k') | webkit/glue/webplugin_delegate.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/compiler_specific.h" 5 #include "base/compiler_specific.h"
6 #include "build/build_config.h" 6 #include "build/build_config.h"
7 7
8 #if defined(OS_WIN) 8 #if defined(OS_WIN)
9 #include <objidl.h> 9 #include <objidl.h>
10 #include <mlang.h> 10 #include <mlang.h>
(...skipping 17 matching lines...) Expand all
28 #include "RenderTreeAsText.h" 28 #include "RenderTreeAsText.h"
29 #include "RenderView.h" 29 #include "RenderView.h"
30 #include "ScriptController.h" 30 #include "ScriptController.h"
31 #include "SharedBuffer.h" 31 #include "SharedBuffer.h"
32 MSVC_POP_WARNING(); 32 MSVC_POP_WARNING();
33 33
34 #undef LOG 34 #undef LOG
35 #include "webkit/glue/webkit_glue.h" 35 #include "webkit/glue/webkit_glue.h"
36 36
37 #include "base/file_version_info.h" 37 #include "base/file_version_info.h"
38 #include "base/singleton.h"
38 #include "base/string_util.h" 39 #include "base/string_util.h"
39 #include "skia/include/SkBitmap.h" 40 #include "skia/include/SkBitmap.h"
40 #include "webkit/glue/event_conversion.h" 41 #include "webkit/glue/event_conversion.h"
41 #include "webkit/glue/glue_util.h" 42 #include "webkit/glue/glue_util.h"
42 #include "webkit/glue/weburlrequest_impl.h" 43 #include "webkit/glue/weburlrequest_impl.h"
43 #include "webkit/glue/webframe_impl.h" 44 #include "webkit/glue/webframe_impl.h"
44 #include "webkit/glue/webview_impl.h" 45 #include "webkit/glue/webview_impl.h"
45 46
46 //------------------------------------------------------------------------------ 47 //------------------------------------------------------------------------------
47 // webkit_glue impl: 48 // webkit_glue impl:
(...skipping 261 matching lines...) Expand 10 before | Expand all | Expand 10 after
309 return; 310 return;
310 delegate->OnNavStateChanged(webview); 311 delegate->OnNavStateChanged(webview);
311 } 312 }
312 313
313 std::string GetWebKitVersion() { 314 std::string GetWebKitVersion() {
314 return StringPrintf("%d.%d", WEBKIT_VERSION_MAJOR, WEBKIT_VERSION_MINOR); 315 return StringPrintf("%d.%d", WEBKIT_VERSION_MAJOR, WEBKIT_VERSION_MINOR);
315 } 316 }
316 317
317 namespace { 318 namespace {
318 319
319 const std::string* user_agent = NULL; 320 struct UserAgentState {
320 bool user_agent_requested = false; 321 UserAgentState()
321 bool user_agent_is_overridden = false; 322 : user_agent_requested(false),
323 user_agent_is_overridden(false) {
324 }
325
326 std::string user_agent;
327 std::string mimic_safari_user_agent;
328 bool user_agent_requested;
329 bool user_agent_is_overridden;
330 };
331
332 Singleton<UserAgentState> g_user_agent;
322 333
323 void BuildUserAgent(bool mimic_safari, std::string* result) { 334 void BuildUserAgent(bool mimic_safari, std::string* result) {
324 #if defined(OS_WIN) || defined(OS_MACOSX) 335 #if defined(OS_WIN) || defined(OS_MACOSX)
325 int32 os_major_version = 0; 336 int32 os_major_version = 0;
326 int32 os_minor_version = 0; 337 int32 os_minor_version = 0;
327 int32 os_bugfix_version = 0; 338 int32 os_bugfix_version = 0;
328 #if defined(OS_WIN) 339 #if defined(OS_WIN)
329 OSVERSIONINFO info = {0}; 340 OSVERSIONINFO info = {0};
330 info.dwOSVersionInfoSize = sizeof(info); 341 info.dwOSVersionInfoSize = sizeof(info);
331 GetVersionEx(&info); 342 GetVersionEx(&info);
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
385 result, 396 result,
386 "Mozilla/5.0 (Linux; U; en-US) AppleWebKit/525.13 " 397 "Mozilla/5.0 (Linux; U; en-US) AppleWebKit/525.13 "
387 "(KHTML, like Gecko) Chrome/0.2.149.27 Safari/525.13"); 398 "(KHTML, like Gecko) Chrome/0.2.149.27 Safari/525.13");
388 #else 399 #else
389 // TODO(port): we need something like FileVersionInfo for our UA string. 400 // TODO(port): we need something like FileVersionInfo for our UA string.
390 NOTIMPLEMENTED(); 401 NOTIMPLEMENTED();
391 #endif 402 #endif
392 } 403 }
393 404
394 void SetUserAgentToDefault() { 405 void SetUserAgentToDefault() {
395 static std::string default_user_agent; 406 BuildUserAgent(false, &g_user_agent->user_agent);
396 BuildUserAgent(false, &default_user_agent);
397 user_agent = &default_user_agent;
398 } 407 }
399 408
400 } // namespace 409 } // namespace
401 410
402 void SetUserAgent(const std::string& new_user_agent) { 411 void SetUserAgent(const std::string& new_user_agent) {
403 DCHECK(!user_agent_requested) << "Setting the user agent after someone has " 412 // If you combine this with the previous line, the function only works the
413 // first time.
414 DCHECK(!g_user_agent->user_agent_requested) <<
415 "Setting the user agent after someone has "
404 "already requested it can result in unexpected behavior."; 416 "already requested it can result in unexpected behavior.";
405 static std::string overridden_user_agent; 417 g_user_agent->user_agent_is_overridden = true;
406 overridden_user_agent = new_user_agent; // If you combine this with the 418 g_user_agent->user_agent = new_user_agent;
407 // previous line, the function only
408 // works the first time.
409 user_agent_is_overridden = true;
410 user_agent = &overridden_user_agent;
411 } 419 }
412 420
413 const std::string& GetUserAgent(const GURL& url) { 421 const std::string& GetUserAgent(const GURL& url) {
414 if (!user_agent) 422 if (g_user_agent->user_agent.empty())
415 SetUserAgentToDefault(); 423 SetUserAgentToDefault();
416 user_agent_requested = true; 424 g_user_agent->user_agent_requested = true;
417 if (!user_agent_is_overridden) { 425 if (!g_user_agent->user_agent_is_overridden) {
418 static std::string mimic_safari_user_agent;
419 // For hotmail, we need to spoof as Safari (bug 4111). 426 // For hotmail, we need to spoof as Safari (bug 4111).
420 if (MatchPattern(url.host(), "*.mail.live.com")) { 427 if (MatchPattern(url.host(), "*.mail.live.com")) {
421 if (mimic_safari_user_agent.empty()) 428 if (g_user_agent->mimic_safari_user_agent.empty())
422 BuildUserAgent(true, &mimic_safari_user_agent); 429 BuildUserAgent(true, &g_user_agent->mimic_safari_user_agent);
423 return mimic_safari_user_agent; 430 return g_user_agent->mimic_safari_user_agent;
424 } 431 }
425 } 432 }
426 return *user_agent; 433 return g_user_agent->user_agent;
427 } 434 }
428 435
429 void NotifyJSOutOfMemory(WebCore::Frame* frame) { 436 void NotifyJSOutOfMemory(WebCore::Frame* frame) {
430 if (!frame) 437 if (!frame)
431 return; 438 return;
432 439
433 // Dispatch to the delegate of the view that owns the frame. 440 // Dispatch to the delegate of the view that owns the frame.
434 WebFrame* webframe = WebFrameImpl::FromFrame(frame); 441 WebFrame* webframe = WebFrameImpl::FromFrame(frame);
435 WebView* webview = webframe->GetView(); 442 WebView* webview = webframe->GetView();
436 if (!webview) 443 if (!webview)
(...skipping 11 matching lines...) Expand all
448 } 455 }
449 456
450 g_forcefully_terminate_plugin_process = value; 457 g_forcefully_terminate_plugin_process = value;
451 } 458 }
452 459
453 bool ShouldForcefullyTerminatePluginProcess() { 460 bool ShouldForcefullyTerminatePluginProcess() {
454 return g_forcefully_terminate_plugin_process; 461 return g_forcefully_terminate_plugin_process;
455 } 462 }
456 463
457 } // namespace webkit_glue 464 } // namespace webkit_glue
OLDNEW
« no previous file with comments | « webkit/glue/scoped_clipboard_writer_glue.h ('k') | webkit/glue/webplugin_delegate.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698