diff options
author | rsesek@chromium.org <rsesek@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-02-11 22:00:14 +0000 |
---|---|---|
committer | rsesek@chromium.org <rsesek@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-02-11 22:00:14 +0000 |
commit | fd23eec1a1887f02bacf1d8a045a2804b6166089 (patch) | |
tree | c724a0cdc1a82ee5c9b987e592e530738956ce42 /chrome | |
parent | 8d0a2d717c070cf766c2664883cac91c510ff4fa (diff) | |
download | chromium_src-fd23eec1a1887f02bacf1d8a045a2804b6166089.zip chromium_src-fd23eec1a1887f02bacf1d8a045a2804b6166089.tar.gz chromium_src-fd23eec1a1887f02bacf1d8a045a2804b6166089.tar.bz2 |
[Mac] Remove some unneeded code to run Tasks in Cocoa run loops.
BUG=none
TEST=Click to open Wrench menu. Click the +/- buttons. Page zooms and percentage updates.
Review URL: http://codereview.chromium.org/6488016
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@74680 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome')
-rw-r--r-- | chrome/browser/cocoa/task_helpers.h | 29 | ||||
-rw-r--r-- | chrome/browser/cocoa/task_helpers.mm | 57 | ||||
-rw-r--r-- | chrome/browser/renderer_host/render_message_filter.cc | 13 | ||||
-rw-r--r-- | chrome/chrome_browser.gypi | 2 |
4 files changed, 4 insertions, 97 deletions
diff --git a/chrome/browser/cocoa/task_helpers.h b/chrome/browser/cocoa/task_helpers.h deleted file mode 100644 index ecc40f3..0000000 --- a/chrome/browser/cocoa/task_helpers.h +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright (c) 2010 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 CHROME_BROWSER_COCOA_TASK_HELPERS_H_ -#define CHROME_BROWSER_COCOA_TASK_HELPERS_H_ -#pragma once - -class Task; - -namespace tracked_objects { -class Location; -} // namespace tracked_objects - -namespace cocoa_utils { - -// This can be used in place of BrowserThread::PostTask(BrowserThread::UI, ...). -// The purpose of this function is to be able to execute Task work alongside -// native work when a MessageLoop is blocked by a nested run loop. This function -// will run the Task in both NSEventTrackingRunLoopMode and NSDefaultRunLoopMode -// for the purpose of executing work while a menu is open. See -// http://crbug.com/48679 for the full rationale. -bool PostTaskInEventTrackingRunLoopMode( - const tracked_objects::Location& from_here, - Task* task); - -} // namespace cocoa_utils - -#endif // CHROME_BROWSER_COCOA_TASK_HELPERS_H_ diff --git a/chrome/browser/cocoa/task_helpers.mm b/chrome/browser/cocoa/task_helpers.mm deleted file mode 100644 index 7cc458b..0000000 --- a/chrome/browser/cocoa/task_helpers.mm +++ /dev/null @@ -1,57 +0,0 @@ -// Copyright (c) 2010 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 "chrome/browser/cocoa/task_helpers.h" - -#import <Cocoa/Cocoa.h> - -#include "base/scoped_ptr.h" -#include "base/task.h" - -// This is a wrapper for running Task objects from within a native run loop. -// This can run specific tasks in that nested loop. This owns the task and will -// delete it and itself when done. -@interface NativeTaskRunner : NSObject { - @private - scoped_ptr<Task> task_; -} -- (id)initWithTask:(Task*)task; -- (void)runTask; -@end - -@implementation NativeTaskRunner -- (id)initWithTask:(Task*)task { - if ((self = [super init])) { - task_.reset(task); - } - return self; -} - -- (void)runTask { - task_->Run(); - [self autorelease]; -} -@end - -namespace cocoa_utils { - -bool PostTaskInEventTrackingRunLoopMode( - const tracked_objects::Location& from_here, - Task* task) { - // This deletes itself and the task after the task runs. - NativeTaskRunner* runner = [[NativeTaskRunner alloc] initWithTask:task]; - - // Schedule the selector in multiple modes in case this was called while a - // menu was not running. - NSArray* modes = [NSArray arrayWithObjects:NSEventTrackingRunLoopMode, - NSDefaultRunLoopMode, - nil]; - [runner performSelectorOnMainThread:@selector(runTask) - withObject:nil - waitUntilDone:NO - modes:modes]; - return true; -} - -} // namespace cocoa_utils diff --git a/chrome/browser/renderer_host/render_message_filter.cc b/chrome/browser/renderer_host/render_message_filter.cc index e5dbf1c..d9d7a32 100644 --- a/chrome/browser/renderer_host/render_message_filter.cc +++ b/chrome/browser/renderer_host/render_message_filter.cc @@ -74,7 +74,6 @@ #include "chrome/browser/chromeos/plugin_selection_policy.h" #endif #if defined(OS_MACOSX) -#include "chrome/browser/cocoa/task_helpers.h" #include "chrome/common/font_descriptor_mac.h" #include "chrome/common/font_loader_mac.h" #endif @@ -980,14 +979,10 @@ void RenderMessageFilter::OnDidZoomURL(const IPC::Message& message, double zoom_level, bool remember, const GURL& url) { - Task* task = NewRunnableMethod(this, - &RenderMessageFilter::UpdateHostZoomLevelsOnUIThread, zoom_level, - remember, url, render_process_id_, message.routing_id()); -#if defined(OS_MACOSX) - cocoa_utils::PostTaskInEventTrackingRunLoopMode(FROM_HERE, task); -#else - BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, task); -#endif + BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, + NewRunnableMethod(this, + &RenderMessageFilter::UpdateHostZoomLevelsOnUIThread, + zoom_level, remember, url, render_process_id_, message.routing_id())); } void RenderMessageFilter::UpdateHostZoomLevelsOnUIThread( diff --git a/chrome/chrome_browser.gypi b/chrome/chrome_browser.gypi index 0066d5d..5177b75 100644 --- a/chrome/chrome_browser.gypi +++ b/chrome/chrome_browser.gypi @@ -801,8 +801,6 @@ 'browser/cocoa/keystone_glue.h', 'browser/cocoa/keystone_glue.mm', 'browser/cocoa/scoped_authorizationref.h', - 'browser/cocoa/task_helpers.h', - 'browser/cocoa/task_helpers.mm', 'browser/command_updater.cc', 'browser/command_updater.h', 'browser/content_exceptions_table_model.cc', |